Surfaces - General Attributes


For an overview, see Primitives and Attributes.

The attributes that affect all surface primitives are:

 
-------------------------------------------------------------------------------------------------------------
Facet Culling Mode OC                     PEXOCCSetFacetCullingMode
Facet Distinguish Flag OC                 PEXOCCSetFacetDistinguishFlag
Interior Bundle Index OC                  PEXOCCSetInteriorBundleIndex
Back-face Reflectance Bundle Index OC(a)
                                          PEXOCCSetBFReflectanceBundleIndex
     Back-face Surface Reflection         PEXOCCSetBFReflectionAttributes
       Attributes (ASF)
 
     Back-face Surface Reflection Model   PEXOCCSetBFReflectionModel
       OC (ASF)
 
Reflectance Bundle Index OC(b)
                                          PEXOCCSetReflectanceBundleIndex
 
     Surface Reflection Attributes OC     PEXOCCSetReflectionAttributes
       (ASF)
 
     Surface Reflection Model OC (ASF)    PEXOCCSetReflectionModel
 
Interior Bundle Table RA                  Interior Bundle Table (LUT) and
                                              Interior Bundle Table (Renderer)
Light Source State OC                     PEXOCCSetLightSourceState
Light Table RA                            Light Table and
                                             Light Table (Renderer)
PHIGS Interior Bundle Mode RA             PHIGS Interior Bundle Mode
Vertex Order OC                           PEXOCCSetVertexOrder
-------------------------------------------------------------------------------------------------------------
 
(a)
The renderer's PHIGS interior bundle mode determines whether the interior bundle index or reflectance bundle index selects the specified entries of the interior bundle table.
(b)
The renderer's PHIGS interior bundle mode determines whether the interior bundle index or back-face reflectance bundle index selects the specified entries of the interior bundle table.

The PEXlib surface primitives affected by the above attributes include:

 
---------------------------------------------------------------------------------------------
Arc Areas                     PEXOCCArcAreas
Cell Array 3D                 PEXOCCCellArray
Cell Array 2D                 PEXOCCCellArray2D
Cone Set with Data            PEXOCCCones
Extended Cell Array           PEXOCCExtendedCellArray
Fill Area                     PEXOCCFillArea
Fill Area Set                 PEXOCCFillAreaSet
Indexed Fill Area Sets        PEXOCCIndexedFillAreaSets
Indexed Triangles             PEXOCCIndexedTriangles
Non-uniform B-spline Surface  PEXOCCNURBSurface
PolyTriangle                  PEXOCCPolyTriangle
Quadrilateral Mesh with Data  PEXOCCQuadrilateralMesh
Spheres                       PEXOCCSpheres
Triangle Fan                  PEXOCCTriangleFan
Triangles                     PEXOCCTriangles
Triangle Strip                PEXOCCTriangleStrip
---------------------------------------------------------------------------------------------
 

Clipping of Surfaces
PEXInteriorStyleHollow.

Surface Area Bundle Index and Area Source Flags
Whenever you render a surface, each of the surface area attributes is obtained directly from the current pipeline state, or indirectly from the interior bundle table. Your application determines the source for the attribute value by the current settings of the corresponding ASF's. If your application sets an attribute's ASF to the value PEXIndividual, then your application obtains the attribute value directly from the current pipeline state. If your application sets an attribute's ASF to the value PEXBundled, then your application obtains the attribute value from the current interior bundle table. The interior bundle table entry to be used is indicated by the interior bundle index attribute.

Surface Area Facets and Vertices Data
Some surface primitives allow additional data for the facet and for each vertex. If your application specifies a color value for the facet, then it is taken to be the intrinsic color of the surface and the server uses it instead of the current surface color when the surface area is rendered. Vertex colors take precedence over facet colors which override the surface color attributes. A normal specified for the surface area facet is assumed to be a surface normal for the facet and is used for back-facing surface processing. This normal may also be used in reflectance calculations.

For Fill Areas, if no surface area facet normal is provided, then one is computed by determining the first three non-colinear vertices A,B, and C, and computing the cross product of the vector from A to B with the vector from A to C. If the surface area is degenerate (for example, does not contain three non-colinear vertices) then the resultant value of the normal is implementation-dependent.

For Arc Areas, the geometric normal is the normalized cross product of the major and minor axes (major x minor). For elliptical arc areas, the axes are explicitly defined by the primitive. For circular arc areas, the major axis is the MC space X-axis and the minor axis is the MC space Y-axis.

For Spheres, the geometric normal of each facet of a sphere is the unit vector perpendicular to the facet and in the direction of a vector from the sphere's center through the facet.

For Cones, the geometric normal of each facet of a cone is the unit vector perpendicular to the facet and in the direction of a vector from the cone's axis through the facet.