HPS::Performance Class Reference

Public Types

enum  DisplayLists : uint32_t { DisplayLists::None, DisplayLists::Geometry, DisplayLists::Segment }
enum  StaticConditions : uint32_t { StaticConditions::Independent, StaticConditions::Single }
enum  StaticModel : uint32_t { StaticModel::None, StaticModel::Attribute, StaticModel::AttributeSpatial }

Member Enumeration Documentation

◆ DisplayLists

enum HPS::Performance::DisplayLists : uint32_t

Display lists are a GPU hardware caching technology which can greatly improve rendering performance. The underlying implementation depends on the 3D driver being used.


Display Lists will not be used for rendering the scene.


Display Lists will be created on a per-geometry basis. If the geometry is modified, the display list will be regenerated.


Display Lists will be created on a per-segment basis. If any geometry in the segment is modified, the display list will be regenerated.

◆ StaticConditions

enum HPS::Performance::StaticConditions : uint32_t

StaticConditions indicates how conditional expressions will be handled inside a StaticModel. A model segment which has no conditionals expressions, or only has expressions satisfied by conditions set within the segment should not be affected by this.


Conditional expressions will be maintained in the static tree. The tree may be referenced from multiple places (such as view) without forcing regeneration, but the static tree will be sub-optimal


Conditional expressions will be evaluated assuming the current condition state available when the static tree is generated is the only one of interest. The static tree will resolve any use of conditions for better performance, but changes to this state will cause it to regenerate, and a static tree used in multiple places (such as different views) may thrash (continuously regenerate multiple times every update).

◆ StaticModel

enum HPS::Performance::StaticModel : uint32_t

StaticModel is a technique used for improving rendering performance. This setting tells the system that the segment tree affected by the attribute will remain 'static' or unchanging. The system will create an internal, optimized segment tree which is used for rendering in lieu of the normal tree. The original segment tree is untouched and can be used normally.

If changes are made in a part of the segment tree that is subject to the static model attribute, the internal tree will be regenerated, with a few exceptions: If geometry is deleted or edited, the internal tree will not need to be regenerated.


No static model will be used, rendering will be done from the segment tree.


An optimized segment tree will be used for rendering. The tree will be sorted by attributes.


An optimized segment tree will be used for rendering. The tree will be sorted based on both attributes and spatial locations of objects. This is particularly useful for very large, spatially dispersed models.

The documentation for this class was generated from the following file: