using System;
using System.Diagnostics;
namespace UnityEngine.Rendering.HighDefinition
{
///
/// Visual Environment Volume Component.
/// This component setups the sky used for rendering as well as the way ambient probe should be computed.
///
[Serializable, VolumeComponentMenu("Visual Environment")]
[HelpURL(Documentation.baseURL + Documentation.version + Documentation.subURL + "Override-Visual-Environment" + Documentation.endURL)]
public sealed class VisualEnvironment : VolumeComponent
{
/// Type of sky that should be used for rendering.
public NoInterpIntParameter skyType = new NoInterpIntParameter(0);
/// Defines the way the ambient probe should be computed.
public SkyAmbientModeParameter skyAmbientMode = new SkyAmbientModeParameter(SkyAmbientMode.Static);
// Deprecated, kept for migration
[SerializeField]
internal FogTypeParameter fogType = new FogTypeParameter(FogType.None);
}
///
/// Informative enumeration containing SkyUniqeIDs already used by HDRP.
/// When users write their own sky type, they can use any ID not present in this enumeration or in their project.
///
public enum SkyType
{
/// HDRI Sky Unique ID.
HDRI = 1,
/// Procedural Sky Unique ID.
Procedural = 2,
/// Gradient Sky Unique ID.
Gradient = 3,
/// Physically Based Sky Unique ID.
PhysicallyBased = 4,
}
///
/// Sky Ambient Mode.
///
public enum SkyAmbientMode
{
/// HDRP will use the static lighting sky setup in the lighting panel to compute the global ambient probe.
Static,
/// HDRP will use the current sky used for lighting (either the one setup in the Visual Environment component or the Sky Lighting Override) to compute the global ambient probe.
Dynamic,
}
///
/// Sky Ambient Mode volume parameter.
///
[Serializable, DebuggerDisplay(k_DebuggerDisplay)]
public sealed class SkyAmbientModeParameter : VolumeParameter
{
///
/// Sky Ambient Mode volume parameter constructor.
///
/// Sky Ambient Mode parameter.
/// Initial override value.
public SkyAmbientModeParameter(SkyAmbientMode value, bool overrideState = false)
: base(value, overrideState) {}
}
}