VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtPerChannelData.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 
13 
14 
15 #include <osgEarth/VirtualProgram>
16 
17 #include <osg/Referenced>
18 #include <osg/Camera>
19 #include <osg/PolygonOffset>
20 #include <osg/Geode>
21 
22 namespace makVrv
23 {
24  class DtDe;
25  class DtOsgChannel;
26  class DtOsgDebugFrustum;
27 
29  {
30  float myImportance;
31  unsigned int myCascadeIndex;
32  };
33 
35  {
37 
40  unsigned int mySplitIndex;
41 
42  unsigned int myRefreshAge;
43  bool myRefresh;
44  };
45 
46  // per window info
47  static const int MAX_NUM_CASCADES = 6;
48 
49  struct DtPerChannelData : public osg::Referenced
50  {
53 
55  std::vector<DtCascadeImportanceData> myImportances;
56  std::vector<DtCsmSplitData> myCsmSplits;
58 
62 
63  // geometry shader data, unused
67 
69 
70  // atlas data
71  unsigned int myAtlasWidth;
72  unsigned int myAtlasHeight;
73  unsigned int myAtlasWidthNumSplits;
74  unsigned int myAtlasHeightNumSplits;
75 
83 
87 
91 
92  // debugging stuff
97 
104  osg::Matrix myGeometryShaderMatrix[MAX_NUM_CASCADES]; // unused
105 
106  // softshadow prototype
109 
110  //VSM camera array
111  std::vector<osg::ref_ptr<osg::Camera> > myDepthCameras;
112  std::vector<osg::ref_ptr<osg::Camera> > myXBlurCameras;
113  std::vector<osg::ref_ptr<osg::Camera> > myYBlurCameras;
114 
115  unsigned int myShadowMapSize;
116  unsigned int myPcfFilterCount;
118 
119  protected:
121  virtual ~DtPerChannelData();
122  void removeVisualizers();
123 
124  friend class DtOsgShadowTechnique;
125  };
126 
127 }
128 
129 
osg::ref_ptr< osg::Uniform > mySplitDistancesWorldUniform
Definition: DtPerChannelData.h:85
double myLastSimTime
Definition: DtPerChannelData.h:117
float myLastFarDistance
Definition: DtPerChannelData.h:82
std::vector< DtCsmSplitData > myCsmSplits
Definition: DtPerChannelData.h:56
osg::ref_ptr< osg::Uniform > myGeometryTransformMatrixUniform
Definition: DtPerChannelData.h:64
osg::ref_ptr< osg::Uniform > mySplitDistancesUniform
Definition: DtPerChannelData.h:84
osg::ref_ptr< osg::Uniform > myShadowAmbientFactorUniform
Definition: DtPerChannelData.h:89
osg::ref_ptr< DtOsgDebugFrustum > myFrustum[MAX_NUM_CASCADES]
Definition: DtPerChannelData.h:99
float myImportance
Definition: DtPerChannelData.h:30
osg::Matrix myGeometryShaderMatrix[MAX_NUM_CASCADES]
Definition: DtPerChannelData.h:104
osg::ref_ptr< osg::Uniform > myInvNumSplitsInterpUniform
Definition: DtPerChannelData.h:90
osg::Vec3d myLastCameraPosition
Definition: DtPerChannelData.h:79
bool myNotInitialized
Definition: DtPerChannelData.h:77
static const int MAX_NUM_CASCADES
Definition: DtPerChannelData.h:47
osg::ref_ptr< osg::Geode > myVisualizers
Definition: DtPerChannelData.h:94
osg::ref_ptr< osg::PolygonOffset > myPolygonOffset
Definition: DtPerChannelData.h:39
Contains the DtOsgTextureApplyAttribute class.
std::vector< DtCascadeImportanceData > myImportances
Definition: DtPerChannelData.h:55
osg::Matrix myLightViewMatrix[MAX_NUM_CASCADES]
Definition: DtPerChannelData.h:108
unsigned int myPcfFilterCount
Definition: DtPerChannelData.h:116
unsigned int myAtlasWidthNumSplits
Definition: DtPerChannelData.h:73
Definition: DtPerChannelData.h:34
osg::ref_ptr< osg::Uniform > myUseReverseZBuffer
Definition: DtPerChannelData.h:88
unsigned int myAtlasHeight
Definition: DtPerChannelData.h:72
This class provides the OSG-specific implementation of a DtChannel.
Definition: DtOsgChannel.h:55
makVrv::DtOsgChannel & myChannel
Definition: DtPerChannelData.h:78
bool myRefresh
Definition: DtPerChannelData.h:43
osg::ref_ptr< osg::Uniform > myLightViewMatrixUniform
Definition: DtPerChannelData.h:107
osg::Vec3d myLastLargeShadowMapCameraPosition
Definition: DtPerChannelData.h:80
Definition: DtPerChannelData.h:49
std::vector< osg::ref_ptr< osg::Camera > > myXBlurCameras
Definition: DtPerChannelData.h:112
Definition: DtPerChannelData.h:28
osg::ref_ptr< osg::Uniform > myReceiveShadowsUniform
Definition: DtPerChannelData.h:61
osg::ref_ptr< osgEarth::VirtualProgram > myVirtualProgram
Definition: DtPerChannelData.h:57
The DtOsgShadowTechnique class implements a robust shadow mapping system.
Definition: DtOsgShadowTechnique.h:61
double myRefreshTimer
Definition: DtPerChannelData.h:68
osg::ref_ptr< osg::Uniform > myShadowTexGenUniform
Definition: DtPerChannelData.h:60
makVrv::DtDe & myDe
Definition: DtPerChannelData.h:54
osg::ref_ptr< DtOsgDebugFrustum > myCameraFrustum
Definition: DtPerChannelData.h:98
osg::ref_ptr< osg::Camera > myCamera
Definition: DtPerChannelData.h:36
unsigned int myShadowMapSize
Definition: DtPerChannelData.h:115
osg::ref_ptr< osg::Uniform > myInverseShadowMapSizeUniform
Definition: DtPerChannelData.h:66
virtual ~DtPerChannelData()
CTOR.
unsigned int mySplitIndex
Definition: DtPerChannelData.h:40
osg::ref_ptr< osg::MatrixTransform > myTargets[MAX_NUM_CASCADES+1]
Definition: DtPerChannelData.h:100
osg::ref_ptr< osg::Geometry > myOrthoBox[MAX_NUM_CASCADES]
Definition: DtPerChannelData.h:102
osg::ref_ptr< osg::Camera > myOverlayDebugFarCamera
Definition: DtPerChannelData.h:96
osg::ref_ptr< osg::Uniform > myNumCascadesUniform
Definition: DtPerChannelData.h:65
double myCurrentSimTimeScale
Definition: DtPerChannelData.h:81
unsigned int myCascadeIndex
Definition: DtPerChannelData.h:31
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
unsigned int myRefreshAge
Definition: DtPerChannelData.h:42
unsigned int myAtlasWidth
Definition: DtPerChannelData.h:71
unsigned int myAtlasHeightNumSplits
Definition: DtPerChannelData.h:74
osg::ref_ptr< osg::StateSet > mySharedStateSet
Definition: DtPerChannelData.h:59
osg::ref_ptr< osg::Uniform > myAtlasTexOffsetAndScaleUniform
Definition: DtPerChannelData.h:38
osg::Matrix myTextureViewProjMatrix[MAX_NUM_CASCADES]
Definition: DtPerChannelData.h:103
osg::ref_ptr< osg::Group > myVisualizersGroup
Definition: DtPerChannelData.h:93
bool myJustInitialized
Definition: DtPerChannelData.h:76
std::vector< osg::ref_ptr< osg::Camera > > myYBlurCameras
Definition: DtPerChannelData.h:113
DtPerChannelData(makVrv::DtDe &de, makVrv::DtOsgChannel &channel)
CTOR.
osg::ref_ptr< osg::MatrixTransform > myOrigin
Definition: DtPerChannelData.h:101
double mySplitFarDistances[MAX_NUM_CASCADES]
Definition: DtPerChannelData.h:86
std::vector< osg::ref_ptr< osg::Camera > > myDepthCameras
Definition: DtPerChannelData.h:111
osg::ref_ptr< osg::Camera > myOverlayDebugCamera
Definition: DtPerChannelData.h:95

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)