David,

This was from Doug and Shawn some time ago.  It is a little paraphrased as I modify posts to suit my Java3D
Performance Sutras document.

Chris

Automatic - Java3D Culling

  1. If a Group that contains  nodes and Shape3Ds has a Bounds that is not in the view frustum, then the entire sub-graph is culled.
  2. For very large terrain, proper database organization (QuadTreeing is one way) is usually all that needs to be done, and then this Bounds based culling will work great.  However, for interior environments with allot of occlusion, BSP's or other some of occlusion culling technique is often needed.
  3. Still, in the end the app can know best if it knows some about the views motion, for example, if the view is on a track and can never go backwards.  In some thing like that, the app could help improve the culling.

  4. [Shawn Kendall <[EMAIL PROTECTED]>]
  5. As for how Java 3D does culling, it is a two stage process.  We use our spacially orgranized geometry structure to do a rough cull - which is a sphere surrounding the viewer.  Then, when we render the objects, we do an exact cull to the view frustum.  The bounds that we use on the exact cull depends on a number of things.  For instance, if two geometries share all the same rendering attributes and transform, the bounds we use to cull will be the union of the two geometries.

  6. [Doug Twilleager, Sun Microsystems]
     


"Yazel, David J." wrote:

        What culling does Java3d do?

        I am defining culling as "not sending the shape geometries to the
graphics card", so I don't count z-buffer.

        1. Does it send every shape that is within a sphere surrounding the
view at a radius of the far clip?

        2. Does it perform a field of view cull?  Does it send geometry to
the card which is not within the field of view?

        3. Does it perform ANY occlusion culling? (Other than zbuffer)

        How have people here implemented their occlusion culling?  have you
sorted their entire scene graph into an oct tree and then process the tree
on every frame, disabling and enabling nodes as appropriate?  If so how has
performance been?  Is there substantial overhead in disabling a branchgroup
or shape node?

        Thanks in advance,

        Dave Yazel

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



----------------------------------------------------------------------------
----------------------------------------------------------------------------
This Email may contain confidential and/or privileged information and is
intended solely for the addressee(s) named. If you have received this
information in error, or are advised that you have been posted this Email by
accident, please notify the sender by return Email, do not redistribute it,
delete the Email and keep no copies.

Reply via email to