Related topics include:
For an overview and a list of lookup tables, see
Lookup Tables.
Each entry of a view table holds a view definition.
------------------------------------------------------------------------------------------------------------------------------
Table Value Mask Description Fallback PEX
------------------------------------------------------------------------------------------------------------------------------
PEXLUTVViewClipFlags 5.0
clip flags PEXClipAll
PEXLUTVViewClipLimits 5.0
clip limits (0,0,0)-(1,1,1)
PEXLUTVViewOrientationMatrix 5.0
view orientation matrix Identity 5.0
view orientation matrix hints(a) Identity 5.2
PEXLUTVViewMappingMatrix 5.0
view mapping matrix Identity 5.0
view mapping matrix hintsa Identity 5.2
PEXLUTVViewEyepointHint(b) 5.2
eyepoint hint (PEXViewEyepointImplicit
,n/a)
PEXLUTVViewAll5_1 (selects entire table entry except 5.2 items) 5.0
PEXLUTVViewAll5_2 (selects entire table entry) 5.2
------------------------------------------------------------------------------------------------------------------------------
- (a)
- The requests
PEXSetTableEntries,
PEXGetTableEntries,
PEXGetTableEntry, and
PEXGetPredefined Entries
do not operate on the hints portion of the matrix field.
- (b)
- The requests
PEXSetTableEntries,
PEXGetTableEntries,
PEXGetTableEntry, and
PEXGetPredefinedEntries
do not operate on the eyepoint value of a view table entry.
- clip_flags
- contains three bits that indicate whether
primitives should be clipped against the sides, back, and
front planes of the volume specified by clip_limits.
- clip_limits
- specify the minimum and maximum of a
rectangular volume in NPC's.
Together these define the view clipping volume.
The actual clipping volume for each view is a rectangular
parallelpiped that is computed by taking the intersection of
the view clipping volume and the NPC subvolume.
- orientation_matrix
- defines the mapping from WC's to
VRC's.
Together the orientation_matrix and
mapping_matrix define the view transformation.
- mapping_matrix
- defines the mapping from VRC's to
NPC's.
Together the orientation_matrix and
mapping_matrix define the view transformation.
- matrix hint
- PEXlib defines the following matrix hints:
PEXMHNone,
PEXMHIdentity,
PEXMHTranslation,
PEXMHRotation,
PEXMHReflection,
PEXMHUniformScale,
PEXMHNonUniformScale,
PEXMHShear,
PEXMHPerspProj,
PEXMHNonPerspProj,
PEXMH3DTo2DParProj,
PEXMH3DTo2DPerspProj,
PEXMHZero,
PEXMHSingularUnknown,
PEXMHNonSingularUnknown
See PEXOCCSetGlobalTransform
for an explanation of matrix hints.
- eyepoint hint
- a hint describing the
definition (in WC's) of the eyepoint used with the view.
EyepointUsed, inquired with the function
PEXGetImpDepConstants,
indicates whether the implementation uses the eyepoint hint
specified.
PEXlib defines the following eyepoint hints:
- PEXViewEyepointImplicit -
- The eyepoint is defined implicitly by the view.
No additional data is defined with this method.
The eyepoint is obtained by transforming a point at infinite
positive z (NPC's), (0, 0, 1, 0), by the inverse of
the view transformation.
If the view matrix specifies perspective projection, a point
is obtained.
If parallel projection is in use, then a direction vector is
obtained.
Singular view matrices lead to implementation-dependent
results.
- PEXViewEyepointDirection -
- The eyepoint is located at infinity along a particular
direction.
A vector (in WC's) anchored at the origin and pointing
toward the eyepoint defines the eyepoint.
The Directional method should be used when the
projection is parallel.
It can also be used with faster but less accurate results
when the projection is perspective.
- PEXViewEyepointPositional -
- The eyepoint is located at a particular position (in WC's).
This method should be used only when the projection
is perspective.
The implementation accesses the view table during
rendering.
The value of the pipeline state's
view index
selects the desired entry of the table.
If you specify an unsupported eyepoint specification
method, if an undefined bit is set in the clip flags
field, or if a directional eyepoint hint has a direction
vector of length zero, then the implementation issues a
BadValue error.
Valid view table indices are in the range [0, 65534].
The fallback entry is entry 0.