namespace UnityEngine.Experimental.ScriptableRenderLoop { public enum LightArchetype {Punctual, Rectangle, Line}; //@TODO: We should continuously move these values // into the engine when we can see them being generally useful [RequireComponent(typeof(Light))] public class AdditionalLightData : MonoBehaviour { public const int DefaultShadowResolution = 512; public int shadowResolution = DefaultShadowResolution; public static int GetShadowResolution(AdditionalLightData lightData) { if (lightData != null) return lightData.shadowResolution; else return DefaultShadowResolution; } [RangeAttribute(0.0F, 100.0F)] private float m_innerSpotPercent = 0.0F; public float GetInnerSpotPercent01() { return Mathf.Clamp(m_innerSpotPercent, 0.0f, 100.0f) / 100.0f; } [RangeAttribute(0.0F, 1.0F)] public float shadowDimmer = 1.0f; public bool affectDiffuse = true; public bool affectSpecular = true; public LightArchetype archetype = LightArchetype.Punctual; public bool isDoubleSided = false; [RangeAttribute(0.0f, 20.0f)] public float areaLightLength = 0.0f; [RangeAttribute(0.0f, 20.0f)] public float areaLightWidth = 0.0f; } }