VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 namespace makArchives
21 {
27  {
28  public:
29 
32 
35 
38 
40  DtShadowSettingsRecord& operator=( const DtShadowSettingsRecord& orig );
41 
43  void setName(const std::string& name);
44 
46  const std::string& name() const;
47 
49  void setEntitiesCastsShadows(bool castShadows);
50 
52  bool entitiesCastsShadows() const;
53 
55  void setPropsCastsShadows(bool castShadows);
56 
58  bool propsCastsShadows() const;
59 
61  void setTerrainCastsShadows(bool castShadows);
62 
64  bool terrainCastsShadows() const;
65 
67  void setCloudsCastsShadows(bool castShadows);
68 
70  bool cloudsCastsShadows() const;
71 
73  void setVisualizeShadows(bool visualizeShadows);
74 
76  bool visualizeShadows() const;
77 
79  void setNumberOfSplits(unsigned int numSplits);
80 
82  unsigned int numberOfSplits() const;
83 
85  void setUseFrontFaceCulling(bool useFrontFaceCulling);
86 
88  bool useFrontFaceCulling() const;
89 
91  void setUsePolygonOffset(bool usePolygonOffset);
92 
94  bool usePolygonOffset() const;
95 
97  void setPolygonOffset(unsigned int splitIndex, float factor, float units);
98 
100  float polygonOffsetFactor(unsigned int splitIndex) const;
101 
103  float polygonOffsetUnits(unsigned int splitIndex) const;
104 
106  void setSpotLightShadowMapSize(unsigned int size);
107 
109  unsigned int spotLightShadowMapSize() const;
110 
112  void setGlobalLightShadowMapSize(unsigned int size);
113 
115  unsigned int globalLightShadowMapSize() const;
116 
118  void setUseMaximumViewDistance(bool useMaximumViewDistance);
119 
121  bool useMaximumViewDistance() const;
122 
124  void setMaximumViewDistance(double viewDistance);
125 
127  double maximumViewDistance() const;
128 
130  void setSplitNearDistanceMinimumBias(double bias);
131 
133  double splitNearDistanceMinimumBias() const;
134 
136  void setSplitNearDistanceMaximumBias(double bias);
137 
139  double splitNearDistanceMaximumBias() const;
140 
142  void setSplitFarDistanceBias(double bias);
143 
145  double splitFarDistanceBias() const;
146 
148  void setShadowAmbientFactor(float shadowAmbientFactor );
149 
151  float shadowAmbientFactor() const;
152 
154  {
157  NO_ANTI_FLICKERING
158  };
159 
161  void setShadowStabilizationScheme(ShadowStabilizationScheme shadowStabilizationScheme);
162 
164  ShadowStabilizationScheme shadowStabilizationScheme() const;
165 
167  void setAntiFlickerQuantizationFactor(float antiFlickerQuantizationFactor);
168 
170  float antiFlickerQuantizationFactor() const;
171 
173  {
176  MIXED_LOGARITHMIC_UNIFORM_SPLIT
177  };
178 
180  void setSplitDistanceComputeScheme(SplitDistanceComputeScheme splitDistanceComputeScheme);
181 
183  SplitDistanceComputeScheme splitDistanceComputeScheme() const;
184 
186  void setMixedSplitInterpolationValue(double interp);
187 
189  double mixedSplitInterpolationValue() const;
190 
192  {
194  LIGHT_SPACE
195  };
196 
198  void setSplitSelectionScheme(SplitSelectionScheme splitSelectionScheme);
199 
201  SplitSelectionScheme splitSelectionScheme() const;
202 
204  {
207  TEXTURE_2D_ARRAY_STORAGE
208  };
209 
211  void setDataStorageScheme(DataStorageScheme dataStorageScheme);
212 
214  DataStorageScheme dataStorageScheme() const;
215 
217  {
221  NO_PRE_FILTERING
222  };
223 
225  void setPreFilteringScheme(PreFilteringScheme preFilteringScheme);
226 
228  PreFilteringScheme preFilteringScheme() const;
229 
231  {
237  NO_FILTERING
238  };
239 
241  void setFilteringScheme(FilteringScheme filteringScheme);
242 
244  FilteringScheme filteringScheme() const;
245 
247  {
250  ROTATED_SAMPLING
251  };
252 
254  void setPoissonDiskSamplingScheme(PoissonDiskSamplingScheme poissonDiskSamplingScheme);
255 
257  PoissonDiskSamplingScheme poissonDiskSamplingScheme() const;
258 
260  void setNumPersistentPassesPerCascade(unsigned int numPasses);
261 
263  unsigned int numPersistentPassesPerCascade() const;
264 
266  void setNumAdditionalPassesPerCascade(unsigned int numPasses);
267 
269  unsigned int numAdditionalPassesPerCascade() const;
270 
272  void setPcfFilterWidth(unsigned int pcfFilterWidth);
273 
275  unsigned int pcfFilterWidth() const;
276 
278  void setBlendCascadesBoundaries(bool blendCascadesBoundaries);
279 
281  bool blendCascadesBoundaries() const;
282 
284  void setUseSDSM(bool useSDSM);
285 
287  bool useSDSM() const;
288 
290  void setSDSMReadBackLatency(unsigned int sdsmReadBackLatency);
291 
293  unsigned int sdsmReadBackLatency() const;
294 
296  void setUseCameraDepthBufferForSDSM(bool useCameraDepthBufferForSDSM);
297 
299  bool useCameraDepthBufferForSDSM() const;
300 
302  void setEVSMPositiveExponent(double evsmPositiveExponent);
303 
305  double evsmPositiveExponent() const;
306 
308  void setEVSMNegativeExponent(double evsmNegativeExponent);
309 
311  double evsmNegativeExponent() const;
312 
314  void setVSMMininumVariance(double vsmMininumVariance);
315 
317  double vsmMininumVariance() const;
318 
320  void setESMDarkeningFactor(double esmDarkeningFactor);
321 
323  double esmDarkeningFactor() const;
324 
326  void setDirty(bool dirty);
327 
329  bool dirty();
330 
331  protected:
332  friend class boost::serialization::access;
333 
334  template <typename Archive>
335  void serialize(Archive& ar, unsigned int version)
336  {
337  ar & BOOST_SERIALIZATION_NVP(myName);
338  ar & BOOST_SERIALIZATION_NVP(myNumSplits);
339  ar & BOOST_SERIALIZATION_NVP(myEntitiesCastsShadows);
340  ar & BOOST_SERIALIZATION_NVP(myPropsCastsShadows);
341  ar & BOOST_SERIALIZATION_NVP(myTerrainCastsShadows);
342  ar & BOOST_SERIALIZATION_NVP(myVisualizeShadows);
343  ar & BOOST_SERIALIZATION_NVP(myPolygonOffsetFactor);
344  ar & BOOST_SERIALIZATION_NVP(myPolygonOffsetUnits);
345  ar & BOOST_SERIALIZATION_NVP(myUsePolygonOffset);
346  ar & BOOST_SERIALIZATION_NVP(mySpotLightShadowMapSize);
347  ar & BOOST_SERIALIZATION_NVP(myGlobalLightShadowMapSize);
348  ar & BOOST_SERIALIZATION_NVP(myMaximumViewDistance);
349  ar & BOOST_SERIALIZATION_NVP(myUseMaximumViewDistance);
350  ar & BOOST_SERIALIZATION_NVP(myUseFrontFaceCulling);
351  ar & BOOST_SERIALIZATION_NVP(mySplitNearDistanceMinimumBias);
352  ar & BOOST_SERIALIZATION_NVP(mySplitNearDistanceMaximumBias);
353  ar & BOOST_SERIALIZATION_NVP(mySplitFarDistanceBias);
354  ar & BOOST_SERIALIZATION_NVP(myShadowAmbientFactor);
355  ar & BOOST_SERIALIZATION_NVP(myShadowStabilizationScheme);
356  ar & BOOST_SERIALIZATION_NVP(myAntiFlickerQuantizationFactor);
357  ar & BOOST_SERIALIZATION_NVP(mySplitDistanceComputeScheme);
358  ar & BOOST_SERIALIZATION_NVP(myMixedSplitInterp);
359  ar & BOOST_SERIALIZATION_NVP(mySplitSelectionScheme);
360  ar & BOOST_SERIALIZATION_NVP(myDataStorageScheme);
361  ar & BOOST_SERIALIZATION_NVP(myPreFilteringScheme);
362  ar & BOOST_SERIALIZATION_NVP(myFilteringScheme);
363  ar & BOOST_SERIALIZATION_NVP(myPoissonDiskSamplingScheme);
364  ar & BOOST_SERIALIZATION_NVP(myNumAdditionalPassesPerCascade);
365  ar & BOOST_SERIALIZATION_NVP(myPcfFilterWidth);
366  ar & BOOST_SERIALIZATION_NVP(myBlendCascadesBoundaries);
367  ar & BOOST_SERIALIZATION_NVP(myUseSDSM);
368  ar & BOOST_SERIALIZATION_NVP(mySDSMReadBackLatency);
369  ar & BOOST_SERIALIZATION_NVP(myUseCameraDepthBufferForSDSM);
370  ar & BOOST_SERIALIZATION_NVP(myEVSMPositiveExponent);
371  ar & BOOST_SERIALIZATION_NVP(myEVSMNegativeExponent);
372  ar & BOOST_SERIALIZATION_NVP(myVSMMininumVariance);
373  ar & BOOST_SERIALIZATION_NVP(myESMDarkeningFactor);
374  ar & BOOST_SERIALIZATION_NVP(myDirty);
375  ar & BOOST_SERIALIZATION_NVP(myNumPersistentPassesPerCascade);
376 
377  if(version >= 2)
378  {
379  ar & BOOST_SERIALIZATION_NVP(myCloudsCastsShadows);
380  }
381  }
382 
383  protected:
384 
385  std::string myName;
386  unsigned int myNumSplits;
392  std::vector<float> myPolygonOffsetFactor;
393  std::vector<float> myPolygonOffsetUnits;
415  unsigned int myPcfFilterWidth;
417  bool myUseSDSM;
418  unsigned int mySDSMReadBackLatency;
424  bool myDirty;
425  };
426 }
427 

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)