![]() |
VR-Forces 4.8 Class Documentation
|
handles the lods for all the indirect geometry. More...
Classes | |
| struct | IndirectLodInfo |
| structure for holding the information about a particular instance of a particular lod. More... | |
Public Types | |
| typedef std::deque < IndirectLodInfo > | DequeIndirectLodInfos |
| typedef std::vector < IndirectLodInfo > | VectorIndirectLodInfos |
| typedef std::vector < DequeIndirectLodInfos > | DequeIndirectLodInfoArray |
Public Member Functions | |
| DtIndirectLodManager (DtDe &de) | |
| CTOR. More... | |
| virtual | ~DtIndirectLodManager () |
| DTOR. More... | |
| virtual void | releaseGLObjects (osg::State *state) const |
| called when the context is deleted in order to clean up GPU data More... | |
| virtual void | addLodStacks (int perGeomInstanceIndex, int size, const DequeIndirectLodInfos &parentLodStack, const DequeIndirectLodInfoArray &lodStacks, const osg::Matrix &localOriginMatrix, const osg::Matrix &instanceTransform) |
| add a vector of lod stacks to the lod management system More... | |
| virtual void | processLods (const DtOsgShaderFilesCache *shaderFilesCache, const std::string &shaderFolderPath, const DtIndirectViewParameters &viewParameters) |
| setup and run the lod compute shader which checks all lods agains the camera position to see if their children should be visible More... | |
| virtual DtGlBuffer * | gpuLodVisibleBuffer () |
| get the buffer which has the output of the lod compute shader More... | |
| virtual void | reloadShaders () const |
| reload the compute shader shaders More... | |
Protected Member Functions | |
| virtual void | addLodStack (int perGeomInstanceIndex, const DequeIndirectLodInfos &parentLodStack, const DequeIndirectLodInfos &lodStack, const osg::Matrix &localOriginMatrix, const osg::Matrix &instanceTransform) |
| add a single stack to the lod info input buffer The parent stack lod centers are multiplied by the inverse local offset so they correctly gives the view position when multiplied by the model view matrix. More... | |
| virtual void | updateLodBuffersIfNecessary () |
| send down any new lod infomation that has been recieved More... | |
| virtual void | deleteShaders () const |
| cleanup the gpu shaders More... | |
| virtual void | deleteBuffers (void) |
| virtual void | tearDownBuffers (void) const |
Protected Attributes | |
| VectorIndirectLodInfos | myIndirectLodInfos |
| DtDe & | myDe |
| DtGlBuffer * | myGpuLodInfoBuffer |
| The buffer containing all the lod infos for all instances managed by this manager. More... | |
| DtGlBuffer * | myGpuLodVisibleBuffer |
| The buffer containing a bool for each instance to know if it should be drawn or not. More... | |
| bool | myMutableLodInfoDirty |
| DtIndirectLodProgram * | myMutableLodProgram |
| unsigned int | myMaxPerGeomInstanceId |
Private Member Functions | |
| DtIndirectLodManager () | |
| default constructor not implemented More... | |
| DtIndirectLodManager (const DtIndirectLodManager &other) | |
| Copy Constructor not implemented – Copy Not Allowed. More... | |
| DtIndirectLodManager & | operator= (const DtIndirectLodManager &other) |
| Assignment Operator Not implemented – Assignment Not Allowed. More... | |
handles the lods for all the indirect geometry.
sets up and runs a compute shader prepass for processing the lods contains a GPU buffer with the result which is used by the cull compute shader
| typedef std::deque<IndirectLodInfo> makVrv::DtIndirectLodManager::DequeIndirectLodInfos |
| typedef std::vector<IndirectLodInfo> makVrv::DtIndirectLodManager::VectorIndirectLodInfos |
| typedef std::vector<DequeIndirectLodInfos> makVrv::DtIndirectLodManager::DequeIndirectLodInfoArray |
| makVrv::DtIndirectLodManager::DtIndirectLodManager | ( | DtDe & | de | ) |
CTOR.
|
virtual |
DTOR.
|
private |
default constructor not implemented
|
private |
Copy Constructor not implemented – Copy Not Allowed.
|
private |
Assignment Operator Not implemented – Assignment Not Allowed.
|
virtual |
called when the context is deleted in order to clean up GPU data
|
virtual |
add a vector of lod stacks to the lod management system
|
virtual |
setup and run the lod compute shader which checks all lods agains the camera position to see if their children should be visible
|
virtual |
get the buffer which has the output of the lod compute shader
|
virtual |
reload the compute shader shaders
|
protectedvirtual |
add a single stack to the lod info input buffer The parent stack lod centers are multiplied by the inverse local offset so they correctly gives the view position when multiplied by the model view matrix.
The child statck lod centers are multiplied by the instance xform
|
protectedvirtual |
send down any new lod infomation that has been recieved
|
protectedvirtual |
cleanup the gpu shaders
|
protectedvirtual |
|
protectedvirtual |
|
protected |
|
protected |
|
protected |
The buffer containing all the lod infos for all instances managed by this manager.
|
protected |
The buffer containing a bool for each instance to know if it should be drawn or not.
|
mutableprotected |
|
mutableprotected |