VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVolumetricDrawable.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 
12 
13 #include <osg/Drawable>
14 
15 // Get proper local export symbol
17 
20 
22 
23 namespace osg
24 {
25  class Texture2D;
26  class State;
27 }
28 
29 namespace makVrv
30 {
31  class DtGlRenderTexture;
32  class DtGlTexture;
33  class DtDe;
34  struct DtCrepuscularRaysParameters;
35 
38 
40  template <>
41  inline const char* creatorTypeName<DtVolumetricDrawable>(void) { return "DtVolumetricDrawableCreator"; }
42 
46  {
47  public:
49  {
50  DOWNSAMPLE4X = 0,
53  PASSES_SIZE
54  };
55  public:
57  virtual ~DtVolumetricDrawable();
58 
59  protected:
62 
65 
66  private:
69 
72 
74  DtVolumetricDrawable& operator=(const DtVolumetricDrawable&);
75 
76  public:
78  virtual void reloadShaders();
79 
81  virtual void drawImplementation(osg::RenderInfo& renderInfo) const;
82 
89  //virtual void releaseGLObjects(osg::State* state = 0) const;
90 
92  virtual void setSize(int width, int height);
93 
95  virtual void setOcclusionTexture(osg::Texture* inputTex);
96 
98  virtual void setBaseTexture(osg::Texture* inputTex);
99 
101  virtual void setVisible(bool visible) { myVisible = visible; }
102  virtual bool visible() const { return myVisible; }
103 
105  virtual void setParameters(const DtCrepuscularRaysParameters& params);
106  protected:
108  virtual void initRenderTextures() const;
109 
111  virtual void downSample4xPass(osg::State* state) const;
112 
114  virtual void volumetricRaysPass(osg::State* state) const;
115 
117  virtual void compositeRaysPass(osg::State* state) const;
118 
120  virtual void createComputeProgramIfNecessary(VOLUMETRIC_PASS pass, const std::string& path, const std::string& name) const;
121 
123  virtual void createProgramIfNecessary(VOLUMETRIC_PASS pass, const std::string& path, const std::string& prefixName) const;
124 
126  virtual void initializeUniformLocations(VOLUMETRIC_PASS pass) const;
127 
129  virtual void zeroOutUniformLocations();
130 
131  protected:
134 
137 
140 
141  bool myVisible;
142 
143  mutable unsigned int myMutablePrograms[PASSES_SIZE];
144 
146 
151 
155  };
156 
157 
158 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
Definition: DtVolumetricDrawable.h:51
osg::ref_ptr< osg::Texture > myOcclusionTex
Definition: DtVolumetricDrawable.h:135
int myChannelHeight
Definition: DtVolumetricDrawable.h:133
const char * creatorTypeName< DtVolumetricDrawable >(void)
creator class
Definition: DtVolumetricDrawable.h:41
int myMutableBaseTextureLoc
Definition: DtVolumetricDrawable.h:153
int myChannelWidth
Definition: DtVolumetricDrawable.h:132
struture used to exhchange/communicate various crepuscular rays parameters
Definition: DtCrepuscularRaysParameters.h:20
bool myVisible
Definition: DtVolumetricDrawable.h:141
friend DtVolumetricDrawableCreator
friended, to access constructor above
Definition: DtVolumetricDrawable.h:64
Definition: DtVolumetricDrawable.h:52
Contains makVrv::DtCrepuscularRaysParameters structure.
Definition: DtVirtualBaseClassCreator.h:14
int myMutableVolumetricTextureLoc
Definition: DtVolumetricDrawable.h:154
Definition: DtPostProcessorDrawable.h:23
int myMutableSlLightColorLoc
Definition: DtVolumetricDrawable.h:149
osg::ref_ptr< osg::Texture > myBaseTex
Definition: DtVolumetricDrawable.h:136
virtual bool visible() const
Definition: DtVolumetricDrawable.h:102
virtual void setVisible(bool visible)
set/get visibility
Definition: DtVolumetricDrawable.h:101
int myMutableSlLightPositionOnScreenLoc
Definition: DtVolumetricDrawable.h:147
class used to render crepuscular rays during the post processor camera draw
Definition: DtVolumetricDrawable.h:45
#define DT_DLL_VRVPOSTPROCESSOR
Definition: vrvPostProcessor.h:19
This file contains the declaration of the class DtPostProcessorDrawable which is used for rendering p...
Contains DLL export macros.
DtGlTexture * myMutableDownSampledOcclusionTexture
Definition: DtVolumetricDrawable.h:138
int myMutableSlOutputScaleLoc
Definition: DtVolumetricDrawable.h:150
int myMutableBaseStrengthLoc
Definition: DtVolumetricDrawable.h:152
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
int myMutableSlParametersLoc
Definition: DtVolumetricDrawable.h:148
A helper classes for creating a RTT target, optionally including depth buffer.
Definition: DtGlTexture.h:20
DtVirtualBaseClassCreator< DtVolumetricDrawable > DtVolumetricDrawableCreator
Definition: DtVolumetricDrawable.h:36
VOLUMETRIC_PASS
Definition: DtVolumetricDrawable.h:48
DtGlTexture * myMutableVolumetricRaysBuffer
Definition: DtVolumetricDrawable.h:139
DtCrepuscularRaysParameters myParameters
Definition: DtVolumetricDrawable.h:145

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)