////////////////////////////////////////////////////////////////////////// // BRDF Interface ////////////////////////////////////////////////////////////////////////// // using System; using UnityEngine.Rendering; namespace UnityEngine.Rendering.HighDefinition.LTC { /// /// BRDF Interface that you must implement in order to generate a new table /// internal interface IBRDF { /// /// Evaluation of the ***cosine-weighted*** BRDF /// /// The vector pointing toward the camera /// The vector pointing toward the light /// Surface roughness /// The Probability Density Function of sampling the light in that direction /// double Eval(ref Vector3 _tsView, ref Vector3 _tsLight, float _alpha, out double _pdf); /// /// Gets an importance-sampled light direction given a view vector and the surface roughness /// /// The vector pointing toward the camera /// >Surface roughness /// A random value in [0,1] /// A 2nd random value in [0,1] /// The generated direction void GetSamplingDirection(ref Vector3 _tsView, float _alpha, float _U1, float _U2, ref Vector3 _direction); LTCLightingModel GetLightingModel(); }; }