//////////////////////////////////////////////////////////////////////////
// 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();
};
}