72 lines
1.6 KiB
C#
72 lines
1.6 KiB
C#
using System;
|
|
using HTraceWSGI.Scripts.Extensions;
|
|
using HTraceWSGI.Scripts.Globals;
|
|
using UnityEngine;
|
|
|
|
namespace HTraceWSGI.Scripts.Data.Public
|
|
{
|
|
[Serializable]
|
|
public class ReflectionIndirectLightingSettings
|
|
{
|
|
[SerializeField]
|
|
public IndirectEvaluationMethod IndirectEvaluationMethod = IndirectEvaluationMethod.None;
|
|
|
|
[SerializeField]
|
|
private float _rayBias = 0.5f;
|
|
|
|
[HExtensions.HRange(0.0f,1.0f)]
|
|
public float RayBias
|
|
{
|
|
get => _rayBias;
|
|
set
|
|
{
|
|
if (Mathf.Abs(value - _rayBias) < Mathf.Epsilon)
|
|
return;
|
|
|
|
_rayBias = HExtensions.Clamp(value, typeof(ReflectionIndirectLightingSettings), nameof(ReflectionIndirectLightingSettings.RayBias));
|
|
}
|
|
}
|
|
|
|
[SerializeField]
|
|
private float _maxRayLength = 100f;
|
|
|
|
[HExtensions.HRange(0.0f,100.0f)]
|
|
public float MaxRayLength
|
|
{
|
|
get => _maxRayLength;
|
|
set
|
|
{
|
|
if (Mathf.Abs(value - _maxRayLength) < Mathf.Epsilon)
|
|
return;
|
|
|
|
_maxRayLength = HExtensions.Clamp(value, typeof(ReflectionIndirectLightingSettings), nameof(ReflectionIndirectLightingSettings.MaxRayLength));
|
|
}
|
|
}
|
|
|
|
[SerializeField]
|
|
public SpatialRadius SpatialRadius = SpatialRadius.Medium;
|
|
|
|
[SerializeField]
|
|
private float _jitterRadius = 0.5f;
|
|
|
|
[HExtensions.HRange(0.0f,1.0f)]
|
|
public float JitterRadius
|
|
{
|
|
get => _jitterRadius;
|
|
set
|
|
{
|
|
if (Mathf.Abs(value - _jitterRadius) < Mathf.Epsilon)
|
|
return;
|
|
|
|
_jitterRadius = HExtensions.Clamp(value, typeof(ReflectionIndirectLightingSettings), nameof(ReflectionIndirectLightingSettings.JitterRadius));
|
|
}
|
|
}
|
|
|
|
[SerializeField]
|
|
public bool TemporalJitter = true;
|
|
|
|
[SerializeField]
|
|
public bool OcclusionCheck = false;
|
|
}
|
|
}
|