13 #include <vrvCore/DtShadowSettingsObjectAgent.hpp>
23 class DtShadowSettingsManager;
25 class DtStringKeyConverter;
29 makArchives::DtShadowSettingsCollectionRecord >
34 const std::string& name,
const std::string& displayName);
40 virtual int currentSelectedShadowSettings()
const;
41 virtual void setCurrentSelectedShadowSettings(
int quality);
63 virtual void createShadowSettings();
67 int lookupShadowQuality(
const std::string& stringKey)
const;
70 const std::string* findShadowQualityStringKey(
int quality)
const;
73 void setName(
int quality,
const std::string& name);
76 std::string name(
int quality)
const;
79 void setShadowsEnabled(
bool shadowsEnabled);
82 bool shadowsEnabled()
const;
85 void setShadowsEnabledOnOcean(
bool enabled);
88 bool shadowsEnabledOnOcean()
const;
91 void setEntitiesCastsShadows(
int quality,
bool castShadows);
94 bool entitiesCastsShadows(
int quality)
const;
97 bool entitiesCastsShadows()
const;
100 void setPropsCastsShadows(
int quality,
bool castShadows);
103 bool propsCastsShadows(
int quality)
const;
106 bool propsCastsShadows()
const;
109 void setTerrainCastsShadows(
int quality,
bool castShadows);
112 bool terrainCastsShadows(
int quality)
const;
115 bool terrainCastsShadows()
const;
118 void setMoonCastsShadows(
int quality,
bool castShadows);
121 bool moonCastsShadows(
int quality)
const;
124 bool moonCastsShadows()
const;
127 void setVisualizeShadows(
int quality,
bool visualizeShadows);
130 bool visualizeShadows(
int quality)
const;
133 bool visualizeShadows()
const;
136 void setNumberOfSplits(
int quality,
unsigned int numSplits);
139 unsigned int numberOfSplits(
int quality)
const;
142 unsigned int numberOfSplits()
const;
145 void setUseFrontFaceCulling(
int quality,
bool useFrontFaceCulling);
148 bool useFrontFaceCulling(
int quality)
const;
151 bool useFrontFaceCulling()
const;
155 void setUseCachedFarCascade(
int quality,
bool useCachedFarCascade);
158 bool useCachedFarCascade()
const;
161 void setFarCascadeUpdateFrequency(
int quality,
double update_freq);
164 double farCascadeUpdateFrequency();
167 void setAdjustFarAndFlagsBasedOnHAT(
int quality,
bool adaptive);
170 bool adjustFarAndFlagsBasedOnHAT();
173 void setUsePolygonOffset(
int quality,
bool usePolygonOffset);
176 bool usePolygonOffset(
int quality)
const;
179 bool usePolygonOffset()
const;
182 void setPolygonOffset(
int quality,
unsigned int splitIndex,
float factor,
float units);
185 float polygonOffsetFactor(
int quality,
unsigned int splitIndex)
const;
188 float polygonOffsetFactor(
unsigned int splitIndex)
const;
191 float polygonOffsetUnits(
int quality,
unsigned int splitIndex)
const;
194 float polygonOffsetUnits(
unsigned int splitIndex)
const;
197 void setSpotLightShadowMapSize(
int quality,
unsigned int size);
200 unsigned int spotLightShadowMapSize(
int quality)
const;
203 unsigned int spotLightShadowMapSize()
const;
206 void setGlobalLightShadowMapSize(
int quality,
unsigned int size);
209 unsigned int globalLightShadowMapSize()
const;
212 unsigned int globalLightShadowMapSize(
int quality)
const;
215 void setUseMaximumViewDistance(
int quality,
bool useMaximumViewDistance);
218 bool useMaximumViewDistance(
int quality)
const;
221 bool useMaximumViewDistance()
const;
224 void setMaximumViewDistance(
int quality,
double viewDistance);
227 double maximumViewDistance(
int quality)
const;
230 double maximumViewDistance()
const;
233 void setSplitNearDistanceMinimumBias(
int quality,
double bias);
236 double splitNearDistanceMinimumBias(
int quality)
const;
239 double splitNearDistanceMinimumBias()
const;
242 void setSplitNearDistanceMaximumBias(
int quality,
double bias);
245 double splitNearDistanceMaximumBias(
int quality)
const;
248 double splitNearDistanceMaximumBias()
const;
251 void setSplitFarDistanceBias(
int quality,
double bias);
254 double splitFarDistanceBias(
int quality)
const;
257 double splitFarDistanceBias()
const;
260 void setShadowAmbientFactor(
int quality,
float shadowAmbientFactor);
263 float shadowAmbientFactor(
int quality)
const;
266 float shadowAmbientFactor()
const;
278 void setAntiFlickerQuantizationFactor(
int quality,
float antiFlickerQuantizationFactor);
281 float antiFlickerQuantizationFactor(
int quality)
const;
284 float antiFlickerQuantizationFactor()
const;
296 void setMixedSplitInterpolationValue(
int quality,
double interp);
299 double mixedSplitInterpolationValue(
int quality)
const;
302 double mixedSplitInterpolationValue()
const;
341 void setUseViewportMulticast(
int quality,
bool useViewportMulticast);
344 bool useViewportMulticast()
const;
347 void setNumPersistentPassesPerCascade(
int quality,
unsigned int numPasses);
350 unsigned int numPersistentPassesPerCascade(
int quality)
const;
353 unsigned int numPersistentPassesPerCascade()
const;
356 void setNumAdditionalPassesPerCascade(
int quality,
unsigned int numPasses);
359 unsigned int numAdditionalPassesPerCascade(
int quality)
const;
362 unsigned int numAdditionalPassesPerCascade()
const;
365 void setPcfFilterWidth(
int quality,
unsigned int pcfFilterWidth);
368 unsigned int pcfFilterWidth(
int quality)
const;
371 unsigned int pcfFilterWidth()
const;
374 void setBlendCascadesBoundaries(
int quality,
bool blendCascadesBoundaries);
377 bool blendCascadesBoundaries(
int quality)
const;
380 bool blendCascadesBoundaries()
const;
383 void setApplyShadowToAmbientLighting(
int quality,
bool applyShadowToAmbientLighting);
386 bool applyShadowToAmbientLighting(
int quality)
const;
389 bool applyShadowToAmbientLighting()
const;
392 void setEVSMPositiveExponent(
int quality,
double evsmPositiveExponent);
395 double evsmPositiveExponent(
int quality)
const;
398 double evsmPositiveExponent()
const;
401 void setEVSMNegativeExponent(
int quality,
double evsmNegativeExponent);
404 double evsmNegativeExponent(
int quality)
const;
407 double evsmNegativeExponent()
const;
410 void setVSMMininumVariance(
int quality,
double vsmMininumVariance);
413 double vsmMininumVariance(
int quality)
const;
416 double vsmMininumVariance()
const;
419 void setESMDarkeningFactor(
int quality,
double esmDarkeningFactor);
422 double esmDarkeningFactor(
int quality)
const;
425 double esmDarkeningFactor()
const;
428 void setDirty(
int quality,
bool dirty);
431 bool dirty(
int quality)
const;
437 void setCurrentPolygonOffsetCascade(
unsigned int cascade);
440 unsigned int currentPolygonOffsetCascade()
const;
446 virtual void loadDefaults();
453 virtual void importSettings(
const std::string& filePath);
619 template <
typename ManagerClass>
623 template <
typename ManagerClass>
640 DtShadowSettingsObjectAgent* getShadowSettingsObjectAgentPtr(
int quality)
const;
644 virtual void addShadowSettingsObjectAgent(
int quality,
const std::string& stringKey, DtShadowSettingsObjectAgent* agent);
649 virtual void createShadowSettings(
int quality,
const std::string& stringKey);
652 virtual void removeShadowQuality(
int quality);
655 virtual void clear();
657 virtual void initializeBackup();
SplitDistanceComputeScheme
Definition: DtShadowSettingsRecord.h:39
Base class for (non-shared) settings managers. Extends the functionality provided by the DtCommonBase...
Definition: DtBaseSettingsManager.h:291
unsigned int myCurrentQualitySetting
Definition: DtShadowSettingsManager.h:661
boost::signalslib::signal< void(int, int)> shadowSettingsPoissonDiskSamplingSchemeChanged
brief signal that the indicated shadow setting's poisson disk sampling scheme changed ...
Definition: DtShadowSettingsManager.h:573
boost::signalslib::signal< void(bool)> shadowSettingsShadowsEnabledChanged
brief signal that whether or not shadows are enabled has changed
Definition: DtShadowSettingsManager.h:480
boost::signalslib::signal< void(int, double)> shadowSettingsESMDarkeningFactorChanged
brief signal that the indicated shadow setting's esm darkening factor changed
Definition: DtShadowSettingsManager.h:600
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signalslib::signal< void(int, unsigned int, float)> shadowSettingsPolygonOffsetFactorChanged
brief signal that the indicated shadow setting's polygon offset factor parameter changed ...
Definition: DtShadowSettingsManager.h:522
Creator for DtShadowSettingsManager class.
Definition: DtShadowSettingsManager.h:688
DtShadowSettingsRecord is the serializable record used to read and write a Shadow Setting's Configura...
Definition: DtShadowSettingsRecord.h:29
boost::signalslib::signal< void(int, bool)> shadowSettingsUseMaximumViewDistanceChanged
brief signal that the indicated shadow setting's use maximum view distance changed ...
Definition: DtShadowSettingsManager.h:534
boost::signalslib::signal< void(int, int)> shadowSettingsShadowStabilizationSchemeChanged
brief signal that the indicated shadow setting's shadow stabilization scheme changed ...
Definition: DtShadowSettingsManager.h:552
int myCurrentSelectedShadowSettings
Definition: DtShadowSettingsManager.h:44
boost::signalslib::signal< void(int, double)> shadowSettingsMaximumViewDistanceChanged
brief signal that the indicated shadow setting's maximum view distance changed
Definition: DtShadowSettingsManager.h:537
Record of a collection of shadow definitions.
Definition: DtShadowSettingsCollectionRecord.h:15
FilteringScheme
Definition: DtShadowSettingsRecord.h:68
A Record of an IG instance.
Definition: DtDeRecord.h:24
boost::signalslib::signal< void(int, const std::string &)> shadowSettingsNameChanged
brief signal that the indicated shadow setting's name changed
Definition: DtShadowSettingsManager.h:477
boost::signalslib::signal< void(int, int)> shadowSettingsMoonCastsShadowsChanged
brief signal that the indicated shadow setting's moon casts shadows changed
Definition: DtShadowSettingsManager.h:495
boost::signalslib::signal< void(int, int)> shadowSettingsNumberOfSplitsChanged
brief signal that the indicated shadow setting's shadow visualization mode changed ...
Definition: DtShadowSettingsManager.h:501
voidpf void uLong size
Definition: ioapi.h:39
boost::signalslib::signal< void(int, int)> shadowSettingsVisualizeShadowsChanged
brief signal that the indicated shadow setting's shadow visualization mode changed ...
Definition: DtShadowSettingsManager.h:498
boost::signalslib::signal< void(int, float)> shadowSettingsShadowFactorChanged
brief signal that the indicated shadow setting's shadow factor for modulating the scene changed ...
Definition: DtShadowSettingsManager.h:549
unsigned int myCurrentPolygonOffsetCascade
Definition: DtShadowSettingsManager.h:663
ShadowSettingsObjectAgentsMap myShadowSettingsObjectAgentsMap
Definition: DtShadowSettingsManager.h:681
boost::signalslib::signal< void(int, bool)> shadowSettingsDirtyChanged
brief signal that the indicated shadow setting's dirty flag changed
Definition: DtShadowSettingsManager.h:603
Contains makVrv::DtShadowSettingsObject class.
boost::signalslib::signal< void(int, double)> shadowSettingsSplitFarDistanceBiasChanged
brief signal that the indicated shadow setting's split far distance bias changed
Definition: DtShadowSettingsManager.h:546
boost::signalslib::signal< void(int, bool)> shadowSettingsUseViewportMulticastChanged
brief signal that the indicated shadow setting's use viewport multicast changed
Definition: DtShadowSettingsManager.h:516
boost::signalslib::signal< void(int, unsigned int)> shadowSettingsPcfFilterWidthChanged
brief signal that the indicated shadow setting's PCF filter width changed
Definition: DtShadowSettingsManager.h:582
boost::signalslib::signal< void(int)> shadowSettingsAdded
signal that the indicated shadow setting was added
Definition: DtShadowSettingsManager.h:606
The makVrv::DtRecordSettingsBackup is a templaced class that settings records will use in order to ba...
Definition: DtRecordSettingsBackup.h:100
boost::signalslib::signal< void(int, double)> shadowSettingsVSMMininumVarianceChanged
brief signal that the indicated shadow setting's vsm minimum variance changed
Definition: DtShadowSettingsManager.h:597
boost::signalslib::signal< void(int, bool)> shadowSettingsUseCachedFarCascadeChanged
brief signal that the indicated shadow setting's use cached far cascade changed
Definition: DtShadowSettingsManager.h:507
boost::signalslib::signal< void(int)> shadowSettingsToBeRemoved
signal that the indicated shadow setting is about to be removed
Definition: DtShadowSettingsManager.h:609
boost::signalslib::signal< void(int, int)> shadowSettingsPreFilteringSchemeChanged
brief signal that the indicated shadow setting's pre-filtering scheme changed
Definition: DtShadowSettingsManager.h:567
boost::signalslib::signal< void(int, float)> shadowSettingsAntiFlickerQuantizationFactorChanged
brief signal that the indicated shadow setting's shadow anti-flicker quantization value for approxima...
Definition: DtShadowSettingsManager.h:555
SplitSelectionScheme
Definition: DtShadowSettingsRecord.h:46
boost::signalslib::signal< void(int, int)> shadowSettingsPropsCastsShadowsChanged
brief signal that the indicated shadow setting's props casts shadows changed
Definition: DtShadowSettingsManager.h:489
DtStringKeyConverter is used to convert string-based keys, used in files for things like model sets a...
Definition: DtStringKeyConverter.h:30
boost::signalslib::signal< void(int, int)> shadowSettingsSpotLightShadowMapSizeChanged
brief signal that the indicated shadow setting's spot light texture atlas size changed ...
Definition: DtShadowSettingsManager.h:528
boost::signalslib::signal< void(int, double)> shadowSettingsFarCascadeUpdateFreqChanged
brief signal that the indicated shadow setting's far cascade update changed
Definition: DtShadowSettingsManager.h:510
int myQuality
Definition: DtShadowSettingsManager.h:665
boost::signalslib::signal< void(int, bool)> shadowSettingsUseFrontFaceCullingChanged
brief signal that the indicated shadow setting's use front face culling changed
Definition: DtShadowSettingsManager.h:504
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
std::map< int, DtShadowSettingsObjectAgent * > ShadowSettingsObjectAgents
Type returned when retrieving all observer modes.
Definition: DtShadowSettingsManager.h:670
The DtShadowSettingsManager is responsible for loading and saving shadow settings for varying shadow ...
Definition: DtShadowSettingsManager.h:51
ShadowStabilizationScheme
Definition: DtShadowSettingsRecord.h:32
makArchives::DtShadowSettingsRecord * myCurrentSettings
Definition: DtShadowSettingsManager.h:667
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:879
Provides a method of doign settings backup.
Definition: DtSettingsBackup.h:23
boost::signalslib::signal< void(int, int)> shadowSettingsEntitiesCastsShadowsChanged
brief signal that the indicated shadow setting's entities casts shadows changed
Definition: DtShadowSettingsManager.h:486
boost::signalslib::signal< void(int, bool)> shadowSettingsApplyShadowToAmbientLightingChanged
brief signal that the indicated shadow setting's apply shadow factor to ambient lighting changed ...
Definition: DtShadowSettingsManager.h:588
boost::signalslib::signal< void(int, int)> shadowSettingsSplitDistanceComputeSchemeChanged
brief signal that the indicated shadow setting's split distance compute scheme changed ...
Definition: DtShadowSettingsManager.h:558
PoissonDiskSamplingScheme
Definition: DtShadowSettingsRecord.h:78
boost::signalslib::signal< void(int, double)> shadowSettingsEVSMPositiveExponentChanged
brief signal that the indicated shadow setting's evsm positive exponent changed
Definition: DtShadowSettingsManager.h:591
boost::signalslib::signal< void(int, double)> shadowSettingsSplitNearDistanceMinimumBiasChanged
brief signal that the indicated shadow setting's split near distance minimum bias changed ...
Definition: DtShadowSettingsManager.h:540
boost::signalslib::signal< void(int, double)> shadowSettingsMixedSplitInterpolationValueChanged
brief signal that the indicated shadow setting's mixed logarithmic uniform split interpolation value ...
Definition: DtShadowSettingsManager.h:561
boost::signalslib::signal< void(int, bool)> shadowSettingsAdjustFarAndFlagsBasedOnHATChanged
brief signal near cascades automatically change size and flags in the air
Definition: DtShadowSettingsManager.h:513
boost::signalslib::signal< void(int, int)> shadowSettingsTerrainCastsShadowsChanged
brief signal that the indicated shadow setting's terrain casts shadows changed
Definition: DtShadowSettingsManager.h:492
Contains makArchives::DtShadowSettingsRecord class.
ShadowSettingsObjectAgents myShadowSettingsObjectAgents
Definition: DtShadowSettingsManager.h:678
boost::signalslib::signal< void(int, double)> shadowSettingsSplitNearDistanceMaximumBiasChanged
brief signal that the indicated shadow setting's split near distance maximum bias changed ...
Definition: DtShadowSettingsManager.h:543
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function. Manager requirements: 1) Static instance function 2) Protected DtS...
Definition: DtDe.h:841
boost::signalslib::signal< void(int, int)> shadowSettingsFilteringSchemeChanged
brief signal that the indicated shadow setting's filtering scheme changed
Definition: DtShadowSettingsManager.h:570
DtStringKeyConverter * myStringKeyConverter
Definition: DtShadowSettingsManager.h:675
boost::signalslib::signal< void(int, int)> shadowSettingsGlobalLightShadowMapSizeChanged
brief signal that the indicated shadow setting's global light texture size for cascaded shadow mappin...
Definition: DtShadowSettingsManager.h:531
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
boost::signalslib::signal< void(int, unsigned int)> shadowSettingsNumAdditionalPassesPerCascadeChanged
brief signal that the indicated shadow setting's additional number of passes per cascade changed ...
Definition: DtShadowSettingsManager.h:579
boost::signalslib::signal< void(int, bool)> shadowSettingsUsePolygonOffsetChanged
brief signal that the indicated shadow setting's use polygon offset changed
Definition: DtShadowSettingsManager.h:519
Definition: DtShadowSettingsManager.h:27
std::map< std::string, int > ShadowSettingsObjectAgentsMap
Map type for mapping observer mode names to integer keys.
Definition: DtShadowSettingsManager.h:673
boost::signalslib::signal< void(int, unsigned int, float)> shadowSettingsPolygonOffsetUnitsChanged
brief signal that the indicated shadow setting's polygon offset unit parameter changed ...
Definition: DtShadowSettingsManager.h:525
boost::signalslib::signal< void(int, int)> shadowSettingsSplitSelectionSchemeChanged
brief signal that the indicated shadow setting's split selection scheme changed
Definition: DtShadowSettingsManager.h:564
boost::signalslib::signal< void(int, double)> shadowSettingsEVSMNegativeExponentChanged
brief signal that the indicated shadow setting's evsm negative exponent changed
Definition: DtShadowSettingsManager.h:594
PreFilteringScheme
Definition: DtShadowSettingsRecord.h:59
boost::signalslib::signal< void(bool)> shadowSettingsShadowsEnabledOnOceanChanged
brief signal that whether or not shadows on ocean changed
Definition: DtShadowSettingsManager.h:483
boost::signalslib::signal< void(int, unsigned int)> shadowSettingsNumPersistentPassesPerCascadeChanged
brief signal that the indicated shadow setting's persistent number of passes per cascade changed ...
Definition: DtShadowSettingsManager.h:576
boost::signalslib::signal< void(int, bool)> shadowSettingsBlendCascadesBoundariesChanged
brief signal that the indicated shadow setting's blend cascades boundaries changed ...
Definition: DtShadowSettingsManager.h:585
Contains the DtBaseSettingsManager class declaration.
Contains DLL export macros.