PDA

View Full Version : occlusion with glFeedbackBuffer?



leoptimus
03-27-2003, 08:41 AM
Hi.
I'm working on a 3d engine for outdoor enviroments, but also for caverns and closed places. I don't want static solutions (Like BSP), because the engine must handle enviroment changes( Quakes, craters, explosions and more destruction effects). I`ve tried with octtrees. Frustum culling works well, but with dense landscapes i get low FPS (4-6). However, I've observed that many objects are occluded by the closed places on average scenes. Perhaps, with an occlusion test the engine would avoid render many fancy objects (like Trees, sharp rocks, flames) that are not visible, I think. I've thought that testing the visibility of each node of the octtree, by passing the node sphere to the depth buffer ,the engine can avoid render many bounded children by such nodes. Just I need to read a feedback buffer for checking that the sphere was rendered successfully. Can I test node visibility rendering in FeedbackBuffer mode? How the use of feedbacks affects the performance?

Relic
03-27-2003, 09:04 AM
The feedback mode isn't accelerated in most implementations.

Have a look at the hardware occlusion query extensions here http://oss.sgi.com/projects/ogl-sample/registry/

With bounding boxes and rough front-to-back rendering you may save a lot of geometry.

leoptimus
03-27-2003, 03:32 PM
Thanks Relic.
Your suggest is very useful.
However,I see that octree rendering is often slower than other optimizations. This method cannot perform occlusion when some walls cover a large landscape.
I have another question, Exists a method that decreases the level of detail when the objects are farther?

Relic
03-27-2003, 11:07 PM
I haven't mentioned octrees. But of course you can use octrees to check which nodes are in the invisible frustum which is behind your wall.

I meant rough occluder geometry like bounding boxes or tetrahedrons etc. drawn as replacement for the higly tesselated object during the hardware occlusion check pass to count the numbers of pixels which WOULD be drawn and only draw the real object when necessary. Search for occlusion demos.

OpenGL is just a 3D API, not a scenegraph. It doesn't know about objects. LOD on geometry is your task. Search the forum!
Topic include ROAM, progressive meshes, bin-trees, ...

There's a book purely about "Level of Detail for 3D Graphics". Interesting read, haven't bought it, yet.