[X3D-Public] HW Occlusion Culling - was Re: Announcement: view3dscene 3.4

John A. Stewart alex.stewart at crc.ca
Wed Aug 26 08:04:44 PDT 2009

Alan, Michalis;

> How did you find the hardware occulsion query implementation.  Did  
> it help a lot with your framerate?  Did you compare it to a CPU  
> culling method?

(Ditto on the congratulations on the view3dscene release, btw)

This is not quite Michalis' scenario, but a FYI.

When I did occlusion culling in FreeWRL, I went straight to using the  
GPU. One can turn it on/off by using an environment variable. There  
was no code to do culling in software; I looked at doing it; but never  
bothered implementing it. Bounding boxen are generated for collisions  
and near/far plane calculations; but even these are not used for  
occlusion culling.

I found different cards would give different results; some would  
return results quickly, others not so. So I implemented a "query every  
so many draws" scheme. Sometimes when you navigate quickly, you can  
see geometry suddenly appear around a new "visibility edge"; there are  
some other artifacts that can be visible with FreeWRL's implementation  
if you know exactly to look for.

This is also how FreeWRL does VisibilitySensors - so on the odd bit of  
hardware that does not do OcclusionCulling, VisibilitySensors fail  
with a warning message. (eg, exporting a window with X11 to another  
server can create this message)

Things may be better now in terms of GPU reporting results; I did the  
main bits of FreeWRL's OcclusionCulling years ago now; have not done  
much testing recently.

Michalis; what are your thoughts?


John A. Stewart
Team Leader: Networked Virtual Reality
alex.stewart at crc.ca

Network Systems and Technologies -
         Systemes et technologies des reseaux
Communications Research Centre Canada  |
          Centre de recherches sur les communications Canada

3701 Carling Ave.  |  3701, avenue Carling
PO Box 11490, Station H  |  CP 11490, succursale H
          Ottawa ON K2H 8S2   |  Ottawa (Ontario) K2H 8S2


More information about the X3D-Public mailing list