![]() |
VR-Forces 4.10 Class Documentation
|
Structure that is packed for consumption by GPU for indirect rendering. More...
Public Member Functions | |
| DtGeometrySpecification (int indexOffset, int indexCount, int firstVertex, int state, const AxisAlignedBoundingBox_32 &box) | |
| CTOR. More... | |
| int | indicesOffset () const |
| The offset in the registrar where the indices for this spec (model + lod) can be found. More... | |
| int | indicesCount () const |
| The number of indices for this spec (model + lod) More... | |
| int | firstVertex () const |
| The offset in the registrar where the vertices for this spec (model + lod) can be found. More... | |
| int | state () const |
| The state vector ID, used by shader to detect light source states. More... | |
Public Attributes | |
| Vector4_int | myIndicesInfo |
| The vertex/index information for this spec. More... | |
| DtGpuAxisAlignedBoundingBox | myBox |
| The AABB in a structure that can be consumed directly by the GPU. More... | |
Private Member Functions | |
| DtGeometrySpecification () | |
| unimplemented default constructor More... | |
Structure that is packed for consumption by GPU for indirect rendering.
Indirect rendering geometry registrar will store the 'specs' for multiple models (an array of an array of specs) (so that the specs of multiple models can be uploaded to the GPU directly). Each model can have multiple 'specs'. Each spec has information for the LOD center. Each spec has information of where in the registrar the indices and offsets of the corresponding geometry may be found. Each spec has information about the bounding box for this current spec (for the model and the lod in question). The layout of this class matches the equivalent structure in the indirect rendering shaders. Therefore, ***be CAREFUL if you extend/add variables to this class***, because you must change the corresponding structure in the shaders as well. Especially, be careful if you declare virtual methods/inherit this class (***best avoided***), because that will implicitly add 4/8 bytes for the vtable pointer that you need to account for in the shaders (not to mention, wasted GPU memory space) vrvIndirectRendering
| makVrv::DtGeometrySpecification::DtGeometrySpecification | ( | int | indexOffset, |
| int | indexCount, | ||
| int | firstVertex, | ||
| int | state, | ||
| const AxisAlignedBoundingBox_32 & | box | ||
| ) |
CTOR.
|
private |
unimplemented default constructor
| int makVrv::DtGeometrySpecification::indicesOffset | ( | ) | const |
The offset in the registrar where the indices for this spec (model + lod) can be found.
| int makVrv::DtGeometrySpecification::indicesCount | ( | ) | const |
The number of indices for this spec (model + lod)
| int makVrv::DtGeometrySpecification::firstVertex | ( | ) | const |
The offset in the registrar where the vertices for this spec (model + lod) can be found.
| int makVrv::DtGeometrySpecification::state | ( | ) | const |
The state vector ID, used by shader to detect light source states.
| Vector4_int makVrv::DtGeometrySpecification::myIndicesInfo |
The vertex/index information for this spec.
| DtGpuAxisAlignedBoundingBox makVrv::DtGeometrySpecification::myBox |
The AABB in a structure that can be consumed directly by the GPU.