Hi Gili,

The problem is not specific to Java3D or OpenGL, but is really
inherent in the history of graphics. The basic problem of
graphics has been performance, given the number of screen
pixels necessary for convincing the eye versus the speed and
memory capacity of computers. In order to overcome the
performance problem, graphics programmers have come up with a
long list of hacks that use few reseources to produce visually
convincing results. This is still true, for example in the
difficulty of properly rendering scenes with multiple overlapping
transparent objects. Twenty years ago, when GL (OpenGL is SGI's
open version of GL) was being designed, computer performance was
much worse and dirty hacks were everything.

The depth offset thing is not because the underlying draws at
inaccurate radiuses (although that is undoubtedly true for some
implementations), but because applications want to draw multiple
graphics at the same depth, but have one clearly in front of the
other. Typically, this occurs with wanting lines and text in front
of filled polygons and textures.

Among those of us who have been doing graphics for a long time,
Java3D seems very friendly. The real problem with Java3D is we
need it to be on every platform where Java is, otherwise it
breaks Java platform independence for graphics.

Cheers,
Bill

On Fri, 8 Aug 2003, Gili wrote:

> Hi,
>
>         I've spent the past three weeks reading the Java3D tutorial and coming from a
> world of J2SE and some J2EE background I find the entire Java3D API very ugly. I can
> fully appreciate the fact that a lot of this uglyness came from OpenGL (which in 
> itself is a
> very poorly designed API) but I mean, why does Java3D have to match it this much?
>
>         An example of what I mean:
>
> - Why are there like 3-5 different places to specify color attributes and then during
> runtime only 1 out of all these colors actually gets used depending on your settings?
> There should be a single location to set colors and that's it.
>
> - Why does Rendering attributes have a depthOffset attribute that basically is used 
> to
> "tweak" rendering because some implementations won't draw wireframe spheres and
> filled spheres to the same radius and you end up with "stiching"? I mean, this is
> ridiculous.. Java3D should guarantee that regardless of the underlying implementation
> when I say radius 5 for a wireframe or filled version of some polygon it means the 
> same
> thing. This is common sense people..
>
>         I do fully appreciate that Java3D is a great API in itself in that it is 
> cross platform
> and hides a lot of other OpenGL uglyness .. so it's "less ugly" but still.. why do 
> some of
> the above features exist at all? Why can't we have a "pure API" like J2SE? I mean, it
> has some issues but when you look at it overall you can't help but be impressed with
> how well designed it was and how generally clean it is.
>
>         Just my 2 cents.. Let me know if I'm missing something..
>
> Thanks,
> Gili
>
> ===========================================================================
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
> of the message "signoff JAVA3D-INTEREST".  For general help, send email to
> [EMAIL PROTECTED] and include in the body of the message "help".
>

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to