Hi Andrew,

Good to hear that small feature culling is working well and easily.

W.r.t occluders, there are two types of occlusion culling the OSG
supports, convex planar occluders that the osgoccluder example
illustrates, and OpenGL occlusion query based approach that the
osgocclusionquery example illustrates.

Convex planar occluders are CPU based occlusion tests of scene objects
against convex planar occluder objects that you have to create and
place in the scene graph.  It's best suited for models where very
large occluders can be built, such as buildings and towns where whole
streets can joined together as one large occluder.  Convex planar
occluders can't be generated automatically, and can't be fused
together, and culling only happens if a subgraphs bounding volume is
wholly within the occluder.  For your type of scene is almost
certainly not the tool to use.

OpenGL occlusion query does however work with any scene graph and
there is no need to building occluders, and it lots of small occluders
will work together to occlude objects, the downside is that graphics
card is doing the cull test to the round trip to get the results is
very expensive, the get round this the occlusion query code use the
results from the previous frames tests to do culling, so you see a
frame latency in the culling, so the new frame may have objects that
are culled by the previous frames tests but should now be seen in the
new frame.  If you can live with this visual artifact then it's almost
certainly the tool for you.

On an unrelated note, all your posts are coming through as new threads
rather than relplies to your original thread.  This really sucks for
all other users of the list/forum who might be trying to follow the
topic.  Please use a reply, of if you are using a reply have a look at
your mail client as it seems to be doing something odd that pretty
well no other mail client that community members are using.

Robert.


On Tue, Jul 14, 2009 at 2:32 PM, Andrew
Burnett-Thompson<[email protected]> wrote:
> Right I played around with small feature culling and this really gave a
> massive performance boost when rendering. As I mentioned I only need low
> detail while moving around (as its a CAD-like app) and a high detail redraw
> when still.
>
> So swapping out the small feature culling pixel size when moving enables
> smooth update rates while the user is navigating. The code is below (Trivial
> for you guys but I've included it for archive purposes)
>
> ///////////////////////////
> osg::CullSettings::CullingMode cullMode =
> osg::CullSettings::CullingModeValues::ENABLE_ALL_CULLING;
>
> // Force all culling on
> camera->setCullingMode(cullMode);
>
> // Set the culling pixel size
> float cullPixelSize = isMoving ? 20.0f : 2.0f;
> camera->setSmallFeatureCullingPixelSize(20.0F);
> ///////////////////////////
>
> Occlusion culling still making no difference, although I am working through
> the osgoccluder example. Also I'm interested in creating PagedLOD's and
> found the osgUtil::Simplifier class, which seems to take a long while to
> run, but generates a lower polygon count mesh for LODs
>
> Great stuff :) ...
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to