VR-Forces Developer's Guide
 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) 2023 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 setVisualizeShadows(bool visualizeShadows);
74 
76  bool visualizeShadows() const { return myVisualizeShadows; }
77 
79  void setNumberOfSplits(unsigned int numSplits);
80 
82  unsigned int numberOfSplits() const { return myNumSplits; }
83 
86  void setUseCachedFarCascade(bool useCachedFarCascade);
87 
89  bool useCachedFarCascade() const { return myUseCachedFarCascade; }
90 
92  void setFarCascadeUpdateFrequency(float value) { myFarCascadeUpdateFrequency = value; }
93 
95  float farCascadeUpdateFrequency() const {return myFarCascadeUpdateFrequency; }
96 
98  void setUseFrontFaceCulling(bool useFrontFaceCulling);
99 
101  bool useFrontFaceCulling() const { return myUseFrontFaceCulling; }
102 
104  void setUsePolygonOffset(bool usePolygonOffset);
105 
107  bool usePolygonOffset() const { return myUsePolygonOffset; }
108 
110  void setPolygonOffset(unsigned int splitIndex, float factor, float units);
111 
113  float polygonOffsetFactor(unsigned int splitIndex) const;
114 
116  float polygonOffsetUnits(unsigned int splitIndex) const;
117 
119  void setSpotLightShadowMapSize(unsigned int size);
120 
122  unsigned int spotLightShadowMapSize() const { return mySpotLightShadowMapSize; }
123 
125  void setGlobalLightShadowMapSize(unsigned int size);
126 
128  unsigned int globalLightShadowMapSize() const { return myGlobalLightShadowMapSize; }
129 
131  void setUseMaximumViewDistance(bool useMaximumViewDistance);
132 
134  bool useMaximumViewDistance() const { return myUseMaximumViewDistance; }
135 
137  void setMaximumViewDistance(double viewDistance);
138 
140  double maximumViewDistance() const { return myMaximumViewDistance; }
141 
143  void setShadowAmbientFactor(float shadowAmbientFactor);
144 
146  float shadowAmbientFactor() const { return myShadowAmbientFactor; }
147 
149  void setShadowStabilizationScheme(makArchives::DtShadowSettingsRecord::ShadowStabilizationScheme shadowStabilizationScheme);
150 
153 
155  void setSplitDistanceComputeScheme(makArchives::DtShadowSettingsRecord::SplitDistanceComputeScheme splitDistanceComputeScheme);
156 
159 
161  void setMixedSplitInterpolationValue(double interp);
162 
164  double mixedSplitInterpolationValue() const { return myMixedSplitInterp; }
165 
167  void setSplitSelectionScheme(makArchives::DtShadowSettingsRecord::SplitSelectionScheme splitSelectionScheme);
168 
171 
173  void setPreFilteringScheme(makArchives::DtShadowSettingsRecord::PreFilteringScheme preFilteringScheme);
174 
177 
179  void setFilteringScheme(makArchives::DtShadowSettingsRecord::FilteringScheme filteringScheme);
180 
183 
185  void setPoissonDiskSamplingScheme(makArchives::DtShadowSettingsRecord::PoissonDiskSamplingScheme poissonDiskSamplingScheme);
186 
189 
191  void setUseViewportMulticast(bool useViewportMulticast);
192 
194  bool useViewportMulticast() const { return myUseViewportMulticast; }
195 
197  void setNumPersistentPassesPerCascade(unsigned int numPasses);
198 
200  unsigned int numPersistentPassesPerCascade() const { return myNumPersistentPassesPerCascade; }
201 
203  void setNumAdditionalPassesPerCascade(unsigned int numPasses);
204 
206  unsigned int numAdditionalPassesPerCascade() const { return myNumAdditionalPassesPerCascade; }
207 
209  void setPcfFilterWidth(unsigned int pcfFilterWidth);
210 
212  unsigned int pcfFilterWidth() const { return myPcfFilterWidth; }
213 
215  void setBlendCascadesBoundaries(bool blendCascadesBoundaries);
216 
218  bool blendCascadesBoundaries() const { return myBlendCascadesBoundaries; }
219 
221  void setAdjustFarAndFlagsBasedOnHAT(bool enabled) { myAdjustFarAndFlagsBasedOnHAT = enabled; }
222 
224  bool adjustFarAndFlagsBasedOnHAT() const { return myAdjustFarAndFlagsBasedOnHAT; }
225 
227  void setApplyShadowToAmbientLighting(bool applyShadowToAmbient);
228 
230  bool applyShadowToAmbientLighting();
231 
232 
234 
236  void setSplitNearDistanceMinimumBias(double bias);
237 
239  double splitNearDistanceMinimumBias() const { return 0.0f; }// { return mySplitNearDistanceMinimumBias; }
240 
242  void setSplitNearDistanceMaximumBias(double bias);
243 
245  double splitNearDistanceMaximumBias() const { return 0.0f; } //{ return mySplitNearDistanceMaximumBias; }
246 
248  void setSplitFarDistanceBias(double bias);
249 
251  double splitFarDistanceBias() const { return 0.0f; } //{ return mySplitFarDistanceBias; }
252 
254  void setEVSMPositiveExponent(double evsmPositiveExponent);
255 
257  double evsmPositiveExponent() const { return 0.0; } //{ return myEVSMPositiveExponent; }
258 
260  void setEVSMNegativeExponent(double evsmNegativeExponent);
261 
263  double evsmNegativeExponent() const { return 0.0; }// {return myEVSMNegativeExponent; }
264 
266  void setVSMMininumVariance(double vsmMininumVariance);
267 
269  double vsmMininumVariance() const { return 0.0; }//return myVSMMininumVariance;
270 
272  void setESMDarkeningFactor(double esmDarkeningFactor);
273 
275  double esmDarkeningFactor() const { return 0.0; }// myESMDarkeningFactor; }
276 
278  void setAntiFlickerQuantizationFactor(float antiFlickerQuantizationFactor);
279 
281  float antiFlickerQuantizationFactor() const { return 64.0f; } // { return myAntiFlickerQuantizationFactor; }
282 
283  protected:
284  std::string myName;
285 
287 
289 
290  bool myDirty;
291 
293 
295 
297 
299 
300  unsigned int myNumSplits;
301 
302  std::vector<float> myPolygonOffsetFactor;
303 
304  std::vector<float> myPolygonOffsetUnits;
305 
307 
309 
311 
313 
315 
317 
319 
321 
323 
325 
326 
328 
330 
332 
334 
336 
338 
340 
342 
343  unsigned int myPcfFilterWidth;
344 
346 
347 
349 
350 
351 
352  //double mySplitNearDistanceMinimumBias;
353 
354  //double mySplitNearDistanceMaximumBias;
355 
356  //double mySplitFarDistanceBias;
357 
358  //double myEVSMPositiveExponent;
359 
360  //double myEVSMNegativeExponent;
361 
362  //double myVSMMininumVariance;
363 
364  //double myESMDarkeningFactor;
365 
366 
368  //float myAntiFlickerQuantizationFactor;
371 
372  };
373 
374 }
375 
makArchives::DtShadowSettingsRecord::PoissonDiskSamplingScheme myPoissonDiskSamplingScheme
Definition: DtShadowSettingsObject.h:337
SplitDistanceComputeScheme
Definition: DtShadowSettingsRecord.h:39
std::vector< float > myPolygonOffsetUnits
Definition: DtShadowSettingsObject.h:304
float myFarCascadeUpdateFrequency
Definition: DtShadowSettingsObject.h:316
unsigned int myNumAdditionalPassesPerCascade
Definition: DtShadowSettingsObject.h:341
Definition: DtShadowSettingsObject.h:24
makArchives::DtShadowSettingsRecord::ShadowStabilizationScheme myShadowStabilizationScheme
Definition: DtShadowSettingsObject.h:324
DtDe & myDe
Definition: DtShadowSettingsObject.h:288
makArchives::DtShadowSettingsRecord::SplitDistanceComputeScheme mySplitDistanceComputeScheme
Definition: DtShadowSettingsObject.h:327
unsigned int mySpotLightShadowMapSize
Definition: DtShadowSettingsObject.h:369
double myMixedSplitInterp
Definition: DtShadowSettingsObject.h:329
bool myTerrainCastsShadows
Definition: DtShadowSettingsObject.h:296
unsigned int numPersistentPassesPerCascade() const
Gets persistent number of passes per cascade.
Definition: DtShadowSettingsObject.h:200
void setFarCascadeUpdateFrequency(float value)
Sets far cascade update frequency.
Definition: DtShadowSettingsObject.h:92
bool blendCascadesBoundaries() const
Gets blend between cascade boundaries.
Definition: DtShadowSettingsObject.h:218
FilteringScheme
Definition: DtShadowSettingsRecord.h:68
bool myVisualizeShadows
Definition: DtShadowSettingsObject.h:367
voidpf void uLong size
Definition: ioapi.h:39
unsigned int pcfFilterWidth() const
Gets PCF filter width.
Definition: DtShadowSettingsObject.h:212
float farCascadeUpdateFrequency() const
Gets far cascade update frequency.
Definition: DtShadowSettingsObject.h:95
bool usePolygonOffset() const
Gets use polygon offset.
Definition: DtShadowSettingsObject.h:107
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:281
bool myUseCachedFarCascade
Definition: DtShadowSettingsObject.h:314
bool propsCastsShadows() const
Gets props casts shadow flag.
Definition: DtShadowSettingsObject.h:58
unsigned int myNumSplits
Definition: DtShadowSettingsObject.h:300
std::vector< float > myPolygonOffsetFactor
Definition: DtShadowSettingsObject.h:302
double vsmMininumVariance() const
Gets variance shadow maps(VSM) minimum variance.
Definition: DtShadowSettingsObject.h:269
makArchives::DtShadowSettingsRecord::PreFilteringScheme preFilteringScheme() const
Gets pre-filtering scheme.
Definition: DtShadowSettingsObject.h:176
unsigned int spotLightShadowMapSize() const
Gets spot light texture atlas size.
Definition: DtShadowSettingsObject.h:122
void setAdjustFarAndFlagsBasedOnHAT(bool enabled)
Sets to make the near cascades automatically change size and flags in the air.
Definition: DtShadowSettingsObject.h:221
makArchives::DtShadowSettingsRecord::FilteringScheme filteringScheme() const
Gets filtering scheme.
Definition: DtShadowSettingsObject.h:182
int quality() const
Returns setting name.
Definition: DtShadowSettingsObject.h:40
SplitSelectionScheme
Definition: DtShadowSettingsRecord.h:46
unsigned int myPcfFilterWidth
Definition: DtShadowSettingsObject.h:343
const std::string & name()
Returns setting name.
Definition: DtShadowSettingsObject.h:37
int myQuality
Definition: DtShadowSettingsObject.h:286
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
makArchives::DtShadowSettingsRecord::ShadowStabilizationScheme shadowStabilizationScheme() const
Gets shadow stabilization scheme.
Definition: DtShadowSettingsObject.h:152
bool myMoonCastsShadows
Definition: DtShadowSettingsObject.h:298
makArchives::DtShadowSettingsRecord::PreFilteringScheme myPreFilteringScheme
Definition: DtShadowSettingsObject.h:333
bool myDirty
Definition: DtShadowSettingsObject.h:290
ShadowStabilizationScheme
Definition: DtShadowSettingsRecord.h:32
makArchives::DtShadowSettingsRecord::PoissonDiskSamplingScheme poissonDiskSamplingScheme() const
Gets poisson disk sampling scheme.
Definition: DtShadowSettingsObject.h:188
float shadowAmbientFactor() const
Gets shadow factor for modulating the scene.
Definition: DtShadowSettingsObject.h:146
unsigned int globalLightShadowMapSize() const
Gets global light texture size for cascaded shadow mapping.
Definition: DtShadowSettingsObject.h:128
bool myUseFrontFaceCulling
Definition: DtShadowSettingsObject.h:312
bool myApplyShadowToAmbientLighting
Definition: DtShadowSettingsObject.h:348
unsigned int myGlobalLightShadowMapSize
Definition: DtShadowSettingsObject.h:306
unsigned int numberOfSplits() const
Gets shadow visualization mode.
Definition: DtShadowSettingsObject.h:82
bool moonCastsShadows() const
Gets moon casts shadow flag.
Definition: DtShadowSettingsObject.h:70
unsigned int myNumPersistentPassesPerCascade
Definition: DtShadowSettingsObject.h:339
bool myPropsCastsShadows
Definition: DtShadowSettingsObject.h:294
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
double mixedSplitInterpolationValue() const
Gets mixed logarithmic uniform split interpolation value.
Definition: DtShadowSettingsObject.h:164
PoissonDiskSamplingScheme
Definition: DtShadowSettingsRecord.h:78
makArchives::DtShadowSettingsRecord::FilteringScheme myFilteringScheme
Definition: DtShadowSettingsObject.h:335
makArchives::DtShadowSettingsRecord::SplitSelectionScheme splitSelectionScheme() const
Gets split selection scheme.
Definition: DtShadowSettingsObject.h:170
unsigned int numAdditionalPassesPerCascade() const
Gets additional number of passes per cascade.
Definition: DtShadowSettingsObject.h:206
double splitNearDistanceMaximumBias() const
Gets split near distance maximum bias.
Definition: DtShadowSettingsObject.h:245
bool myUseViewportMulticast
Definition: DtShadowSettingsObject.h:318
bool dirty() const
Checks if any setting just changed.
Definition: DtShadowSettingsObject.h:46
bool myBlendCascadesBoundaries
Definition: DtShadowSettingsObject.h:345
bool adjustFarAndFlagsBasedOnHAT() const
Gets if near cascades automatically change size and flags in the air.
Definition: DtShadowSettingsObject.h:224
double splitFarDistanceBias() const
Gets split far distance bias.
Definition: DtShadowSettingsObject.h:251
double evsmPositiveExponent() const
Gets exponential variance shadow maps(EVSM) positive exponent.
Definition: DtShadowSettingsObject.h:257
Contains makArchives::DtShadowSettingsRecord class.
double esmDarkeningFactor() const
Gets exponential shadow maps(ESM) darkening factor.
Definition: DtShadowSettingsObject.h:275
bool entitiesCastsShadows() const
Gets entities casts shadow flag.
Definition: DtShadowSettingsObject.h:52
float myShadowAmbientFactor
Definition: DtShadowSettingsObject.h:322
std::string myName
Definition: DtShadowSettingsObject.h:284
Contains makVrv::DtUniqueID type.
makArchives::DtShadowSettingsRecord::SplitSelectionScheme mySplitSelectionScheme
Definition: DtShadowSettingsObject.h:331
double splitNearDistanceMinimumBias() const
Gets split near distance minimum bias.
Definition: DtShadowSettingsObject.h:239
bool useCachedFarCascade() const
Gets use cached far cascade.
Definition: DtShadowSettingsObject.h:89
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
makArchives::DtShadowSettingsRecord::SplitDistanceComputeScheme splitDistanceComputeScheme() const
Gets split distance compute scheme.
Definition: DtShadowSettingsObject.h:158
bool useViewportMulticast() const
Gets use viewport multicast.
Definition: DtShadowSettingsObject.h:194
double maximumViewDistance() const
Get maximum far distance.
Definition: DtShadowSettingsObject.h:140
bool useFrontFaceCulling() const
Gets use front face culling.
Definition: DtShadowSettingsObject.h:101
bool myAdjustFarAndFlagsBasedOnHAT
Definition: DtShadowSettingsObject.h:320
bool useMaximumViewDistance() const
Gets use maximum view distance.
Definition: DtShadowSettingsObject.h:134
bool visualizeShadows() const
Gets shadow visualization mode.
Definition: DtShadowSettingsObject.h:76
bool myUseMaximumViewDistance
Definition: DtShadowSettingsObject.h:310
double myMaximumViewDistance
Definition: DtShadowSettingsObject.h:308
bool myEntitiesCastsShadows
Definition: DtShadowSettingsObject.h:292
double evsmNegativeExponent() const
Gets exponential variance shadow maps(EVSM) negative exponent.
Definition: DtShadowSettingsObject.h:263
PreFilteringScheme
Definition: DtShadowSettingsRecord.h:59
bool myUsePolygonOffset
Definition: DtShadowSettingsObject.h:370
Contains DLL export macros.

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)