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) 2023 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 
25 // avoid including glew
26 typedef int GLint;
27 
28 namespace osg
29 {
30  class State;
31 }
32 
33 namespace makVrv
34 {
35  class DtDe;
36  class DtTritonRenderingParameters;
37 
38  class DtGlBuffer;
39 
42 
45 
47  template <>
48  inline const char* creatorTypeName<DtTritonShaderUniformManager>(void) { return "DtTritonShaderUniformManagerCreator"; }
49 
53  {
54  public:
57 
60 
61  protected:
64 
65  private:
71  DtTritonShaderUniformManager &operator=(const DtTritonShaderUniformManager &other) = delete;
72 
73  public:
76  virtual bool initShaderUniformHandles(GLint shader, int shaderType);
77 
79  virtual void updateShadingUniforms(GLint shader, int shaderType, const DtTritonRenderingParameters& renderingParameters);
80 
81  virtual void updateReverseZ(GLint shader, int shaderType, bool isReverseZ);
82 
85  virtual void updateViewingUniforms(GLint shader, int shaderType
86  , const Matrix4_32& view_matrix_32
87  , const Matrix4_32& view_inverse_transpose_matrix_32);
88 
91  virtual void updateOceanMaskingUniforms(GLint shader, int shaderType, unsigned int maskUnit, const DtVector4<double>& latLongMinMax);
92 
94  virtual void updateUpdateMatricesForSensorFX(GLint shader, int shaderType
95  , const osg::Matrixf& osgInverseViewMatrix, const osg::Matrixf& osgModelViewMatrix);
96 
99  virtual void resetToValue(int shaderType, int val);
100 
102  virtual void bindUbo();
103 
105  virtual void unbindUbo();
106  protected:
107 
108  DtDe& myDe; // De reference
109 
110  // set to track which program ID's we've bound our interface blocks to, to avoid redundancies.
111  std::set<unsigned int> myProgramIds;
112 
114  //Arrays for caching the shader uniform handles. Mutable since they are
115  // updated in drawImplemtation of the DtTritonDrawable which osg requires to be const
116 
118  {
119  public:
122 
124 
126 
128 
135 
138 
140  };
141 
143 
145  {
146  public:
148 
150 
153  };
154 
155  std::array<DtVrvTritUniformLocations, NUM_TRITON_SHADER_TYPES> myTritUniformLocations;
156 
159  };
160 
161 } // namespace makVrv
162 
int myVrvTritUseGGXLoc
Definition: DtTritonShaderUniformManager.h:127
int myVrvTritFinalSpecscaleLoc
Definition: DtTritonShaderUniformManager.h:134
int myVrvTritRoughnessLoc
Definition: DtTritonShaderUniformManager.h:129
int myGpuShaderUboBinding
Definition: DtTritonShaderUniformManager.h:158
int myVrvTritWindToRoughnessLoc
Definition: DtTritonShaderUniformManager.h:132
2 dimensional vector
int myVrvTritDebugValueLoc
Definition: DtTritonShaderUniformManager.h:125
int myModelViewInverseTransposeMatrixUniformLoc
Definition: DtTritonShaderUniformManager.h:121
int myVrvTritSparkleMixFactorLoc
Definition: DtTritonShaderUniformManager.h:131
4 dimensional vector
int myVrvTritIncludeGLoc
Definition: DtTritonShaderUniformManager.h:133
int myOceanMaskTextureUnitUniform
Definition: DtTritonShaderUniformManager.h:147
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:48
class for managing the shader uniforms for triton, gets the shader ids and caches them between frames...
Definition: DtTritonShaderUniformManager.h:52
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
DtGlBuffer * myGpuShaderUbo
Definition: DtTritonShaderUniformManager.h:157
int myVrvTritRoughfloorLoc
Definition: DtTritonShaderUniformManager.h:130
int GLint
Definition: DtTritonShaderUniformManager.h:26
#define DT_DLL_VRVTRITON
Definition: vrvTriton.h:19
std::set< unsigned int > myProgramIds
Definition: DtTritonShaderUniformManager.h:111
DtVirtualBaseClassCreator< DtTritonShaderUniformManager > DtTritonShaderUniformManagerCreator
creator
Definition: DtTritonShaderUniformManager.h:41
int myOsgModelViewMatrix
Definition: DtTritonShaderUniformManager.h:152
structure used to communicated triton rendering parameters between imgui/system to triton ...
Definition: DtTritonRenderingParameters.h:20
int myVrvTritEnvInReflectLoc
Definition: DtTritonShaderUniformManager.h:136
int myVrvTritReflectionPowerLoc
Definition: DtTritonShaderUniformManager.h:137
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:151
DtDe & myDe
Definition: DtTritonShaderUniformManager.h:108
Definition: DtTritonShaderUniformManager.h:117
int myModelViewMatrixUniformLoc
Definition: DtTritonShaderUniformManager.h:120
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:72
std::array< DtVrvTritUniformLocations, NUM_TRITON_SHADER_TYPES > myTritUniformLocations
Definition: DtTritonShaderUniformManager.h:155
int myLatLongMinMax
Definition: DtTritonShaderUniformManager.h:149
DtVrvTritUboConstantLocations myTritUboConstantLocations
Definition: DtTritonShaderUniformManager.h:142
4 dimensional matrix
friend DtTritonShaderUniformManagerCreator
friend class so only the creator can create this class
Definition: DtTritonShaderUniformManager.h:56
int myTritRegularShadowActiveLoc
Definition: DtTritonShaderUniformManager.h:123
Definition: DtTritonShaderUniformManager.h:144
int myVrvTritReverseZLoc
Definition: DtTritonShaderUniformManager.h:139

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)