![](https://pdfstore-manualsonline.prod.a.ki/pdfasset/a/0b/a0b1a9e3-1df9-4280-8f72-98c8486b507f/a0b1a9e3-1df9-4280-8f72-98c8486b507f-bgb6.png)
156
Chapter 14: Optimizing Rendering
Figure 14-4 Direction of Normals
Choosing the Type of Normal
The csGeoSet method, setBPCullVertNormModeEnable(), sets the type of normal used
to calculate the viewing angle: if the argument to the method evaluates TRUE, primitive
normals are used, if the argument evaluates FALSE, face normals are used.
There is often a performance hit associated with face normals because they are calculated
whereas primitive normals are provided by the scene graph. This performance hit occurs
only when the back patch culling data is dynamically rebuilt, as explained in “Building
Back Patch Culling Data for a csGeoSet” on page 158. The data is not rebuilt unless the
primitive’s coordinates or normals are changed.
csGeoSet::getBPCullPrimNormModeEnable() returns TRUE or FALSE, depending on
whether the mode is primitive normals or face normals, respectively.
Primitive normals are used by default with the following primitive types:
• csLineSet
• csLineStripSet
• csPointSet
Normal goes into page
Normal comes out of page
0
1
2
0
1
2