You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.6 KiB
99 lines
3.6 KiB
namespace UnityEngine.Rendering
|
|
{
|
|
[System.Serializable]
|
|
internal struct ProbeDilationSettings
|
|
{
|
|
public bool enableDilation;
|
|
public float dilationDistance;
|
|
public float dilationValidityThreshold;
|
|
public int dilationIterations;
|
|
public bool squaredDistWeighting;
|
|
|
|
internal void SetDefaults()
|
|
{
|
|
enableDilation = false;
|
|
dilationDistance = 1;
|
|
dilationValidityThreshold = 0.25f;
|
|
dilationIterations = 1;
|
|
squaredDistWeighting = true;
|
|
}
|
|
|
|
internal void UpgradeFromTo(ProbeVolumeBakingProcessSettings.SettingsVersion from, ProbeVolumeBakingProcessSettings.SettingsVersion to) { }
|
|
}
|
|
|
|
[System.Serializable]
|
|
internal struct VirtualOffsetSettings
|
|
{
|
|
public bool useVirtualOffset;
|
|
[Range(0f, 0.95f)] public float validityThreshold;
|
|
[Range(0f, 1f)] public float outOfGeoOffset;
|
|
[Range(0f, 2f)] public float searchMultiplier;
|
|
[Range(-0.05f, 0f)] public float rayOriginBias;
|
|
public LayerMask collisionMask;
|
|
|
|
internal void SetDefaults()
|
|
{
|
|
useVirtualOffset = true;
|
|
validityThreshold = 0.25f;
|
|
outOfGeoOffset = 0.01f;
|
|
searchMultiplier = 0.2f;
|
|
UpgradeFromTo(ProbeVolumeBakingProcessSettings.SettingsVersion.Initial, ProbeVolumeBakingProcessSettings.SettingsVersion.ThreadedVirtualOffset);
|
|
}
|
|
|
|
internal void UpgradeFromTo(ProbeVolumeBakingProcessSettings.SettingsVersion from, ProbeVolumeBakingProcessSettings.SettingsVersion to)
|
|
{
|
|
if (from < ProbeVolumeBakingProcessSettings.SettingsVersion.ThreadedVirtualOffset && to >= ProbeVolumeBakingProcessSettings.SettingsVersion.ThreadedVirtualOffset)
|
|
{
|
|
rayOriginBias = -0.001f;
|
|
collisionMask = Physics.DefaultRaycastLayers;
|
|
}
|
|
}
|
|
}
|
|
|
|
// TODO: Use this structure in the actual authoring component rather than just a mean to group output parameters.
|
|
[System.Serializable]
|
|
internal struct ProbeVolumeBakingProcessSettings
|
|
{
|
|
internal static ProbeVolumeBakingProcessSettings Default { get { var s = new ProbeVolumeBakingProcessSettings(); s.SetDefaults(); return s; } }
|
|
|
|
internal enum SettingsVersion
|
|
{
|
|
Initial,
|
|
ThreadedVirtualOffset,
|
|
|
|
Max,
|
|
Current = Max - 1
|
|
}
|
|
|
|
internal ProbeVolumeBakingProcessSettings(ProbeDilationSettings dilationSettings, VirtualOffsetSettings virtualOffsetSettings)
|
|
{
|
|
m_Version = SettingsVersion.Current;
|
|
this.dilationSettings = dilationSettings;
|
|
this.virtualOffsetSettings = virtualOffsetSettings;
|
|
}
|
|
|
|
internal void SetDefaults()
|
|
{
|
|
m_Version = SettingsVersion.Current;
|
|
dilationSettings.SetDefaults();
|
|
virtualOffsetSettings.SetDefaults();
|
|
}
|
|
|
|
internal void Upgrade()
|
|
{
|
|
if (m_Version != SettingsVersion.Current)
|
|
{
|
|
// Debug.Log($"Upgrading probe volume baking process settings from '{m_Version}' to '{SettingsVersion.Current}'.");
|
|
|
|
dilationSettings.UpgradeFromTo(m_Version, SettingsVersion.Current);
|
|
virtualOffsetSettings.UpgradeFromTo(m_Version, SettingsVersion.Current);
|
|
m_Version = SettingsVersion.Current;
|
|
}
|
|
}
|
|
|
|
[SerializeField] SettingsVersion m_Version;
|
|
|
|
public ProbeDilationSettings dilationSettings;
|
|
public VirtualOffsetSettings virtualOffsetSettings;
|
|
}
|
|
}
|