By default, Inventor assumes very little about the shapes it renders. You can use the
SoShapeHints node to indicate that vertex-based shapes (those derived from
SoVertexShape) are solid, contain ordered vertices, or contain convex
faces. For fastest rendering, specify SOLID, COUNTERCLOCKWISE, CONVEX shapes.
These hints allow Inventor to optimize certain rendering features. Optimizations that may be performed include enabling back-face
culling and disabling two-sided lighting. For example, if an object is solid and has ordered vertices, Inventor turns on backface culling and turns off two-sided lighting. If the object is not solid but
has ordered vertices, it turns off backface culling and turns on two-sided lighting. In all other cases, both backface culling and two-sided lighting are off.
The
SoShapeHints node also affects how default normals
are generated. When a node derived from
SoVertexShape has to generate default normals, it uses the
creaseAngle field to determine which edges should be smooth-shaded and which ones should have a sharp crease. The crease angle
is the angle between surface normals on adjacent polygons. For example, a crease angle of .5 radians means that an edge between two adjacent polygonal faces will be smooth shaded if the normals to the
two faces form an angle that is less than .5 radians (about 30 degrees). Otherwise, it will be faceted. Normal generation is fastest when the creaseAngle is 0 (the default), producing one normal per facet.
A creaseAngle of pi produces one averaged normal per vertex.
SoSFEnum faceType
Indicates whether each face is convex. Because the penalty for non-convex faces is very steep (faces must be triangulated expensively), the default assumes all faces are convex. Therefore, shapes with concave
faces may not be displayed correctly unless this hint is set to UNKNOWN_FACE_TYPE.