Fast Backface Culling Using Normal Masks

This is a novel method for fast and efficient backface culling: we reduce the backface test to one logical operation per polygon while requiring only two bytes extra storage per polygon. The normal mask is introduced, where each bit is associated with a cluster of normals in a normal-space partitioning. A polygon's normal is approximated by the cluster of normals in which it falls; the cluster's normal mask is stored with the polygon in a preprocessing step. Although conceptually the normal masks require as many bits as the number of clusters, we observe that only two bytes are actually necessary. For each frame (and for each viewing volume), we calculate the backface mask by ORing the normals masks of all normal clusters that are backfacing. The backface test finally reduces to a single logical AND operation between the polygon's normal mask and the backface mask.
* Fast Backface Culling Using Normal Masks , Hansong Zhang, Kenny Hoff, ACM Symposium on Interactive 3D Graphics, Providence, 1997. (Postscript, PDF)
* The color plate for the paper.
* The Slides for presentation at I3D (my first conference presentation in the U.S.!)
* Code for algorithms described in the paper: nmask.h, nmask.C, encode.C

Back to Hansong's home page.