I´m sorry that I have to insist on my opinion and I can't agree with you. I don't see the point, why using scene graphs makes your life easier!?!
erm, cause it does everything I need without having to re-write it myself, if I load an object from say an AC3D file I have one of two choices, embed GL calls into internal representations of the model components, or load them, and bung it in a scene tree. Embedding gl calls means that special cases can easily be coded round, but I now have to work out how I'm going to get all my transparencies sorted properly to render in reverse depth order as the camera in my scene sees them. A scene tree I can traverse and find all these transparent bits, and work it out from my 'View' object combined with each geometry, turns out that now it's a piece of cake to do, or even better, in the case of java3d, it's done for my behind the scenes with no worries, 'It just works'.
Okay, that's an argument! I wasn't well informed about "automatic" transparency Java3D can do! From that point of view a scenegraph makes sense! But I can try to illustrate you the problems I had using a scene graph! I have ~1000 objects (spheres) to draw every frame. And I don't know which and how many spheres to draw beforehand. Thus using a scenegraph is a huge overhead, since I have to manage "visible"-state for each sphere primitive and management of the states is a real pain! And building a complete scene tree for each frame is impossible! In OpenGL I can do per frame (immediate mode) what I want to draw! Any ideas how I could do that with Java3D??? I think no!
First, I thought that scene graphs are fine. But now, where I can compare the Java3D code with the (ported) OpenGL code, I see that OpenGL code is shorter and very clear.
shorter?, clearer?, I think your java3d code is wrong, to place an object with transparency, textures, texture coordinates, normals, and of course vertecies is just a few lines of code, GL on the other hand, isn't, it's still not rocket science, but it's not short and sweet either. Then you have to worry about depth sorting the transparent bits, turning on and off the depth buffer and depth buffer writes, loading the texture and binding it each time you draw the object. Granted that setting up an initial scene in java3d takes some effort, but the rewards are worth it.
I understand what you want to say! But depth sort isn´t such a pain .... :)) ) And I can't use the benifits of a scenegraph, because of the immediate mode problems described above! 2nd the incomplete implementation of Java3D is a pain, since I cant do what I want!
To solve a certain issue in Java3D I need twice as much code in Java3D than in OpenGL.
are you making the calls direct each time in GL, or are you creating objects that know how to render themselves and placing them in a world, if your doing that latter, you are using a basic (very basic) scene tree anyway
If an object knows how to draw itself this makes no scenegraph, not even a very basic scenegraph! The tree structure of the scene graph is not always the best representation of a scene. (see problem above!) The problem are the vertices (thus the links) between the nodes!
Apart from that one can influece the depth buffer in OpenGL (but not from within Java3D because the access of OpenGL functions is not allowed).
View.setTransparencySortingPolicy View.setDepthBufferFreezeTransparent RenderingAttributes.setDepthBufferEnable RenderingAttributes.setDepthBufferWriteEnable
Fine, but there are still important functions missing. Can you access any buffers in Java3D? I think no!
Eventually ..... thats the point. I don´t know what Sun will do in the future and thus I don't know, when the feature I need is available! ... I´m dependent on Sun :(((
you are dependant on the OpenGL group with GL for new features, you don't know when they will be put into GL4Java (which is currently only on gl 1.3), it's true that jogl can be recompiled against new GL libraries for new releases. If you need bleeding edge technology you wouldn't have looked at java3d for long in the first place though :)
1. GL4Java source is available, thus I can add those functions of OpenGL I need :) 2. 2 years ago, Java3D seemed to do a good starting point .... but my hope, how Java3D would develop in the future, wasn't fulfilled! And now it seems that there won't be a new release of Java3D. I can't wait for years to have Sun doing what I need!
Yaa, you are right. A scenegraph on top of a binding would be nice. But that scenegraph has to be complete and extendable. (not that indication of a scene graph Java3D uses!)
so you agree that scene graphs are good now?
I said, that a scenegraph has to be complete and extendable .... not the scenegraph itself (by adding nodes), but the scenegraph nodes which should do what one needs!
Baaah, what a bad metapher :)))
Maybe, maybe not ..... but why should I risk to sink :)))if you jump you may drown before someone rescues you :), on the other hand, with less weight the ship might float longer :P
Regards
MisterXen
=========================================================================== 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".
