52 #include <osg/Drawable>
53 #include <osg/Program>
54 #include <osg/Texture>
55 #include <osg/Texture2D>
172 virtual osg::Object*
clone(
const osg::CopyOp& copyop)
const {
return new DtHdrDrawable(*
this,copyop); }
181 virtual void drawImplementation(osg::RenderInfo& renderInfo)
const;
184 virtual void setInputTexture(osg::Texture* inputTex);
187 virtual void setEnabled(
bool enabled );
188 virtual bool enabled();
191 virtual DtHdrOptions& options();
196 virtual void setLumOverride(
bool lumOverride);
201 virtual void setHdrPassthrough(
bool enable);
202 virtual bool hdrPassthrough();
205 virtual void cleanupGpuMemory();
208 virtual float localHdrOutputScale();
211 virtual void initRenderTextures()
const;
225 osg::State *state)
const;
229 int blurWidth, osg::State *state)
const;
232 virtual void getBufferPyramidSize(BUFFER_PYRAMID
level,
int* w,
int* h)
const;
235 virtual void genStarStreak(
int streak,
float dir,
float length)
const;
238 virtual void genGhostImage(
const float* ghost_modulation1st,
const float* ghost_modulation2nd, osg::State *state)
const;
241 virtual void composeEffect(
void)
const;
245 virtual void toneMappingPass(osg::State *state)
const;
248 virtual void calculateLuminance(osg::State *state)
const;
251 virtual float adaptiveLuminance(osg::State* state)
const;
254 virtual bool adaptiveLuminanceCompute(osg::State* state)
const;
257 virtual float adaptiveLuminanceRead(osg::State* state)
const;
260 virtual float regularLuminance(osg::State* state)
const;
263 virtual float silverLiningLuminance(
void)
const;
266 virtual void initShaders();
269 virtual void computeColorModulationRedShift(
float* color,
float r,
float g,
float b,
int num);
270 virtual void computeColorModulation(
float* color,
float r,
float g,
float b,
int num);
271 virtual void computeColorModulationCoefficients();
274 virtual void createComputeProgramIfNecessary(HDR_PASS pass,
const std::string& name)
const;
275 virtual void createBlurProgramsIfNecessary()
const;
279 virtual std::string preprocessorDefinesString(HDR_PASS pass)
const;
282 virtual unsigned int inputTextureId(
unsigned int& target,
const DtGlTexture* src, osg::State* state)
const;
285 virtual void streakPass0(
int streak,
float dec,
const float step[2],
float stride)
const;
286 virtual void streakPass1(
int streak,
float dec,
const float step[2],
float stride)
const;
287 virtual void streakPass2(
int streak,
float dec,
const float step[2],
float stride)
const;
290 virtual void ghostPass0(
const float* ghost_modulation1st)
const;
291 virtual void ghostPass1(
const float* ghost_modulation2nd)
const;
294 virtual void gaussianBlurComposePass(
void)
const;
295 virtual void starStreakCompose(
void)
const;
296 virtual void finalGlarePass(
void)
const;
299 virtual void initializeUniformLocations(HDR_PASS pass)
const;
301 virtual void zeroOutUniformLocations();
304 virtual void createToneMappingProgramIfNecessary(
void)
const;
307 virtual void slot_hdrResolutionScaleChanged(
int val);
327 float myStarModulation1st[16];
328 float myStarModulation2nd[16];
329 float myStarModulation3rd[16];
331 float myFilmicGhostModulation1st[16];
332 float myFilmicGhostModulation2nd[16];
333 float myCameraGhostModulation1st[16];
334 float myCameraGhostModulation2nd[16];
336 float myHoriModulation1st[16];
337 float myHoriModulation2nd[16];
338 float myHoriModulation3rd[16];
int myBlurTexLoc
Definition: DtHdrDrawable.h:390
float adaptiveLumMinDiff
Definition: DtHdrDrawable.h:138
Definition: DtHdrDrawable.h:86
Definition: DtHdrDrawable.h:88
int myMutableGaussianBlurComposeCoeffLoc
Definition: DtHdrDrawable.h:383
Definition: DtHdrDrawable.h:107
bool enableLensFlare
Definition: DtHdrDrawable.h:136
DtGlTexture * myMutableGhost2ndBuffer
Definition: DtHdrDrawable.h:359
int numStreaks
Definition: DtHdrDrawable.h:126
virtual osg::Object * cloneType() const
Definition: DtHdrDrawable.h:173
DtGlTexture * myMutableLumcurrent
Definition: DtHdrDrawable.h:363
float timeScale
Definition: DtHdrDrawable.h:131
DtSignalConnectionManager myConnections
Definition: DtHdrDrawable.h:341
osg::Vec4f ghostScalar2
Definition: DtHdrDrawable.h:140
Definition: DtHdrDrawable.h:85
bool enableBloom
Definition: DtHdrDrawable.h:134
float lumScaler
Definition: DtHdrDrawable.h:122
HDR_PASS
Definition: DtHdrDrawable.h:79
int myMutableGhostImageScalarLoc
Definition: DtHdrDrawable.h:380
int hdrHeight
Definition: DtHdrDrawable.h:120
Definition: DtHdrDrawable.h:84
static double theLastHdrFrameTime
Definition: DtHdrDrawable.h:314
float streakRotationOffset
Definition: DtHdrDrawable.h:128
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
int myMutableStarStreakColorCoeffLoc
Definition: DtHdrDrawable.h:378
int myMutableFinalGlarecomposeMixCoeffLoc
Definition: DtHdrDrawable.h:385
float luminanceMinValue
Definition: DtHdrDrawable.h:147
int chanHeight
Definition: DtHdrDrawable.h:118
int myMutableExtractHlTresholdAndScalarLoc
locations of various uniforms in the shaders
Definition: DtHdrDrawable.h:375
int myMutableGhostImageColorCoeffLoc
Definition: DtHdrDrawable.h:381
Definition: DtHdrDrawable.h:83
Definition: DtHdrDrawable.h:95
float adaptiveLumMaxDiff
Definition: DtHdrDrawable.h:137
DtGlTexture * myMutableGhost1stBuffer
Definition: DtHdrDrawable.h:358
Definition: DtHdrDrawable.h:87
BUFFER_PYRAMID
Definition: DtHdrDrawable.h:102
float blendAmount
Definition: DtHdrDrawable.h:124
Definition: DtHdrDrawable.h:94
bool myEnableHdrPassthrough
Definition: DtHdrDrawable.h:325
bool exposureCorrelation
Definition: DtHdrDrawable.h:133
osg::ref_ptr< osg::Texture > myInputTex
Definition: DtHdrDrawable.h:312
Definition: DtHdrDrawable.h:98
unsigned int myMutableLumNext
Definition: DtHdrDrawable.h:365
Definition: DtHdrDrawable.h:82
int myScalesBlurTexLuminanceSaturationLoc
Definition: DtHdrDrawable.h:392
const float * myMutableLumNextPtr
Definition: DtHdrDrawable.h:366
float luminanceMaxValue
Definition: DtHdrDrawable.h:146
Definition: DtHdrDrawable.h:93
float streakScale
Definition: DtHdrDrawable.h:127
structure to hold all the HDR settings so they can more easily be passed to the drawable.
Definition: DtHdrDrawable.h:115
bool myLumOverride
Definition: DtHdrDrawable.h:324
Definition: DtPostProcessorDrawable.h:24
DtHdrOptions myOptions
Definition: DtHdrDrawable.h:322
int myMutableStarStreakStepSizeAndStrideLoc
Definition: DtHdrDrawable.h:377
Definition: DtHdrDrawable.h:109
float adaptiveLumPostScale
Definition: DtHdrDrawable.h:145
osg::Vec4f ghostScalar1
Definition: DtHdrDrawable.h:139
bool myEnabled
Definition: DtHdrDrawable.h:310
int hdrWidth
Definition: DtHdrDrawable.h:119
float streakDec
Definition: DtHdrDrawable.h:129
Definition: DtHdrDrawable.h:91
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool adaptiveLuminance
Definition: DtHdrDrawable.h:132
Definition: DtHdrDrawable.h:105
osg::Vec4f gausCompCoeff
Definition: DtHdrDrawable.h:142
int chanWidth
Definition: DtHdrDrawable.h:117
#define DT_DLL_VRVPOSTPROCESSOR
Definition: vrvPostProcessor.h:19
float adaptiveLumPreScale
Definition: DtHdrDrawable.h:144
DtGlTexture * myMutableGlareBuffer
Definition: DtHdrDrawable.h:361
This file contains the declaration of the class DtPostProcessorDrawable which is used for rendering p...
bool enableStreaks
Definition: DtHdrDrawable.h:135
Contains DLL export macros.
Definition: DtHdrDrawable.h:96
float myMutableLastLuminanceValue
Definition: DtHdrDrawable.h:395
Definition: DtHdrDrawable.h:92
double myMutableLastAdpativeLumFrameTime
need to keep track of the previous frame time in draw implementation so this needs to be mutable...
Definition: DtHdrDrawable.h:372
int myMutableElapsedTimeLoc
Definition: DtHdrDrawable.h:387
float gamma
Definition: DtHdrDrawable.h:125
virtual osg::Object * clone(const osg::CopyOp ©op) const
required functions for derriving from osg::Drawable
Definition: DtHdrDrawable.h:172
Base class to provide boost signal/slot management.
Definition: DtHdrDrawable.h:97
Definition: DtHdrDrawable.h:89
osg::ref_ptr< osg::Texture > myLensMask
Definition: DtHdrDrawable.h:320
float streakStride
Definition: DtHdrDrawable.h:130
DtGlTexture * myMutableInitialBuffer
Definition: DtHdrDrawable.h:368
float myAspectRatio
Definition: DtHdrDrawable.h:316
osg::Vec4f cameraMixCoeff
Definition: DtHdrDrawable.h:141
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
std::array< DtGlProgram *, PROGSIZE > myMutableShaders
Definition: DtHdrDrawable.h:318
DtGlTexture * myMutableStreakbufferFinal
Definition: DtHdrDrawable.h:356
float lumThreshold
Definition: DtHdrDrawable.h:121
bool multiview
Definition: DtHdrDrawable.h:149
int mySceneTexLoc
Definition: DtHdrDrawable.h:389
A helper classes for creating a RTT target, optionally including depth buffer.
Definition: DtGlTexture.h:20
float saturationScale
Definition: DtHdrDrawable.h:148
Definition: DtHdrDrawable.h:106
BUFFER_PYRAMID starGenLevel
Definition: DtHdrDrawable.h:123
osg::Vec4f blurScalar
Definition: DtHdrDrawable.h:143
int myMutableStarStreakComposeNumSamplersLoc
Definition: DtHdrDrawable.h:384
Definition: DtHdrDrawable.h:90
class used to render hdr during the post processor camera draw
Definition: DtHdrDrawable.h:75
char * dest
Definition: lz4.h:440
int myBlurAmountGammaEnablePassThroughLoc
Definition: DtHdrDrawable.h:393
Definition: DtHdrDrawable.h:108