TKE_Heuristics
Opcode
ASCII |
H |
Hexadecimal |
48 |
Decimal |
72 |
Operands
Variable mask, Variable value,
[Long related_limit], [Long internal_limit],
[Byte details] [Variable culling]
[Long obscuration_threshold] [Long maximum_extent]
[Long maximum_extent_mode] [Byte ordered_weights]
[(number of bits set in ordered_weights)xByte ordered_weight_valuess]
mask |
bitmask of options which are specified, Short,
if high bit set a second Short follows |
value |
bitmask of options which are set on,
Short, if high bit of mask set a second Short
follows |
related_limit |
number of additional geometry entities to record
which also satisfy selection criteria |
internal_limit |
number of geometry components within a selected
entity (ie, faces and edges within a shell) to record in addition to
the "best" one |
details |
bitmask to clarify a couple of the options which
aren't simply on/off |
culling |
bitmask of culling options, second byte if hight
bit of first byte set |
obscuration_tjreshold |
if using obscuration culling, the maximum number
of pixels which can be considered obscured |
maximum_extent |
when doing extent culling, the maximum screen
dimension which can be considered small |
maximum_extent_mode |
when doing extent culling, the action to take
for small items (default is to skip) |
ordered_weights |
bitmask of weights specified for ordered drawing |
Notes
Heuristics provide hints on how you may improve drawing speed. Some options
may change the appearance of the drawing, such as quick moves using
Xor drawing mode or partial erase leaving holes
in the drawing. For the specific definitions on what these mean in
HOOPS/3dGS please refer to the Set_Heuristics
specification in the 3dGS Reference Manual.
Mask/Value bits:
00000001 |
Hidden Surfaces |
00000002 |
Backplane Cull |
00000004 |
Polygon Handedness, details field will
be present if on |
00000008 |
Quick Moves, details field will be present
if on |
00000010 |
Partial Erase |
00000020 |
Memory Purge |
00000040 |
Related selection limit, related_limit
field will be present if on |
00000080 |
Internal selection limit, internal_limit
field will be present if on |
00000100 |
Clipping |
00000200 |
Transformations |
00000400 |
Intersecting Polygons |
00000800 |
Polygons Crossings |
00001000 |
Concave Polygons |
00002000 |
Incremental Updates |
00004000 |
Selection Sorting |
00008000 |
Extended mask/value size |
00010000 |
Culling |
00020000 |
Exlude Bounding |
00040000 |
Detail Selection |
00080000 |
Ordered Drawing |
00100000 |
Ordered Unit |
00200000 |
Ordered Weights |
00400000 |
Internal Polyline Limit |
00800000 |
Ordered Grid |
01000000 |
Selection Level |
02000000 |
Static Model |
Detail bits:
01 |
Polygons Handedness is left if
set, right otherwise |
02 |
Quick Moves is to use spriting
if set, Xor/overlay otherwise |
Culling bits:
01 |
View Frustum culling should be used |
02 |
Onscuration culling should be used |
04 |
Extent culling should be used |
10 |
View Frustum culling should be ignored |
20 |
Onscuration culling should be ignored |
40 |
Extent culling should be ignored |
80 |
Extended bits (second byte) present |
0100 |
Obscuration culling should use an octree organization |
0200 |
Maximum extent mode specified |
0400 |
Vector culling should be used |
0800 |
Vector Tolerance culling should be used |
1000 |
Vector culling should be ignored |
2000 |
Vector Tolerance culling should be ignored |
Maximum Extent Mode:
0 |
None - skip drawing |
1 |
Dot - draw a pixel to represnt the item |
2 |
Box - draw a bounding box to represent the item |
3 |
Defer - draw the item later if time permits |
Ordered Weights:
01 |
World Volume |
02 |
Screen Extent |
04 |
Distance (from camera) |
08 |
Divergence (from view centerline) |
10 |
Density |
20 |
Priority |