It seems to me that java3d is very good api for small scenes - with lot
of static data. It does a lot of optimalization behind the back and is
significatly easier to use efficently than opengl/directx. This makes it
perfect tool for things like molecule viewers, some medical imaging,
maybe also space simulation game.
But what with displaying really large worlds ? I'm talking about
something really big - a lot of terrain with trees, buildings etc. It is
not enough to use more or less smart visibility algoritm to reduce
number of triangles pushed to graphic card - there is not chance that
all data for this world could possibly fit in memory at once. It
requires very dynamic meshes, recomputed possibly for every frame, plus
at least partially immediate mode rendering - switch/lod nodes do not
help for memory usage. From my experience, immediate mode is extremly
slow - even for simple scene, I've noticed about 4 fold decrease in
frame rate (which is unacceptable).
Is java3d capable of rendering such large worlds ? What techniques
should be used here ? Is immediate mode really so slow, or was it
mistake on my part somewhere in code ?
Related question - how big price do I pay for constructing new geometry
array ? By-ref geometry is probably a best way to reuse same geometry
for different purposes, but calling it in immediate mode is quite
counterintuitive. One thing to probably speed it up is disabling
autocompute of bounds - no need in immediate mode if I'm sure I want to
draw it. Any other tricks ?
Artur
===========================================================================
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".