VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtShadowSettingsRecord.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
15 
16 #include <string>
17 #include <map>
18 #include <vector>
19 
20 
21 
22 namespace makArchives
23 {
24 
30  {
31  public:
33  {
37  };
38 
40  {
43  MIXED_LOGARITHMIC_UNIFORM_SPLIT
44  };
45 
47  {
49  LIGHT_SPACE
50  };
51 
53  {
56  TEXTURE_2D_ARRAY_STORAGE
57  };
58 
60  {
64  VARIANCE_SHADOW_MAPS
65  };
66 
67 
69  {
75  PCF_POISSON_DISC_32_TAPS
76  };
77 
79  {
82  ROTATED_SAMPLING
83  };
84 
87 
90 
93 
95  DtShadowSettingsRecord& operator=(const DtShadowSettingsRecord& orig);
96 
98  void setName(const std::string& name);
99 
101  const std::string& name() const { return myName; }
102 
104  void setDirty(bool dirty);
105 
107  bool dirty() const { return myDirty; }
108 
110  void setEntitiesCastsShadows(bool castShadows);
111 
113  bool entitiesCastsShadows() const { return myEntitiesCastsShadows; }
114 
116  void setPropsCastsShadows(bool castShadows);
117 
119  bool propsCastsShadows() const { return myPropsCastsShadows; }
120 
122  void setTerrainCastsShadows(bool castShadows);
123 
125  bool terrainCastsShadows() const { return myTerrainCastsShadows; }
126 
128  void setCloudsCastsShadows(bool castShadows);
129 
131  bool cloudsCastsShadows() const { return myCloudsCastsShadows; }
132 
134  void setVisualizeShadows(bool visualizeShadows);
135 
137  bool visualizeShadows() const { return myVisualizeShadows; }
138 
140  void setNumberOfSplits(unsigned int numSplits);
141 
143  unsigned int numberOfSplits() const { return myNumSplits; }
144 
147  void setUseCachedFarCascade(bool useCachedFarCascade);
148 
150  bool useCachedFarCascade() const { return myUseCachedFarCascade; }
151 
153  void setFarCascadeUpdateFrequency(float value) { myFarCascadeUpdateFrequency = value; }
154 
156  float farCascadeUpdateFrequency() const {return myFarCascadeUpdateFrequency; }
157 
159  void setUseFrontFaceCulling(bool useFrontFaceCulling);
160 
162  bool useFrontFaceCulling() const { return myUseFrontFaceCulling; }
163 
165  void setUsePolygonOffset(bool usePolygonOffset);
166 
168  bool usePolygonOffset() const { return myUsePolygonOffset; }
169 
171  void setPolygonOffset(unsigned int splitIndex, float factor, float units);
172 
174  float polygonOffsetFactor(unsigned int splitIndex) const;
175 
177  float polygonOffsetUnits(unsigned int splitIndex) const;
178 
180  void setSpotLightShadowMapSize(unsigned int size);
181 
183  unsigned int spotLightShadowMapSize() const { return mySpotLightShadowMapSize; }
184 
186  void setGlobalLightShadowMapSize(unsigned int size);
187 
189  unsigned int globalLightShadowMapSize() const { return myGlobalLightShadowMapSize; }
190 
192  void setUseMaximumViewDistance(bool useMaximumViewDistance);
193 
195  bool useMaximumViewDistance() const { return myUseMaximumViewDistance; }
196 
198  void setMaximumViewDistance(double viewDistance);
199 
201  double maximumViewDistance() const { return myMaximumViewDistance; }
202 
203 
205  void setShadowAmbientFactor(float shadowAmbientFactor);
206 
208  float shadowAmbientFactor() const { return myShadowAmbientFactor; }
209 
211  void setShadowStabilizationScheme(ShadowStabilizationScheme shadowStabilizationScheme);
212 
214  ShadowStabilizationScheme shadowStabilizationScheme() const { return myShadowStabilizationScheme; }
215 
217  void setSplitDistanceComputeScheme(SplitDistanceComputeScheme splitDistanceComputeScheme);
218 
220  SplitDistanceComputeScheme splitDistanceComputeScheme() const { return mySplitDistanceComputeScheme; }
221 
223  void setMixedSplitInterpolationValue(double interp);
224 
226  double mixedSplitInterpolationValue() const { return myMixedSplitInterp; }
227 
229  void setSplitSelectionScheme(SplitSelectionScheme splitSelectionScheme);
230 
232  SplitSelectionScheme splitSelectionScheme() const { return mySplitSelectionScheme; }
233 
235  void setDataStorageScheme(DataStorageScheme dataStorageScheme);
236 
238  DataStorageScheme dataStorageScheme() const { return myDataStorageScheme; }
239 
241  void setPreFilteringScheme(PreFilteringScheme preFilteringScheme);
242 
244  PreFilteringScheme preFilteringScheme() const { return myPreFilteringScheme; }
245 
247  void setFilteringScheme(FilteringScheme filteringScheme);
248 
250  FilteringScheme filteringScheme() const { return myFilteringScheme; }
251 
253  void setPoissonDiskSamplingScheme(PoissonDiskSamplingScheme poissonDiskSamplingScheme);
254 
256  PoissonDiskSamplingScheme poissonDiskSamplingScheme() const { return myPoissonDiskSamplingScheme; }
257 
259  void setUseViewportMulticast(bool useViewportMulticast);
260 
262  bool useViewportMulticast() const { return myUseViewportMulticast; }
263 
265  void setNumPersistentPassesPerCascade(unsigned int numPasses);
266 
268  unsigned int numPersistentPassesPerCascade() const { return myNumPersistentPassesPerCascade; }
269 
271  void setNumAdditionalPassesPerCascade(unsigned int numPasses);
272 
274  unsigned int numAdditionalPassesPerCascade() const { return myNumAdditionalPassesPerCascade; }
275 
277  void setPcfFilterWidth(unsigned int pcfFilterWidth);
278 
280  unsigned int pcfFilterWidth() const { return myPcfFilterWidth; }
281 
283  void setBlendCascadesBoundaries(bool blendCascadesBoundaries);
284 
286  bool blendCascadesBoundaries() const { return myBlendCascadesBoundaries; }
287 
289  void setUseSDSM(bool useSDSM);
290 
292  bool useSDSM() const { return myUseSDSM; }
293 
295  void setSDSMReadBackLatency(unsigned int sdsmReadBackLatency);
296 
298  unsigned int sdsmReadBackLatency() const { return mySDSMReadBackLatency; }
299 
301  void setUseCameraDepthBufferForSDSM(bool useCameraDepthBufferForSDSM);
302 
304  bool useCameraDepthBufferForSDSM() const { return myUseCameraDepthBufferForSDSM; }
305 
307  void setAdjustFarAndFlagsBasedOnHAT(bool enabled) { myAdjustFarAndFlagsBasedOnHAT = enabled; }
308 
310  bool adjustFarAndFlagsBasedOnHAT() const { return myAdjustFarAndFlagsBasedOnHAT; }
311 
312 
314 
316  void setSplitNearDistanceMinimumBias(double bias);
317 
319  double splitNearDistanceMinimumBias() const;
320 
322  void setSplitNearDistanceMaximumBias(double bias);
323 
325  double splitNearDistanceMaximumBias() const;
326 
328  void setSplitFarDistanceBias(double bias);
329 
331  double splitFarDistanceBias() const;
333  void setEVSMPositiveExponent(double evsmPositiveExponent);
334 
336  double evsmPositiveExponent() const { return myEVSMPositiveExponent; }
337 
339  void setEVSMNegativeExponent(double evsmNegativeExponent);
340 
342  double evsmNegativeExponent() const { return myEVSMNegativeExponent; }
343 
345  void setVSMMininumVariance(double vsmMininumVariance);
346 
348  double vsmMininumVariance() const;
349 
351  void setESMDarkeningFactor(double esmDarkeningFactor);
352 
354  double esmDarkeningFactor() const;
355 
357  void setAntiFlickerQuantizationFactor(float antiFlickerQuantizationFactor);
358 
360  float antiFlickerQuantizationFactor() const;
361 
362 
363  protected:
364  friend class boost::serialization::access;
365 
366  template <typename Archive>
367  void serialize(Archive& ar, unsigned int version)
368  {
369  ar & BOOST_SERIALIZATION_NVP(myName);
370  ar & BOOST_SERIALIZATION_NVP(myNumSplits);
371  ar & BOOST_SERIALIZATION_NVP(myEntitiesCastsShadows);
372  ar & BOOST_SERIALIZATION_NVP(myPropsCastsShadows);
373  ar & BOOST_SERIALIZATION_NVP(myTerrainCastsShadows);
374  ar & BOOST_SERIALIZATION_NVP(myVisualizeShadows);
375  ar & BOOST_SERIALIZATION_NVP(myPolygonOffsetFactor);
376  ar & BOOST_SERIALIZATION_NVP(myPolygonOffsetUnits);
377  ar & BOOST_SERIALIZATION_NVP(myUsePolygonOffset);
378  ar & BOOST_SERIALIZATION_NVP(mySpotLightShadowMapSize);
379  ar & BOOST_SERIALIZATION_NVP(myGlobalLightShadowMapSize);
380  ar & BOOST_SERIALIZATION_NVP(myMaximumViewDistance);
381  ar & BOOST_SERIALIZATION_NVP(myUseMaximumViewDistance);
382  ar & BOOST_SERIALIZATION_NVP(myUseFrontFaceCulling);
383  ar & BOOST_SERIALIZATION_NVP(mySplitNearDistanceMinimumBias);
384  ar & BOOST_SERIALIZATION_NVP(mySplitNearDistanceMaximumBias);
385  ar & BOOST_SERIALIZATION_NVP(mySplitFarDistanceBias);
386  ar & BOOST_SERIALIZATION_NVP(myShadowAmbientFactor);
387  ar & BOOST_SERIALIZATION_NVP(myShadowStabilizationScheme);
388  ar & BOOST_SERIALIZATION_NVP(myAntiFlickerQuantizationFactor);
389  ar & BOOST_SERIALIZATION_NVP(mySplitDistanceComputeScheme);
390  ar & BOOST_SERIALIZATION_NVP(myMixedSplitInterp);
391  ar & BOOST_SERIALIZATION_NVP(mySplitSelectionScheme);
392  ar & BOOST_SERIALIZATION_NVP(myDataStorageScheme);
393  ar & BOOST_SERIALIZATION_NVP(myPreFilteringScheme);
394  ar & BOOST_SERIALIZATION_NVP(myFilteringScheme);
395  ar & BOOST_SERIALIZATION_NVP(myPoissonDiskSamplingScheme);
396  ar & BOOST_SERIALIZATION_NVP(myNumAdditionalPassesPerCascade);
397  ar & BOOST_SERIALIZATION_NVP(myPcfFilterWidth);
398  ar & BOOST_SERIALIZATION_NVP(myBlendCascadesBoundaries);
399  ar & BOOST_SERIALIZATION_NVP(myUseSDSM);
400  ar & BOOST_SERIALIZATION_NVP(mySDSMReadBackLatency);
401  ar & BOOST_SERIALIZATION_NVP(myUseCameraDepthBufferForSDSM);
402  ar & BOOST_SERIALIZATION_NVP(myEVSMPositiveExponent);
403  ar & BOOST_SERIALIZATION_NVP(myEVSMNegativeExponent);
404  ar & BOOST_SERIALIZATION_NVP(myVSMMininumVariance);
405  ar & BOOST_SERIALIZATION_NVP(myESMDarkeningFactor);
406  ar & BOOST_SERIALIZATION_NVP(myDirty);
407  ar & BOOST_SERIALIZATION_NVP(myNumPersistentPassesPerCascade);
408 
409  if (version >= 2)
410  {
411  ar & BOOST_SERIALIZATION_NVP(myCloudsCastsShadows);
412  }
413 
414  if (version >= 3)
415  {
416  ar & BOOST_SERIALIZATION_NVP(myUseCachedFarCascade);
417  }
418 
419  if (version >= 4)
420  {
421  ar & BOOST_SERIALIZATION_NVP(myUseViewportMulticast);
422  }
423 
424  if (version >= 5)
425  {
426  ar & BOOST_SERIALIZATION_NVP(myAdjustFarAndFlagsBasedOnHAT);
427  ar & BOOST_SERIALIZATION_NVP(myFarCascadeUpdateFrequency);
428  }
429 
430  }
431 
432 
433  protected:
434 
435  std::string myName;
436  bool myDirty;
437 
439 
441 
443 
445 
446  unsigned int myNumSplits;
447 
448  std::vector<float> myPolygonOffsetFactor;
449 
450  std::vector<float> myPolygonOffsetUnits;
451 
453 
455 
457 
459 
461 
463 
465 
467 
482  unsigned int myPcfFilterWidth;
484  bool myUseSDSM;
485  unsigned int mySDSMReadBackLatency;
487 
488  // deprecated
490 
492 
494 
500 
501 
502  };
503 }
504 

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)