VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtShadowSettingsObject.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtUniqueID.h>
15 
16 #include <string>
17 #include <vector>
18 
19 namespace makVrv
20 {
21 
22  class DtDe;
23 
24  class DT_DLL_VRVCORE DtShadowSettingsObject // this should really just be public DtShadowSettingsRecord
25  {
26  public:
28  DtShadowSettingsObject(DtDe& de, DtUniqueID id, const std::string& name = "");
29 
32 
34  void setNameAndRegister(const std::string& name, int quality);
35 
37  const std::string& name() { return myName; }
38 
40  int quality() const { return myQuality; }
41 
43  void setDirty(bool dirty);
44 
46  bool dirty() const { return myDirty; }
47 
49  void setEntitiesCastsShadows(bool castShadows);
50 
52  bool entitiesCastsShadows() const { return myEntitiesCastsShadows; }
53 
55  void setPropsCastsShadows(bool castShadows);
56 
58  bool propsCastsShadows() const { return myPropsCastsShadows; }
59 
61  void setTerrainCastsShadows(bool castShadows);
62 
64  bool terrainCastsShadows() const { return myTerrainCastsShadows; }
65 
67  void setMoonCastsShadows(bool castShadows);
68 
70  bool moonCastsShadows() const { return myMoonCastsShadows; }
71 
73  void setCloudsCastsShadows(bool castShadows);
74 
76  bool cloudsCastsShadows() const { return myCloudsCastsShadows; }
77 
79  void setVisualizeShadows(bool visualizeShadows);
80 
82  bool visualizeShadows() const { return myVisualizeShadows; }
83 
85  void setNumberOfSplits(unsigned int numSplits);
86 
88  unsigned int numberOfSplits() const { return myNumSplits; }
89 
92  void setUseCachedFarCascade(bool useCachedFarCascade);
93 
95  bool useCachedFarCascade() const { return myUseCachedFarCascade; }
96 
98  void setFarCascadeUpdateFrequency(float value) { myFarCascadeUpdateFrequency = value; }
99 
101  float farCascadeUpdateFrequency() const {return myFarCascadeUpdateFrequency; }
102 
104  void setUseFrontFaceCulling(bool useFrontFaceCulling);
105 
107  bool useFrontFaceCulling() const { return myUseFrontFaceCulling; }
108 
110  void setUsePolygonOffset(bool usePolygonOffset);
111 
113  bool usePolygonOffset() const { return myUsePolygonOffset; }
114 
116  void setPolygonOffset(unsigned int splitIndex, float factor, float units);
117 
119  float polygonOffsetFactor(unsigned int splitIndex) const;
120 
122  float polygonOffsetUnits(unsigned int splitIndex) const;
123 
125  void setSpotLightShadowMapSize(unsigned int size);
126 
128  unsigned int spotLightShadowMapSize() const { return mySpotLightShadowMapSize; }
129 
131  void setGlobalLightShadowMapSize(unsigned int size);
132 
134  unsigned int globalLightShadowMapSize() const { return myGlobalLightShadowMapSize; }
135 
137  void setUseMaximumViewDistance(bool useMaximumViewDistance);
138 
140  bool useMaximumViewDistance() const { return myUseMaximumViewDistance; }
141 
143  void setMaximumViewDistance(double viewDistance);
144 
146  double maximumViewDistance() const { return myMaximumViewDistance; }
147 
149  void setShadowAmbientFactor(float shadowAmbientFactor);
150 
152  float shadowAmbientFactor() const { return myShadowAmbientFactor; }
153 
155  void setShadowStabilizationScheme(makArchives::DtShadowSettingsRecord::ShadowStabilizationScheme shadowStabilizationScheme);
156 
159 
161  void setSplitDistanceComputeScheme(makArchives::DtShadowSettingsRecord::SplitDistanceComputeScheme splitDistanceComputeScheme);
162 
165 
167  void setMixedSplitInterpolationValue(double interp);
168 
170  double mixedSplitInterpolationValue() const { return myMixedSplitInterp; }
171 
173  void setSplitSelectionScheme(makArchives::DtShadowSettingsRecord::SplitSelectionScheme splitSelectionScheme);
174 
177 
179  void setDataStorageScheme(makArchives::DtShadowSettingsRecord::DataStorageScheme dataStorageScheme);
180 
183 
185  void setPreFilteringScheme(makArchives::DtShadowSettingsRecord::PreFilteringScheme preFilteringScheme);
186 
189 
191  void setFilteringScheme(makArchives::DtShadowSettingsRecord::FilteringScheme filteringScheme);
192 
195 
197  void setPoissonDiskSamplingScheme(makArchives::DtShadowSettingsRecord::PoissonDiskSamplingScheme poissonDiskSamplingScheme);
198 
201 
203  void setUseViewportMulticast(bool useViewportMulticast);
204 
206  bool useViewportMulticast() const { return myUseViewportMulticast; }
207 
209  void setNumPersistentPassesPerCascade(unsigned int numPasses);
210 
212  unsigned int numPersistentPassesPerCascade() const { return myNumPersistentPassesPerCascade; }
213 
215  void setNumAdditionalPassesPerCascade(unsigned int numPasses);
216 
218  unsigned int numAdditionalPassesPerCascade() const { return myNumAdditionalPassesPerCascade; }
219 
221  void setPcfFilterWidth(unsigned int pcfFilterWidth);
222 
224  unsigned int pcfFilterWidth() const { return myPcfFilterWidth; }
225 
227  void setBlendCascadesBoundaries(bool blendCascadesBoundaries);
228 
230  bool blendCascadesBoundaries() const { return myBlendCascadesBoundaries; }
231 
233  void setUseSDSM(bool useSDSM);
234 
236  bool useSDSM() const { return myUseSDSM; }
237 
239  void setSDSMReadBackLatency(unsigned int sdsmReadBackLatency);
240 
242  unsigned int sdsmReadBackLatency() const { return mySDSMReadBackLatency; }
243 
245  void setUseCameraDepthBufferForSDSM(bool useCameraDepthBufferForSDSM);
246 
248  bool useCameraDepthBufferForSDSM() const { return myUseCameraDepthBufferForSDSM; }
249 
251  void setSDSMRenderInterval(double sdsmRenderInterval);
252 
254  double sdsmRenderInterval() const { return mySDSMRenderInterval; }
255 
257  void setAdjustFarAndFlagsBasedOnHAT(bool enabled) { myAdjustFarAndFlagsBasedOnHAT = enabled; }
258 
260  bool adjustFarAndFlagsBasedOnHAT() const { return myAdjustFarAndFlagsBasedOnHAT; }
261 
262 
264 
266  void setSplitNearDistanceMinimumBias(double bias);
267 
269  double splitNearDistanceMinimumBias() const { return 0.0f; }// { return mySplitNearDistanceMinimumBias; }
270 
272  void setSplitNearDistanceMaximumBias(double bias);
273 
275  double splitNearDistanceMaximumBias() const { return 0.0f; } //{ return mySplitNearDistanceMaximumBias; }
276 
278  void setSplitFarDistanceBias(double bias);
279 
281  double splitFarDistanceBias() const { return 0.0f; } //{ return mySplitFarDistanceBias; }
282 
284  void setEVSMPositiveExponent(double evsmPositiveExponent);
285 
287  double evsmPositiveExponent() const { return 0.0; } //{ return myEVSMPositiveExponent; }
288 
290  void setEVSMNegativeExponent(double evsmNegativeExponent);
291 
293  double evsmNegativeExponent() const { return 0.0; }// {return myEVSMNegativeExponent; }
294 
296  void setVSMMininumVariance(double vsmMininumVariance);
297 
299  double vsmMininumVariance() const { return 0.0; }//return myVSMMininumVariance;
300 
302  void setESMDarkeningFactor(double esmDarkeningFactor);
303 
305  double esmDarkeningFactor() const { return 0.0; }// myESMDarkeningFactor; }
306 
308  void setAntiFlickerQuantizationFactor(float antiFlickerQuantizationFactor);
309 
311  float antiFlickerQuantizationFactor() const { return 64.0f; } // { return myAntiFlickerQuantizationFactor; }
312 
313  protected:
314  std::string myName;
315 
317 
319 
320  bool myDirty;
321 
323 
325 
327 
329 
331 
332  unsigned int myNumSplits;
333 
334  std::vector<float> myPolygonOffsetFactor;
335 
336  std::vector<float> myPolygonOffsetUnits;
337 
339 
341 
343 
345 
347 
349 
351 
353 
355 
357 
359 
360 
362 
364 
366 
368 
370 
372 
374 
376 
378 
379  unsigned int myPcfFilterWidth;
380 
382 
383  bool myUseSDSM;
384 
385  unsigned int mySDSMReadBackLatency;
386 
388 
389 
390 
391  //double mySplitNearDistanceMinimumBias;
392 
393  //double mySplitNearDistanceMaximumBias;
394 
395  //double mySplitFarDistanceBias;
396 
397  //double myEVSMPositiveExponent;
398 
399  //double myEVSMNegativeExponent;
400 
401  //double myVSMMininumVariance;
402 
403  //double myESMDarkeningFactor;
404 
405 
407  //float myAntiFlickerQuantizationFactor;
410 
411  };
412 
413 }
414 
makArchives::DtShadowSettingsRecord::PoissonDiskSamplingScheme myPoissonDiskSamplingScheme
Definition: DtShadowSettingsObject.h:373
SplitDistanceComputeScheme
Definition: DtShadowSettingsRecord.h:39
std::vector< float > myPolygonOffsetUnits
Definition: DtShadowSettingsObject.h:336
float myFarCascadeUpdateFrequency
Definition: DtShadowSettingsObject.h:348
unsigned int myNumAdditionalPassesPerCascade
Definition: DtShadowSettingsObject.h:377
unsigned int mySDSMReadBackLatency
Definition: DtShadowSettingsObject.h:385
DataStorageScheme
Definition: DtShadowSettingsRecord.h:52
Definition: DtShadowSettingsObject.h:24
makArchives::DtShadowSettingsRecord::ShadowStabilizationScheme myShadowStabilizationScheme
Definition: DtShadowSettingsObject.h:358
DtDe & myDe
Definition: DtShadowSettingsObject.h:318
makArchives::DtShadowSettingsRecord::SplitDistanceComputeScheme mySplitDistanceComputeScheme
Definition: DtShadowSettingsObject.h:361
unsigned int mySpotLightShadowMapSize
Definition: DtShadowSettingsObject.h:408
double myMixedSplitInterp
Definition: DtShadowSettingsObject.h:363
double sdsmRenderInterval() const
Gets SDSM render interval.
Definition: DtShadowSettingsObject.h:254
bool myTerrainCastsShadows
Definition: DtShadowSettingsObject.h:326
unsigned int numPersistentPassesPerCascade() const
Gets persistent number of passes per cascade.
Definition: DtShadowSettingsObject.h:212
void setFarCascadeUpdateFrequency(float value)
Sets far cascade update frequency.
Definition: DtShadowSettingsObject.h:98
bool blendCascadesBoundaries() const
Gets blend between cascade boundaries.
Definition: DtShadowSettingsObject.h:230
FilteringScheme
Definition: DtShadowSettingsRecord.h:68
bool myVisualizeShadows
Definition: DtShadowSettingsObject.h:406
voidpf void uLong size
Definition: ioapi.h:39
unsigned int pcfFilterWidth() const
Gets PCF filter width.
Definition: DtShadowSettingsObject.h:224
float farCascadeUpdateFrequency() const
Gets far cascade update frequency.
Definition: DtShadowSettingsObject.h:101
double mySDSMRenderInterval
Definition: DtShadowSettingsObject.h:354
bool usePolygonOffset() const
Gets use polygon offset.
Definition: DtShadowSettingsObject.h:113
bool terrainCastsShadows() const
Gets terrain casts shadow flag.
Definition: DtShadowSettingsObject.h:64
float antiFlickerQuantizationFactor() const
Gets shadow anti-flicker quantization value for approximate stabilization scheme. ...
Definition: DtShadowSettingsObject.h:311
bool myUseCachedFarCascade
Definition: DtShadowSettingsObject.h:346
bool propsCastsShadows() const
Gets props casts shadow flag.
Definition: DtShadowSettingsObject.h:58
bool myUseSDSM
Definition: DtShadowSettingsObject.h:383
unsigned int myNumSplits
Definition: DtShadowSettingsObject.h:332
std::vector< float > myPolygonOffsetFactor
Definition: DtShadowSettingsObject.h:334
makArchives::DtShadowSettingsRecord::DataStorageScheme myDataStorageScheme
Definition: DtShadowSettingsObject.h:367
double vsmMininumVariance() const
Gets variance shadow maps(VSM) minimum variance.
Definition: DtShadowSettingsObject.h:299
makArchives::DtShadowSettingsRecord::PreFilteringScheme preFilteringScheme() const
Gets pre-filtering scheme.
Definition: DtShadowSettingsObject.h:188
unsigned int spotLightShadowMapSize() const
Gets spot light texture atlas size.
Definition: DtShadowSettingsObject.h:128
void setAdjustFarAndFlagsBasedOnHAT(bool enabled)
Sets to make the near cascades automatically change size and flags in the air.
Definition: DtShadowSettingsObject.h:257
makArchives::DtShadowSettingsRecord::FilteringScheme filteringScheme() const
Gets filtering scheme.
Definition: DtShadowSettingsObject.h:194
int quality() const
Returns setting name.
Definition: DtShadowSettingsObject.h:40
SplitSelectionScheme
Definition: DtShadowSettingsRecord.h:46
unsigned int myPcfFilterWidth
Definition: DtShadowSettingsObject.h:379
makArchives::DtShadowSettingsRecord::DataStorageScheme dataStorageScheme() const
Gets data storage scheme.
Definition: DtShadowSettingsObject.h:182
const std::string & name()
Returns setting name.
Definition: DtShadowSettingsObject.h:37
bool myCloudsCastsShadows
Definition: DtShadowSettingsObject.h:330
int myQuality
Definition: DtShadowSettingsObject.h:316
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
makArchives::DtShadowSettingsRecord::ShadowStabilizationScheme shadowStabilizationScheme() const
Gets shadow stabilization scheme.
Definition: DtShadowSettingsObject.h:158
bool myMoonCastsShadows
Definition: DtShadowSettingsObject.h:328
makArchives::DtShadowSettingsRecord::PreFilteringScheme myPreFilteringScheme
Definition: DtShadowSettingsObject.h:369
bool myDirty
Definition: DtShadowSettingsObject.h:320
ShadowStabilizationScheme
Definition: DtShadowSettingsRecord.h:32
makArchives::DtShadowSettingsRecord::PoissonDiskSamplingScheme poissonDiskSamplingScheme() const
Gets poisson disk sampling scheme.
Definition: DtShadowSettingsObject.h:200
float shadowAmbientFactor() const
Gets shadow factor for modulating the scene.
Definition: DtShadowSettingsObject.h:152
unsigned int globalLightShadowMapSize() const
Gets global light texture size for cascaded shadow mapping.
Definition: DtShadowSettingsObject.h:134
bool myUseFrontFaceCulling
Definition: DtShadowSettingsObject.h:344
bool myUseCameraDepthBufferForSDSM
Definition: DtShadowSettingsObject.h:387
unsigned int myGlobalLightShadowMapSize
Definition: DtShadowSettingsObject.h:338
unsigned int numberOfSplits() const
Gets shadow visualization mode.
Definition: DtShadowSettingsObject.h:88
bool moonCastsShadows() const
Gets moon casts shadow flag.
Definition: DtShadowSettingsObject.h:70
unsigned int myNumPersistentPassesPerCascade
Definition: DtShadowSettingsObject.h:375
bool myPropsCastsShadows
Definition: DtShadowSettingsObject.h:324
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
double mixedSplitInterpolationValue() const
Gets mixed logarithmic uniform split interpolation value.
Definition: DtShadowSettingsObject.h:170
PoissonDiskSamplingScheme
Definition: DtShadowSettingsRecord.h:78
makArchives::DtShadowSettingsRecord::FilteringScheme myFilteringScheme
Definition: DtShadowSettingsObject.h:371
makArchives::DtShadowSettingsRecord::SplitSelectionScheme splitSelectionScheme() const
Gets split selection scheme.
Definition: DtShadowSettingsObject.h:176
unsigned int numAdditionalPassesPerCascade() const
Gets additional number of passes per cascade.
Definition: DtShadowSettingsObject.h:218
double splitNearDistanceMaximumBias() const
Gets split near distance maximum bias.
Definition: DtShadowSettingsObject.h:275
bool myUseViewportMulticast
Definition: DtShadowSettingsObject.h:350
bool dirty() const
Checks if any setting just changed.
Definition: DtShadowSettingsObject.h:46
bool myBlendCascadesBoundaries
Definition: DtShadowSettingsObject.h:381
bool adjustFarAndFlagsBasedOnHAT() const
Gets if near cascades automatically change size and flags in the air.
Definition: DtShadowSettingsObject.h:260
double splitFarDistanceBias() const
Gets split far distance bias.
Definition: DtShadowSettingsObject.h:281
double evsmPositiveExponent() const
Gets exponential variance shadow maps(EVSM) positive exponent.
Definition: DtShadowSettingsObject.h:287
Contains makArchives::DtShadowSettingsRecord class.
double esmDarkeningFactor() const
Gets exponential shadow maps(ESM) darkening factor.
Definition: DtShadowSettingsObject.h:305
bool entitiesCastsShadows() const
Gets entities casts shadow flag.
Definition: DtShadowSettingsObject.h:52
float myShadowAmbientFactor
Definition: DtShadowSettingsObject.h:356
std::string myName
Definition: DtShadowSettingsObject.h:314
bool useSDSM() const
Gets Sample Distribution Shadow Maps(SDSM) enabled or disabled state.
Definition: DtShadowSettingsObject.h:236
Contains makVrv::DtUniqueID type.
makArchives::DtShadowSettingsRecord::SplitSelectionScheme mySplitSelectionScheme
Definition: DtShadowSettingsObject.h:365
double splitNearDistanceMinimumBias() const
Gets split near distance minimum bias.
Definition: DtShadowSettingsObject.h:269
bool useCachedFarCascade() const
Gets use cached far cascade.
Definition: DtShadowSettingsObject.h:95
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
makArchives::DtShadowSettingsRecord::SplitDistanceComputeScheme splitDistanceComputeScheme() const
Gets split distance compute scheme.
Definition: DtShadowSettingsObject.h:164
bool useViewportMulticast() const
Gets use viewport multicast.
Definition: DtShadowSettingsObject.h:206
double maximumViewDistance() const
Get maximum far distance.
Definition: DtShadowSettingsObject.h:146
bool useCameraDepthBufferForSDSM() const
Gets the setting for the usage of the most recent camera depth buffer for Sample Distribution Shadow ...
Definition: DtShadowSettingsObject.h:248
bool useFrontFaceCulling() const
Gets use front face culling.
Definition: DtShadowSettingsObject.h:107
bool myAdjustFarAndFlagsBasedOnHAT
Definition: DtShadowSettingsObject.h:352
bool useMaximumViewDistance() const
Gets use maximum view distance.
Definition: DtShadowSettingsObject.h:140
bool cloudsCastsShadows() const
Gets cloud casts shadow flag.
Definition: DtShadowSettingsObject.h:76
bool visualizeShadows() const
Gets shadow visualization mode.
Definition: DtShadowSettingsObject.h:82
bool myUseMaximumViewDistance
Definition: DtShadowSettingsObject.h:342
double myMaximumViewDistance
Definition: DtShadowSettingsObject.h:340
bool myEntitiesCastsShadows
Definition: DtShadowSettingsObject.h:322
double evsmNegativeExponent() const
Gets exponential variance shadow maps(EVSM) negative exponent.
Definition: DtShadowSettingsObject.h:293
PreFilteringScheme
Definition: DtShadowSettingsRecord.h:59
unsigned int sdsmReadBackLatency() const
Gets Sample Distribution Shadow Maps(SDSM) read back latency.
Definition: DtShadowSettingsObject.h:242
bool myUsePolygonOffset
Definition: DtShadowSettingsObject.h:409
Contains DLL export macros.

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)