using UnityEngine.Rendering; namespace UnityEngine.Rendering { /// /// Defines the constant buffer register that will be used as binding point for the Probe Volumes constant buffer. /// public enum APVConstantBufferRegister { /// /// Global register /// GlobalRegister = 5 } /// /// Defines the method used to reduce leaking. /// [GenerateHLSL] public enum APVLeakReductionMode { /// /// Nothing is done to prevent leaking. Cheapest option in terms of cost of sampling. /// None = 0, /// /// The uvw used to sample APV data are warped to try to have invalid probe not contributing to lighting. Also, a geometric weight based on normal at sampling position and vector to probes is used. /// This only modifies the uvw used, but still sample a single time. It is effective in some situations (especially when occluding object contain probes inside) but ineffective in many other. /// ValidityAndNormalBased = 1, } [GenerateHLSL(needAccessors = false, generateCBuffer = true, constantRegister = (int)APVConstantBufferRegister.GlobalRegister)] internal unsafe struct ShaderVariablesProbeVolumes { public Vector4 _PoolDim_CellInMeters; public Vector4 _MinCellPos_Noise; public Vector4 _IndicesDim_IndexChunkSize; public Vector4 _Biases_CellInMinBrick_MinBrickSize; public Vector4 _LeakReductionParams; public Vector4 _Weight_MinLoadedCell; public Vector4 _MaxLoadedCell_FrameIndex; public Vector4 _NormalizationClamp_Padding12; } }