diff options
author | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
commit | 15740faf9fe9fe4be08965098bbf2947e096aeeb (patch) | |
tree | a730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Camera/ShadowSettings.h |
Diffstat (limited to 'Runtime/Camera/ShadowSettings.h')
-rw-r--r-- | Runtime/Camera/ShadowSettings.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Runtime/Camera/ShadowSettings.h b/Runtime/Camera/ShadowSettings.h new file mode 100644 index 0000000..256ba83 --- /dev/null +++ b/Runtime/Camera/ShadowSettings.h @@ -0,0 +1,33 @@ +#ifndef SHADOW_SETTINGS_H +#define SHADOW_SETTINGS_H + +#include "Runtime/Serialize/SerializeUtility.h" + +struct ShadowSettings +{ + DECLARE_SERIALIZE_NO_PPTR (ShadowSettings) + + int m_Type; ///< enum { No Shadows, Hard Shadows, Soft Shadows } Shadow cast options + // -1 is auto; the rest must match the values in Quality Settings! + int m_Resolution; ///< enum { Use Quality Settings = -1, Low Resolution = 0, Medium Resolution = 1, High Resolution = 2, Very High Resolution = 3 } Shadow resolution + float m_Strength; ///< Shadow intensity range {0.0, 1.0} + float m_Bias; ///< Bias for shadows range {0.0, 10.0} + float m_Softness; ///< Shadow softness range {1.0, 8.0} + float m_SoftnessFade; ///< Shadow softness fadeout range {0.1, 5.0} + + ShadowSettings () { Reset (); } + void Reset(); +}; + +template<class TransferFunc> +void ShadowSettings::Transfer (TransferFunc& transfer) +{ + TRANSFER_SIMPLE(m_Type); + TRANSFER (m_Resolution); + TRANSFER (m_Strength); + TRANSFER (m_Bias); + TRANSFER (m_Softness); + TRANSFER (m_SoftnessFade); +} + +#endif |