20 #include <osg/ref_ptr>
21 #include <osg/OperationThread>
38 class DtWeatherFogFroxelGrid;
39 class DtIndirectTexturePrototype;
40 class DtIndirectGlTextureObject;
82 virtual void execute(
void)
override;
128 virtual void initialize();
131 virtual void releaseGLObjects(osg::State* state);
138 virtual bool bindFogFroxelTexture(
const int unit,
const unsigned int renderContextId);
142 virtual void resetVolumes();
153 virtual void addVolume(
const osg::Vec3d& position,
154 const osg::Matrixf& rotation,
const float width,
const float length,
155 const float height,
const float density);
158 virtual void updateForView(
const osg::Matrixf& projMat,
const osg::Matrixd& viewMat);
161 virtual float maxGridDistance()
const;
169 virtual void slot_reloadShaders();
int myViewInvMatUniformLoc
Definition: DtWeatherFogFroxelGrid.h:97
const char * creatorTypeName< DtWeatherFogFroxelGrid >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtWeatherFogFroxelGrid.h:48
DtVirtualBaseClassCreator< DtWeatherFogFroxelGrid > DtWeatherFogFroxelGridCreator
creator
Definition: DtWeatherFogFroxelGrid.h:41
float width
Definition: DtWeatherFogFroxelGrid.h:188
The DtOsgRenderer is the component responsible for rendering 3D images onto the screen via OpenSceneG...
Definition: DtOsgRenderer.h:90
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
float length
Definition: DtWeatherFogFroxelGrid.h:189
DtOsgRenderer & myOsgRenderer
Definition: DtWeatherFogFroxelGrid.h:196
osg::Matrixd myViewMat
Definition: DtWeatherFogFroxelGrid.h:206
float height
Definition: DtWeatherFogFroxelGrid.h:190
int myProjMatUniformLoc
Definition: DtWeatherFogFroxelGrid.h:95
Encapsulate an OpenGL texture object that is created/used in indirect rendering.
Definition: DtIndirectGlTextureObject.h:36
Encapsulate an operation that needs to happen on the gpu This can be anything (transfer, compute, drawing, etc) It is called from DtGpuArena/DtGpuArenaUserData.
Definition: DtGpuOperation.h:19
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtIndirectGlTextureObjectManager & myIndirectGlTextureObjectManager
Definition: DtWeatherFogFroxelGrid.h:201
int myReverseZUniformLoc
Definition: DtWeatherFogFroxelGrid.h:94
DtDe & myDe
Definition: DtWeatherFogFroxelGrid.h:194
This manager manages the lifetime of the actual gl texture objects (gl unsigned ints) in the indirect...
Definition: DtIndirectGlTextureObjectManager.h:60
Volume()
Definition: DtWeatherFogFroxelGrid.h:176
osg::Matrixf rotation
Definition: DtWeatherFogFroxelGrid.h:187
A convenience class to represent an OpenGL Shader Program.
Definition: DtGlProgram.h:66
DtWeatherFogFroxelGrid & myWeatherFogFroxelGrid
Definition: DtWeatherFogFroxelGrid.h:90
Contains the DtGpuOperation class declaration.
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
float density
Definition: DtWeatherFogFroxelGrid.h:191
Contains makVrv::DtVirtualBaseClass class.
int myBoxSizeUniformLoc
Definition: DtWeatherFogFroxelGrid.h:100
Definition: DtWeatherFogFroxelGrid.h:63
DtSignalConnectionManager myConnections
Definition: DtWeatherFogFroxelGrid.h:213
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
int myOutputTextureUniformLoc
Definition: DtWeatherFogFroxelGrid.h:93
osg::Vec3d position
Definition: DtWeatherFogFroxelGrid.h:186
DtWeatherFogFroxelGrid uses a frustum voxel grid to compute density/translucency at voxel locations b...
Definition: DtWeatherFogFroxelGrid.h:56
std::vector< Volume * > myVolumes
Definition: DtWeatherFogFroxelGrid.h:208
Base class to provide boost signal/slot management.
int myActiveVolumes
Definition: DtWeatherFogFroxelGrid.h:209
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
int myBoxRotUniformLoc
Definition: DtWeatherFogFroxelGrid.h:99
A structure used to define a volume (bounds, transform, density).
Definition: DtWeatherFogFroxelGrid.h:174
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
VRV/Indirect uses its own texture paradigm: DtIndirectTexturePrototype, which is a 'template' for mak...
Definition: DtIndirectTexturePrototype.h:53
int myCubeDataUniformLoc
Definition: DtWeatherFogFroxelGrid.h:101
Contains makVrv::DtOsgRenderer class.
int myProjInvMatUniformLoc
Definition: DtWeatherFogFroxelGrid.h:96
int myBoxPosUniformLoc
Definition: DtWeatherFogFroxelGrid.h:98
float myMaxGridDistance
Definition: DtWeatherFogFroxelGrid.h:211
osg::Matrixf myProjMat
Definition: DtWeatherFogFroxelGrid.h:205
friend DtWeatherFogFroxelGridCreator
Definition: DtWeatherFogFroxelGrid.h:60
DtGlProgram * myComputeProgram
Definition: DtWeatherFogFroxelGrid.h:92
DtDe & myDe
Definition: DtWeatherFogFroxelGrid.h:89