23static_assert(
sizeof(ShaderClosure) >=
sizeof(BurleyBsdf),
"BurleyBsdf is too large!");
30 const float NdotL =
dot(n,
l);
31 const float NdotV =
dot(n,
v);
35 const float F90 = 0.5f + (2.0f * roughness * LdotH * LdotH);
53 const float cosNO =
dot(bsdf->N, wo);
56 return bsdf_burley_get_intensity(bsdf->roughness, bsdf->N, wi, wo);
76 if (
dot(Ng, *wo) > 0.0f) {
77 *eval = bsdf_burley_get_intensity(bsdf->roughness, bsdf->N, wi, *wo);
ATTR_WARN_UNUSED_RESULT const BMLoop * l
ATTR_WARN_UNUSED_RESULT const BMVert * v
ccl_device float schlick_fresnel(const float u)
dot(value.rgb, luminance_coefficients)") DEFINE_VALUE("REDUCE(lhs
#define SHADER_CLOSURE_BASE
#define CCL_NAMESPACE_END
VecBase< float, D > normalize(VecOp< float, D >) RET
ccl_device_inline void sample_cos_hemisphere(const float3 N, const float2 rand_in, ccl_private float3 *wo, ccl_private float *pdf)