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

