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); }
184 virtual void drawImplementation(osg::RenderInfo& renderInfo)
const;
190 virtual void setEnabled(
bool enabled );
191 virtual bool enabled();
194 virtual DtHdrOptions& options();
199 virtual void setLumOverride(
bool lumOverride);
204 virtual void setHdrPassthrough(
bool enable);
205 virtual bool hdrPassthrough();
208 virtual void cleanupGpuMemory();
211 virtual float localHdrOutputScale();
214 virtual void initRenderTextures()
const;
228 osg::State *state)
const;
232 int blurWidth, osg::State *state)
const;
235 virtual void getBufferPyramidSize(BUFFER_PYRAMID
level,
int* w,
int* h)
const;
238 virtual void genStarStreak(
int streak,
float dir,
float length)
const;
241 virtual void genGhostImage(
const float* ghost_modulation1st,
const float* ghost_modulation2nd, osg::State *state)
const;
244 virtual void composeEffect(
void)
const;
248 virtual void toneMappingPass(osg::State *state)
const;
251 virtual void calculateLuminance(osg::State *state)
const;
254 virtual float adaptiveLuminance(osg::State* state)
const;
257 virtual bool adaptiveLuminanceCompute(osg::State* state)
const;
260 virtual float adaptiveLuminanceRead(osg::State* state)
const;
263 virtual float regularLuminance(osg::State* state)
const;
266 virtual float silverLiningLuminance(
void)
const;
269 virtual void initShaders();
272 virtual void computeColorModulationRedShift(
float* color,
float r,
float g,
float b,
int num);
273 virtual void computeColorModulation(
float* color,
float r,
float g,
float b,
int num);
274 virtual void computeColorModulationCoefficients();
277 virtual void createComputeProgramIfNecessary(HDR_PASS pass,
const std::string& name)
const;
278 virtual void createBlurProgramsIfNecessary()
const;
282 virtual std::string preprocessorDefinesString(HDR_PASS pass)
const;
285 virtual unsigned int inputTextureId(
unsigned int& target,
const DtGlTexture* src, osg::State* state)
const;
288 virtual void streakPass0(
int streak,
float dec,
const float step[2],
float stride)
const;
289 virtual void streakPass1(
int streak,
float dec,
const float step[2],
float stride)
const;
290 virtual void streakPass2(
int streak,
float dec,
const float step[2],
float stride)
const;
293 virtual void ghostPass0(
const float* ghost_modulation1st)
const;
294 virtual void ghostPass1(
const float* ghost_modulation2nd)
const;
297 virtual void gaussianBlurComposePass(
void)
const;
298 virtual void starStreakCompose(
void)
const;
299 virtual void finalGlarePass(
void)
const;
302 virtual void initializeUniformLocations(HDR_PASS pass)
const;
304 virtual void zeroOutUniformLocations();
307 virtual void createToneMappingProgramIfNecessary(
void)
const;
310 virtual void slot_hdrResolutionScaleChanged(
int val);
330 float myStarModulation1st[16];
331 float myStarModulation2nd[16];
332 float myStarModulation3rd[16];
334 float myFilmicGhostModulation1st[16];
335 float myFilmicGhostModulation2nd[16];
336 float myCameraGhostModulation1st[16];
337 float myCameraGhostModulation2nd[16];
339 float myHoriModulation1st[16];
340 float myHoriModulation2nd[16];
341 float myHoriModulation3rd[16];
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
int myBlurTexLoc
Definition: DtHdrDrawable.h:393
float adaptiveLumMinDiff
Definition: DtHdrDrawable.h:138
Definition: DtHdrDrawable.h:86
Definition: DtHdrDrawable.h:88
int myMutableGaussianBlurComposeCoeffLoc
Definition: DtHdrDrawable.h:386
Definition: DtHdrDrawable.h:107
bool enableLensFlare
Definition: DtHdrDrawable.h:136
DtGlTexture * myMutableGhost2ndBuffer
Definition: DtHdrDrawable.h:362
int numStreaks
Definition: DtHdrDrawable.h:126
virtual osg::Object * cloneType() const
Definition: DtHdrDrawable.h:173
DtGlTexture * myMutableLumcurrent
Definition: DtHdrDrawable.h:366
float timeScale
Definition: DtHdrDrawable.h:131
DtSignalConnectionManager myConnections
Definition: DtHdrDrawable.h:344
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:383
int hdrHeight
Definition: DtHdrDrawable.h:120
Definition: DtHdrDrawable.h:84
static double theLastHdrFrameTime
Definition: DtHdrDrawable.h:317
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:381
int myMutableFinalGlarecomposeMixCoeffLoc
Definition: DtHdrDrawable.h:388
float luminanceMinValue
Definition: DtHdrDrawable.h:147
int chanHeight
Definition: DtHdrDrawable.h:118
int myMutableExtractHlTresholdAndScalarLoc
locations of various uniforms in the shaders
Definition: DtHdrDrawable.h:378
int myMutableGhostImageColorCoeffLoc
Definition: DtHdrDrawable.h:384
Definition: DtHdrDrawable.h:83
Definition: DtHdrDrawable.h:95
float adaptiveLumMaxDiff
Definition: DtHdrDrawable.h:137
DtGlTexture * myMutableGhost1stBuffer
Definition: DtHdrDrawable.h:361
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:328
bool exposureCorrelation
Definition: DtHdrDrawable.h:133
osg::ref_ptr< osg::Texture > myInputTex
Definition: DtHdrDrawable.h:315
Definition: DtHdrDrawable.h:98
unsigned int myMutableLumNext
Definition: DtHdrDrawable.h:368
Definition: DtHdrDrawable.h:82
int myScalesBlurTexLuminanceSaturationLoc
Definition: DtHdrDrawable.h:395
const float * myMutableLumNextPtr
Definition: DtHdrDrawable.h:369
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:327
Definition: DtPostProcessorDrawable.h:24
DtHdrOptions myOptions
Definition: DtHdrDrawable.h:325
int myMutableStarStreakStepSizeAndStrideLoc
Definition: DtHdrDrawable.h:380
Definition: DtHdrDrawable.h:109
float adaptiveLumPostScale
Definition: DtHdrDrawable.h:145
osg::Vec4f ghostScalar1
Definition: DtHdrDrawable.h:139
bool myEnabled
Definition: DtHdrDrawable.h:313
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:364
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:398
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:375
int myMutableElapsedTimeLoc
Definition: DtHdrDrawable.h:390
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:323
float streakStride
Definition: DtHdrDrawable.h:130
DtGlTexture * myMutableInitialBuffer
Definition: DtHdrDrawable.h:371
float myAspectRatio
Definition: DtHdrDrawable.h:319
osg::Vec4f cameraMixCoeff
Definition: DtHdrDrawable.h:141
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::array< DtGlProgram *, PROGSIZE > myMutableShaders
Definition: DtHdrDrawable.h:321
DtGlTexture * myMutableStreakbufferFinal
Definition: DtHdrDrawable.h:359
float lumThreshold
Definition: DtHdrDrawable.h:121
bool multiview
Definition: DtHdrDrawable.h:149
int mySceneTexLoc
Definition: DtHdrDrawable.h:392
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:387
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:396
Definition: DtHdrDrawable.h:108