Implements the a bsdf based on a single Linearly Transformed Cosine (LTC). LTC can be used to approximate many isotropic BSDF types.
see:
Real-Time Polygonal-Light Shading with Linearly Transformed Cosines, Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt
|
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE | LTCBsdf (const float _roughness, const float4 *_tabM, const float4 *_tabMinv, const float *_tabA, const uint32 _size) |
|
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE Vector3f | f (const DifferentialGeometry &geometry, const Vector3f V, const Vector3f L) const |
|
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE Vector3f | f_over_p (const DifferentialGeometry &geometry, const Vector3f V, const Vector3f L) const |
|
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE void | f_and_p (const DifferentialGeometry &geometry, const Vector3f V, const Vector3f L, Vector3f &f, float &p, const SphericalMeasure measure=kProjectedSolidAngle) const |
|
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE float | p (const DifferentialGeometry &geometry, const Vector3f V, const Vector3f L, const SphericalMeasure measure=kProjectedSolidAngle) const |
|
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE void | sample (const Vector3f u, const DifferentialGeometry &geometry, const Vector3f V, Vector3f &L, Vector3f &g, float &p, float &p_proj) const |
|
template<typename RandomGeneratorT > |
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE bool | invert (const DifferentialGeometry &geometry, const Vector3f V, const Vector3f L, RandomGeneratorT &random, Vector3f &z, float &p, float &p_proj) const |
|
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE void | inverse_pdf (const DifferentialGeometry &geometry, const Vector3f V, const Vector3f L, const Vector3f u, float &p, float &p_proj) const |
|
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE LTC | get_ltc (const DifferentialGeometry &geometry, const Vector3f V) const |
|
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE float | hemispherical_sector_integral (const DifferentialGeometry &geometry, const Vector3f V, const float2 theta, const float2 phi) const |
|