VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTritonShaderUniformManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvTriton/vrvTriton.h>
14 
16 
17 #include <vrvMath/DtVector4.h>
18 #include <vrvMath/DtMatrix4.h>
19 #include <vrvMath/DtVector2.h>
20 
21 #include <osg/Matrixf>
22 
23 #include <set>
24 #include <array>
25 
26 // avoid including glew
27 typedef int GLint;
28 
29 namespace osg
30 {
31  class State;
32 }
33 
34 namespace makVrv
35 {
36  class DtDe;
37  class DtTritonRenderingParameters;
38 
39  class DtGlBuffer;
40 
43 
46 
48  template <>
49  inline const char* creatorTypeName<DtTritonShaderUniformManager>(void) { return "DtTritonShaderUniformManagerCreator"; }
50 
54  {
55  public:
58 
61 
62  protected:
65 
66  private:
72  DtTritonShaderUniformManager &operator=(const DtTritonShaderUniformManager &other) = delete;
73 
74  public:
77  virtual bool initShaderUniformHandles(GLint shader, int shaderType);
78 
80  virtual void updateShadingUniforms(GLint shader, int shaderType, const DtTritonRenderingParameters& renderingParameters);
81 
82  virtual void updateReverseZ(GLint shader, int shaderType, bool isReverseZ);
83 
86  virtual void updateViewingUniforms(GLint shader, int shaderType
87  , const Matrix4_32& view_matrix_32
88  , const Matrix4_32& view_inverse_transpose_matrix_32);
89 
92  virtual void updateOceanMaskingUniforms(GLint shader, int shaderType, unsigned int maskUnit, const DtVector4<double>& latLongMinMax);
93 
95  virtual void updateUpdateMatricesForSensorFX(GLint shader, int shaderType
96  , const osg::Matrixf& osgInverseViewMatrix, const osg::Matrixf& osgModelViewMatrix);
97 
100  virtual void resetToValue(int shaderType, int val);
101 
103  virtual void bindUbo();
104 
106  virtual void unbindUbo();
107  protected:
108 
109  DtDe& myDe; // De reference
110 
111  // set to track which program ID's we've bound our interface blocks to, to avoid redundancies.
112  std::set<unsigned int> myProgramIds;
113 
115  //Arrays for caching the shader uniform handles. Mutable since they are
116  // updated in drawImplemtation of the DtTritonDrawable which osg requires to be const
117 
119  {
120  public:
123 
125 
127 
129 
136 
139 
141  };
142 
144 
146  {
147  public:
149 
151 
154  };
155 
156  std::array<DtVrvTritUniformLocations, NUM_TRITON_SHADER_TYPES> myTritUniformLocations;
157 
160  };
161 
162 } // namespace makVrv
163 
int myVrvTritUseGGXLoc
Definition: DtTritonShaderUniformManager.h:128
int myVrvTritFinalSpecscaleLoc
Definition: DtTritonShaderUniformManager.h:135
int myVrvTritRoughnessLoc
Definition: DtTritonShaderUniformManager.h:130
int myGpuShaderUboBinding
Definition: DtTritonShaderUniformManager.h:159
int myVrvTritWindToRoughnessLoc
Definition: DtTritonShaderUniformManager.h:133
2 dimensional vector
int myVrvTritDebugValueLoc
Definition: DtTritonShaderUniformManager.h:126
int myModelViewInverseTransposeMatrixUniformLoc
Definition: DtTritonShaderUniformManager.h:122
int myVrvTritSparkleMixFactorLoc
Definition: DtTritonShaderUniformManager.h:132
4 dimensional vector
int myVrvTritIncludeGLoc
Definition: DtTritonShaderUniformManager.h:134
int myOceanMaskTextureUnitUniform
Definition: DtTritonShaderUniformManager.h:148
Contains DLL export macros.
const char * creatorTypeName< DtTritonShaderUniformManager >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtTritonShaderUniformManager.h:49
class for managing the shader uniforms for triton, gets the shader ids and caches them between frames...
Definition: DtTritonShaderUniformManager.h:53
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:23
DtGlBuffer * myGpuShaderUbo
Definition: DtTritonShaderUniformManager.h:158
int myVrvTritRoughfloorLoc
Definition: DtTritonShaderUniformManager.h:131
int GLint
Definition: DtTritonShaderUniformManager.h:27
#define DT_DLL_VRVTRITON
Definition: vrvTriton.h:19
std::set< unsigned int > myProgramIds
Definition: DtTritonShaderUniformManager.h:112
DtVirtualBaseClassCreator< DtTritonShaderUniformManager > DtTritonShaderUniformManagerCreator
creator
Definition: DtTritonShaderUniformManager.h:42
int myOsgModelViewMatrix
Definition: DtTritonShaderUniformManager.h:153
structure used to communicated triton rendering parameters between imgui/system to triton ...
Definition: DtTritonRenderingParameters.h:20
int myVrvTritEnvInReflectLoc
Definition: DtTritonShaderUniformManager.h:137
int myVrvTritReflectionPowerLoc
Definition: DtTritonShaderUniformManager.h:138
A generic OpenGL buffer. This can be: -&gt; a vertex buffer -&gt; an index buffer -&gt; a shader storage buffe...
Definition: DtGlBuffer.h:29
int myOsgViewMatrixInverse
Definition: DtTritonShaderUniformManager.h:152
DtDe & myDe
Definition: DtTritonShaderUniformManager.h:109
Definition: DtTritonShaderUniformManager.h:118
int myModelViewMatrixUniformLoc
Definition: DtTritonShaderUniformManager.h:121
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
std::array< DtVrvTritUniformLocations, NUM_TRITON_SHADER_TYPES > myTritUniformLocations
Definition: DtTritonShaderUniformManager.h:156
int myLatLongMinMax
Definition: DtTritonShaderUniformManager.h:150
DtVrvTritUboConstantLocations myTritUboConstantLocations
Definition: DtTritonShaderUniformManager.h:143
4 dimensional matrix
friend DtTritonShaderUniformManagerCreator
friend class so only the creator can create this class
Definition: DtTritonShaderUniformManager.h:57
int myTritRegularShadowActiveLoc
Definition: DtTritonShaderUniformManager.h:124
Definition: DtTritonShaderUniformManager.h:145
int myVrvTritReverseZLoc
Definition: DtTritonShaderUniformManager.h:140

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)