18 #include <osg/Drawable>
19 #include <osg/Texture>
20 #include <osg/Texture2D>
71 virtual void initShaders();
74 virtual void execute(osg::RenderInfo& renderInfo);
77 virtual void cleanupGpuMemory();
80 virtual void setInputTexture(osg::Texture* inputTex);
83 virtual float localHdrOutputScale();
90 virtual void initRenderTextures(
const osg::Camera* osgCamera);
108 int blurWidth, osg::State* state);
114 virtual void genStarStreak(
int streak,
float dir,
float length);
117 virtual void genGhostImage(
const float* ghost_modulation1st,
const float* ghost_modulation2nd, osg::State* state);
120 virtual void composeEffect(
void);
124 virtual void toneMappingPass(osg::State* state);
127 virtual void calculateLuminance(
const osg::Camera* osgCamera);
130 virtual float adaptiveLuminance(
const osg::Camera* osgCamera);
133 virtual bool adaptiveLuminanceCompute(
const osg::Camera* osgCamera);
136 virtual float adaptiveLuminanceRead(
const osg::Camera* osgCamera);
139 virtual float regularLuminance(
const osg::Camera* osgCamera);
142 virtual float silverLiningLuminance(
const osg::Camera* osgCamera);
145 virtual void computeColorModulationRedShift(
float* color,
float r,
float g,
float b,
int num);
146 virtual void computeColorModulation(
float* color,
float r,
float g,
float b,
int num);
147 virtual void computeColorModulationCoefficients();
150 virtual void createComputeProgramIfNecessary(
HDR_PASS pass,
const std::string& name);
151 virtual void createBlurProgramsIfNecessary();
155 virtual std::string preprocessorDefinesString(
HDR_PASS pass);
158 virtual unsigned int inputTextureId(
unsigned int& target,
const DtGlTexture* src, osg::State* state);
161 virtual void streakPass0(
int streak,
float dec,
const float step[2],
float stride);
162 virtual void streakPass1(
int streak,
float dec,
const float step[2],
float stride);
163 virtual void streakPass2(
int streak,
float dec,
const float step[2],
float stride);
166 virtual void ghostPass0(
const float* ghost_modulation1st);
167 virtual void ghostPass1(
const float* ghost_modulation2nd);
170 virtual void gaussianBlurComposePass(
void);
171 virtual void starStreakCompose(
void);
172 virtual void finalGlarePass(
void);
175 virtual void initializeUniformLocations(
HDR_PASS pass);
177 virtual void zeroOutUniformLocations();
180 virtual void createToneMappingProgramIfNecessary(
void);
183 virtual void slot_hdrResolutionScaleChanged(
int val);
193 float myStarModulation1st[16];
194 float myStarModulation2nd[16];
195 float myStarModulation3rd[16];
197 float myFilmicGhostModulation1st[16];
198 float myFilmicGhostModulation2nd[16];
199 float myCameraGhostModulation1st[16];
200 float myCameraGhostModulation2nd[16];
202 float myHoriModulation1st[16];
203 float myHoriModulation2nd[16];
204 float myHoriModulation3rd[16];
260 double myLastHdrFrameTime = -1;
float myLastLuminanceValue
Definition: DtHdrDrawableRenderData.h:258
DtGlTexture * myGhost1stBuffer
Definition: DtHdrDrawableRenderData.h:221
int myGaussianBlurComposeCoeffLoc
Definition: DtHdrDrawableRenderData.h:246
This class encapsulates all the (lazily) created OpenGL objects that are required for doing hdr...
Definition: DtHdrDrawableRenderData.h:55
DtGlTexture * myLumcurrent
Definition: DtHdrDrawableRenderData.h:226
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
int myExtractHlTresholdAndScalarLoc
locations of various uniforms in the shaders
Definition: DtHdrDrawableRenderData.h:238
float myAspectRatio
Definition: DtHdrDrawableRenderData.h:189
int myBlurTexLoc
Definition: DtHdrDrawableRenderData.h:253
DtGlTexture * myGhost2ndBuffer
Definition: DtHdrDrawableRenderData.h:222
int myStarStreakStepSizeAndStrideLoc
Definition: DtHdrDrawableRenderData.h:240
DtVirtualBaseClassCreator< DtHdrDrawableRenderData, const DtHdrOptions &, DtHdrDrawable *, osg::Texture *& > DtHdrDrawableRenderDataCreator
creator
Definition: DtHdrDrawableRenderData.h:43
const DtHdrOptions & myOptions
Definition: DtHdrDrawableRenderData.h:187
int myGhostImageColorCoeffLoc
Definition: DtHdrDrawableRenderData.h:244
structure to hold all the HDR settings so they can more easily be passed to the drawable.
Definition: DtHdrTypes.h:54
std::array< DtGlProgram *, PROGSIZE > myShaders
Definition: DtHdrDrawableRenderData.h:191
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:23
int myGhostImageScalarLoc
Definition: DtHdrDrawableRenderData.h:243
DtGlTexture * myGlareBuffer
Definition: DtHdrDrawableRenderData.h:224
HDR_PASS
Definition: DtHdrTypes.h:18
unsigned int myLumNextBuffer
Definition: DtHdrDrawableRenderData.h:228
friend DtHdrDrawableRenderDataCreator
only friend can create
Definition: DtHdrDrawableRenderData.h:59
int myScalesBlurTexLuminanceSaturationLoc
Definition: DtHdrDrawableRenderData.h:255
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
#define DT_DLL_VRVPOSTPROCESSOR
Definition: vrvPostProcessor.h:19
BUFFER_PYRAMID
Definition: DtHdrTypes.h:41
double myLastAdpativeLumFrameTime
need to keep track of the previous frame time in draw implementation so this needs to be mutable...
Definition: DtHdrDrawableRenderData.h:235
int myElapsedTimeLoc
Definition: DtHdrDrawableRenderData.h:250
Contains DLL export macros.
int mySceneTexLoc
Definition: DtHdrDrawableRenderData.h:252
Base class to provide boost signal/slot management.
const float * myLumNextBufferPtr
Definition: DtHdrDrawableRenderData.h:229
DtGlTexture * myStreakbufferFinal
Definition: DtHdrDrawableRenderData.h:219
int myStarStreakColorCoeffLoc
Definition: DtHdrDrawableRenderData.h:241
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.
osg::ref_ptr< osg::Texture > myLensMask
Definition: DtHdrDrawableRenderData.h:267
Definition: DtHdrTypes.h:49
const char * creatorTypeName< DtHdrDrawableRenderData >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtHdrDrawableRenderData.h:50
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
int myStarStreakComposeNumSamplersLoc
Definition: DtHdrDrawableRenderData.h:247
int myFinalGlarecomposeMixCoeffLoc
Definition: DtHdrDrawableRenderData.h:248
A helper classes for creating a RTT target, optionally including depth buffer.
Definition: DtGlTexture.h:20
DtDe & myDe
Definition: DtHdrDrawableRenderData.h:185
class used to render hdr during the post processor camera draw
Definition: DtHdrDrawable.h:76
char * dest
Definition: lz4.h:440
DtSignalConnectionManager myConnections
Definition: DtHdrDrawableRenderData.h:265
osg::ref_ptr< osg::Texture > myInputTex
Definition: DtHdrDrawableRenderData.h:268
DtGlTexture * myInitialBuffer
Definition: DtHdrDrawableRenderData.h:231
int myBlurAmountGammaEnablePassThroughLoc
Definition: DtHdrDrawableRenderData.h:256