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);
106 static double waterOnScreenSize();
110 virtual void initialize();
113 virtual void clearNormalMap();
116 virtual void updateAndDrawDrops(
double elapsedTime);
119 virtual void finalizeNormalMap(
void);
122 virtual void addRaindrops(
double time,
float heading,
float observerVelocity,
const DtVector& observerLocation);
125 virtual void addSpray(
double time,
float heading);
128 virtual void clearDrops();
131 virtual void reset();
134 virtual void setActiveStatus();
137 virtual void slot_waterOnScreenSizeChanged(
double value);
140 virtual void releaseGLObjects()
override;
143 virtual void cleanupGpuMemory(
void);
146 virtual void createNormalMapIfNecessary(
void);
149 virtual void createNormalMapCombineProgramIfNecessary(
void);
152 virtual void createNormalMapFinalizeProgramIfNecessary(
void);
155 virtual void initZeroNormals(
void);
double myLastSprayEmissionTime
Definition: DtWaterOnScreenEffect.h:159
DtGlBuffer * myCellsBuffer
The cells' buffer on the gpu (ssbo)
Definition: DtWaterOnScreenEffect.h:201
int myNumActiveDrops
Definition: DtWaterOnScreenEffect.h:166
This class provides an OSG-specific implementation of water drops on the screen.
Definition: DtWaterOnScreenEffect.h:41
Definition: featureContext.h:37
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:188
static double theWaterOnScreenSize
Definition: DtWaterOnScreenEffect.h:209
bool myPrecomputedSplashNormalsBufferDirty
Definition: DtWaterOnScreenEffect.h:189
A convenience class to represent an OpenGL Shader Program.
Definition: DtGlProgram.h:65
The abstract Channel Class.
Definition: DtChannel.h:35
bool mySprayActiveFlag
Definition: DtWaterOnScreenEffect.h:161
bool myNormalMapCombineProgramTriedOnce
Definition: DtWaterOnScreenEffect.h:172
osg::ref_ptr< DtWaterOnScreenDrawable > myWaterOnScreenDrawable
Definition: DtWaterOnScreenEffect.h:206
Definition: DtWaterOnScreenEffect.h:191
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtObserverObject.h:29
This class provides the OSG-specific management of post-processing effects.
Definition: DtPostProcessManager.h:25
A DtWaterOnScreenCreator instance is registered with the post process element factory to create DtPos...
Definition: DtWaterOnScreenEffect.h:219
DtGlProgram * myNormalMapFinalizeProgram
Definition: DtWaterOnScreenEffect.h:174
DtGlTexture * myNormalMap
The generated normal map texture.
Definition: DtWaterOnScreenEffect.h:178
#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:162
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:175
Contains makVrv::DtGridCell struct.
DtGlBuffer * myPrecomputedDropletNormalsBuffer
The gpu buffer representing the constant pre-computed droplet normals.
Definition: DtWaterOnScreenEffect.h:184
Vector4_32 type_intensity_unused
Definition: DtWaterOnScreenEffect.h:194
Vector4_32 x_y_radius_valid
Definition: DtWaterOnScreenEffect.h:193
float mySprayIntensity
Definition: DtWaterOnScreenEffect.h:164
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:70
Contains makVrv::DtWaterOnScreenDrawable class.
DtGlBuffer * myNormalMapBuffer
The gpu buffer representing the interim normal map (ssbo)
Definition: DtWaterOnScreenEffect.h:181
A helper classes for creating a RTT target, optionally including depth buffer.
Definition: DtGlTexture.h:20
bool myPrecomputedDropletNormalsBufferDirty
Definition: DtWaterOnScreenEffect.h:185
DtGlProgram * myNormalMapCombineProgram
The various normal map mod programs.
Definition: DtWaterOnScreenEffect.h:171
double myLastUpdateTime
Definition: DtWaterOnScreenEffect.h:158
This class provides the OSG-specific implementation of a post processor. A post processor has a type ...
Definition: DtPostProcessor.h:66