|
Hi Michael,
FYI below is the info I gathered on culling for the Performance
Sutras
(I'll have to do an update)..
As to actual stats on *how* efficient it is I can't say.
cheers,
Chris
LODS/Switches and culling
Application Culling
1.Using the application to cull nodes at a gross level
(e.g. using switch nodes) can help a lot in improving performance.
Info:
Example:
The application can always help Java 3D by
doing some rough culling at the scene graph level. A while ago I
wrote Quake2 and
JediKnight loaders on top of Java 3D and used
their extra visibility data structures to do some scene graph culling for
Java 3D. At that
time I used switch nodes, and performance
was fine. If I was to do it over with the latest Java 3D, I would
switch to using a
combination of RenderingAttributes.setVisible()
and the AlternateAppearance node. It should make the scene graph
a little less node
heavy, a little easier to control, and probably
less stressful on the Java 3D runtime system. I don't have any evidence
that this is the
case, just a gut feel. Switch nodes can be
expensive because of all of the semantics surrounding them.
[Doug Twilleager, Sun Microsystems]
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.
[Shawn Kendall <[EMAIL PROTECTED]>]
4.As for how Java 3D does culling, it is a two stage process.
We use our spatially organized 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.
[Doug Twilleager, Sun Microsystems]
Michael Nischt wrote:
Kendall,
Shawn wrote: >You will find most of what you are looking for if
you search the mailing list archives and also check out www.j3d.org. well,
i looked at www.j3d.org before, but din'T
find anything, and after your mail i also did a search a the mailing archive.i
found lot'S of stuff with bounds in genreal, for picking, collsion,.. but
nothing about scenegraph culling..and also www.google.com
didn'T showed me what i want: perhaps i'M too stupid finding the right
things. so i would be very happy,if you send me the direct link on
www.j3d.ord / the mailing archive, or
give me a hint in keywords which lead to more success. greestingsMichael
Nischt
----------------------------------------------------------------------------
----------------------------------------------------------------------------
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.
|