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.
If no surface area facet normal is provided, 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.