TKE_Heuristics
Opcode
ASCII | H |
Hexadecimal | 48 |
Decimal | 72 |
Operands
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 |