22 #include <matrix/vlVector.h>
24 #include <osg/ref_ptr>
29 class DtRaindropParticle;
30 class DtSplashParticle;
32 class DtObserverObject;
60 virtual void activateRaindrops(
bool on);
64 virtual void activateSplashes(
bool on);
67 virtual void activateSpray(
bool on);
70 virtual void setIsUnderwater(
bool underwater);
74 virtual void addRainDrop(
float x,
float y,
float radius);
78 virtual void addOceanSplash(
float intensity);
81 virtual void setSplashIntensity(
float intensity);
84 virtual void setSprayIntensity(
float intensity);
90 virtual int numActiveDrops()
const;
93 virtual void setWaterOnScreenSize(
double size);
98 virtual void addSplashEffects(
const DtObserverObject *observer,
bool hasWaveSplashEffect);
103 virtual void addSprayEffects(
const DtObserverObject *observer,
bool hasOceanSprayEffect);
108 virtual bool prepForDrawableRender();
112 static double waterOnScreenSize();
116 virtual void initialize();
119 virtual void clearNormalMap();
122 virtual void updateDrops(
double elapsedTime);
126 virtual bool drawDrops();
130 virtual bool finalizeNormalMap();
133 virtual void addRaindrops(
double time,
float heading,
float observerVelocity,
const DtVector& observerLocation);
136 virtual void addSpray(
double time,
float heading);
139 virtual void clearDrops();
142 virtual void reset();
145 virtual void setActiveStatus();
148 virtual void slot_waterOnScreenSizeChanged(
double value);
149 virtual void slot_reloadShaders();
152 virtual void releaseGLObjects()
override;
155 virtual void cleanupGpuMemory(
void);
158 virtual void createNormalMapIfNecessary(
void);
161 virtual void createNormalMapCombineProgramIfNecessary(
void);
164 virtual void createNormalMapFinalizeProgramIfNecessary(
void);
167 virtual void initZeroNormals(
void);
double myLastSprayEmissionTime
Definition: DtWaterOnScreenEffect.h:171
DtGlBuffer * myCellsBuffer
The cells' buffer on the gpu (ssbo)
Definition: DtWaterOnScreenEffect.h:213
int myNumActiveDrops
Definition: DtWaterOnScreenEffect.h:178
This class provides an OSG-specific implementation of water drops on the screen.
Definition: DtWaterOnScreenEffect.h:41
Definition: featureContext.h:36
voidpf void uLong size
Definition: ioapi.h:39
DtPostProcessorCreator is the common base class for all post processor creators.
Definition: DtPostProcessor.h:232
DtGlBuffer * myPrecomputedSplashNormalsBuffer
The gpu buffer representing the constant pre-computed splash normals.
Definition: DtWaterOnScreenEffect.h:200
static double theWaterOnScreenSize
Definition: DtWaterOnScreenEffect.h:224
bool myPrecomputedSplashNormalsBufferDirty
Definition: DtWaterOnScreenEffect.h:201
A convenience class to represent an OpenGL Shader Program.
Definition: DtGlProgram.h:66
The abstract Channel Class.
Definition: DtChannel.h:35
bool mySprayActiveFlag
Definition: DtWaterOnScreenEffect.h:173
bool myNormalMapCombineProgramTriedOnce
Definition: DtWaterOnScreenEffect.h:184
osg::ref_ptr< DtWaterOnScreenDrawable > myWaterOnScreenDrawable
Definition: DtWaterOnScreenEffect.h:218
Definition: DtWaterOnScreenEffect.h:203
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtObserverObject.h:35
This class provides the OSG-specific management of post-processing effects.
Definition: DtPostProcessManager.h:27
A DtWaterOnScreenCreator instance is registered with the post process element factory to create DtPos...
Definition: DtWaterOnScreenEffect.h:234
DtGlProgram * myNormalMapFinalizeProgram
Definition: DtWaterOnScreenEffect.h:186
bool myNormalMapDirty
Definition: DtWaterOnScreenEffect.h:221
DtGlTexture * myNormalMap
The generated normal map texture.
Definition: DtWaterOnScreenEffect.h:190
#define DT_DLL_VRVPOSTPROCESSOR
Definition: vrvPostProcessor.h:19
Internal struct for one cell of our grid of glass properties.
Definition: DtGridCell.h:19
#define GRID_DIMENSION
Definition: DtWaterOnScreenDefines.h:56
Contains DLL export macros.
bool myUnderwaterFlag
Definition: DtWaterOnScreenEffect.h:174
A generic OpenGL buffer. This can be: -> a vertex buffer -> an index buffer -> a shader storage buffe...
Definition: DtGlBuffer.h:29
Base class to provide boost signal/slot management.
bool myNormalMapFinalizeProgramTriedOnce
Definition: DtWaterOnScreenEffect.h:187
Contains makVrv::DtGridCell struct.
DtGlBuffer * myPrecomputedDropletNormalsBuffer
The gpu buffer representing the constant pre-computed droplet normals.
Definition: DtWaterOnScreenEffect.h:196
Vector4_32 type_intensity_unused
Definition: DtWaterOnScreenEffect.h:206
Vector4_32 x_y_radius_valid
Definition: DtWaterOnScreenEffect.h:205
float mySprayIntensity
Definition: DtWaterOnScreenEffect.h:176
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:76
Contains makVrv::DtWaterOnScreenDrawable class.
DtGlBuffer * myNormalMapBuffer
The gpu buffer representing the interim normal map (ssbo)
Definition: DtWaterOnScreenEffect.h:193
A helper classes for creating a RTT target, optionally including depth buffer.
Definition: DtGlTexture.h:20
bool myPrecomputedDropletNormalsBufferDirty
Definition: DtWaterOnScreenEffect.h:197
DtGlProgram * myNormalMapCombineProgram
The various normal map mod programs.
Definition: DtWaterOnScreenEffect.h:183
double myLastUpdateTime
Definition: DtWaterOnScreenEffect.h:170
This class provides the OSG-specific implementation of a post processor. A post processor has a type ...
Definition: DtPostProcessor.h:66
bool myDropsStagingDirty
Definition: DtWaterOnScreenEffect.h:220