33 #ifndef __BSDF_REFRACTION_H__
34 #define __BSDF_REFRACTION_H__
76 float m_eta = bsdf->
ior;
80 #ifdef __RAY_DIFFERENTIALS__
81 float3 dRdx, dRdy, dTdx, dTdy;
100 if (!inside && fresnel != 1.0f) {
105 #ifdef __RAY_DIFFERENTIALS__
106 *domega_in_dx = dTdx;
107 *domega_in_dy = dTdy;
ccl_device float3 bsdf_refraction_eval_transmit(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf)
ccl_device int bsdf_refraction_sample(const ShaderClosure *sc, float3 Ng, float3 I, float3 dIdx, float3 dIdy, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf)
ccl_device float3 bsdf_refraction_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf)
CCL_NAMESPACE_BEGIN ccl_device int bsdf_refraction_setup(MicrofacetBsdf *bsdf)
CCL_NAMESPACE_BEGIN ccl_device float fresnel_dielectric(float eta, const float3 N, const float3 I, float3 *R, float3 *T, bool *is_inside)
#define CCL_NAMESPACE_END
#define make_float3(x, y, z)
#define __RAY_DIFFERENTIALS__
@ CLOSURE_BSDF_REFRACTION_ID