I keep reading assertions on this list that immediate mode or mixed mode is
the preferred method when using Java3d for games.

Just to weigh in here on the mixed mode, immediate mode and retained mode
debate.  Our project runs in 100 percent retained mode.  We don't make a
single call to anything in the graphics3d context obtained from the
Canvas3d.  While we do use some behaviors to handle the intersection of the
view platform with an objects activation bounds, the vast majority of the
per-frame work is done downstream of a single bevahior with elapsed frames
zero.

>From this behavior we do the following:

1. Recalculate the transform3d of all moving objects.
2. Recalcuate the camera (view) transformation
3. recalcuate the position of the clouds, sun, moon and all other sky
entities
4. make any "transactional" updates to the scene graph (like LOD changes, or
terrain quadtree swaps)
5. Adjust the volumes for all non-spatial sounds based on various factors
6. Recalculate the position, size, color, etc, of all living particles.
7. Recalculate water vertices and texture coordinates
8. Recalculate a variety of "special" effects like morphing, melting,
fading, shrinking and anything that needs vertex manipulation over time.
9. Recalculate all or some of the avatars skin and bones.

Every calculation is based on a single frame "time" that is calculated using
a high resolution timer, adjusted to match the server (which it synchronizes
with upon connection to the server).

Currently the frame calculation time is about 2.5 times faster than the
frame rendering time.  So for example on a 700 MHz PIII the average frame
calculation time is about 10 ms while the frame rendering time is about 25
ms.  The most intensive things are the avatars which take about 900
nanoseconds each to recalculate the skin, so we have to pick and choose
which ones get updated per frame.

So, for what it is worth, we have not found a need to use mixed or immediate
mode at all.

David Yazel
Magicosm Development Team
http://www.cosm-game.com

===========================================================================
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