diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:17:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:21:24 +0300 |
commit | e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch) | |
tree | 8cf3453d12edb177a218ef8009357518ec6cab6a /intern/cycles/kernel/closure/bsdf_oren_nayar.h | |
parent | b3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff) |
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'intern/cycles/kernel/closure/bsdf_oren_nayar.h')
-rw-r--r-- | intern/cycles/kernel/closure/bsdf_oren_nayar.h | 124 |
1 files changed, 71 insertions, 53 deletions
diff --git a/intern/cycles/kernel/closure/bsdf_oren_nayar.h b/intern/cycles/kernel/closure/bsdf_oren_nayar.h index 3446d1609d9..104ed5b2818 100644 --- a/intern/cycles/kernel/closure/bsdf_oren_nayar.h +++ b/intern/cycles/kernel/closure/bsdf_oren_nayar.h @@ -20,92 +20,110 @@ CCL_NAMESPACE_BEGIN typedef ccl_addr_space struct OrenNayarBsdf { - SHADER_CLOSURE_BASE; + SHADER_CLOSURE_BASE; - float roughness; - float a; - float b; + float roughness; + float a; + float b; } OrenNayarBsdf; -ccl_device float3 bsdf_oren_nayar_get_intensity(const ShaderClosure *sc, float3 n, float3 v, float3 l) +ccl_device float3 bsdf_oren_nayar_get_intensity(const ShaderClosure *sc, + float3 n, + float3 v, + float3 l) { - const OrenNayarBsdf *bsdf = (const OrenNayarBsdf*)sc; - float nl = max(dot(n, l), 0.0f); - float nv = max(dot(n, v), 0.0f); - float t = dot(l, v) - nl * nv; - - if(t > 0.0f) - t /= max(nl, nv) + FLT_MIN; - float is = nl * (bsdf->a + bsdf->b * t); - return make_float3(is, is, is); + const OrenNayarBsdf *bsdf = (const OrenNayarBsdf *)sc; + float nl = max(dot(n, l), 0.0f); + float nv = max(dot(n, v), 0.0f); + float t = dot(l, v) - nl * nv; + + if (t > 0.0f) + t /= max(nl, nv) + FLT_MIN; + float is = nl * (bsdf->a + bsdf->b * t); + return make_float3(is, is, is); } ccl_device int bsdf_oren_nayar_setup(OrenNayarBsdf *bsdf) { - float sigma = bsdf->roughness; + float sigma = bsdf->roughness; - bsdf->type = CLOSURE_BSDF_OREN_NAYAR_ID; + bsdf->type = CLOSURE_BSDF_OREN_NAYAR_ID; - sigma = saturate(sigma); + sigma = saturate(sigma); - float div = 1.0f / (M_PI_F + ((3.0f * M_PI_F - 4.0f) / 6.0f) * sigma); + float div = 1.0f / (M_PI_F + ((3.0f * M_PI_F - 4.0f) / 6.0f) * sigma); - bsdf->a = 1.0f * div; - bsdf->b = sigma * div; + bsdf->a = 1.0f * div; + bsdf->b = sigma * div; - return SD_BSDF|SD_BSDF_HAS_EVAL; + return SD_BSDF | SD_BSDF_HAS_EVAL; } ccl_device bool bsdf_oren_nayar_merge(const ShaderClosure *a, const ShaderClosure *b) { - const OrenNayarBsdf *bsdf_a = (const OrenNayarBsdf*)a; - const OrenNayarBsdf *bsdf_b = (const OrenNayarBsdf*)b; + const OrenNayarBsdf *bsdf_a = (const OrenNayarBsdf *)a; + const OrenNayarBsdf *bsdf_b = (const OrenNayarBsdf *)b; - return (isequal_float3(bsdf_a->N, bsdf_b->N)) && - (bsdf_a->roughness == bsdf_b->roughness); + return (isequal_float3(bsdf_a->N, bsdf_b->N)) && (bsdf_a->roughness == bsdf_b->roughness); } -ccl_device float3 bsdf_oren_nayar_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) +ccl_device float3 bsdf_oren_nayar_eval_reflect(const ShaderClosure *sc, + const float3 I, + const float3 omega_in, + float *pdf) { - const OrenNayarBsdf *bsdf = (const OrenNayarBsdf*)sc; - if(dot(bsdf->N, omega_in) > 0.0f) { - *pdf = 0.5f * M_1_PI_F; - return bsdf_oren_nayar_get_intensity(sc, bsdf->N, I, omega_in); - } - else { - *pdf = 0.0f; - return make_float3(0.0f, 0.0f, 0.0f); - } + const OrenNayarBsdf *bsdf = (const OrenNayarBsdf *)sc; + if (dot(bsdf->N, omega_in) > 0.0f) { + *pdf = 0.5f * M_1_PI_F; + return bsdf_oren_nayar_get_intensity(sc, bsdf->N, I, omega_in); + } + else { + *pdf = 0.0f; + return make_float3(0.0f, 0.0f, 0.0f); + } } -ccl_device float3 bsdf_oren_nayar_eval_transmit(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) +ccl_device float3 bsdf_oren_nayar_eval_transmit(const ShaderClosure *sc, + const float3 I, + const float3 omega_in, + float *pdf) { - return make_float3(0.0f, 0.0f, 0.0f); + return make_float3(0.0f, 0.0f, 0.0f); } -ccl_device int bsdf_oren_nayar_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 int bsdf_oren_nayar_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) { - const OrenNayarBsdf *bsdf = (const OrenNayarBsdf*)sc; - sample_uniform_hemisphere(bsdf->N, randu, randv, omega_in, pdf); + const OrenNayarBsdf *bsdf = (const OrenNayarBsdf *)sc; + sample_uniform_hemisphere(bsdf->N, randu, randv, omega_in, pdf); - if(dot(Ng, *omega_in) > 0.0f) { - *eval = bsdf_oren_nayar_get_intensity(sc, bsdf->N, I, *omega_in); + if (dot(Ng, *omega_in) > 0.0f) { + *eval = bsdf_oren_nayar_get_intensity(sc, bsdf->N, I, *omega_in); #ifdef __RAY_DIFFERENTIALS__ - // TODO: find a better approximation for the bounce - *domega_in_dx = (2.0f * dot(bsdf->N, dIdx)) * bsdf->N - dIdx; - *domega_in_dy = (2.0f * dot(bsdf->N, dIdy)) * bsdf->N - dIdy; + // TODO: find a better approximation for the bounce + *domega_in_dx = (2.0f * dot(bsdf->N, dIdx)) * bsdf->N - dIdx; + *domega_in_dy = (2.0f * dot(bsdf->N, dIdy)) * bsdf->N - dIdy; #endif - } - else { - *pdf = 0.0f; - *eval = make_float3(0.0f, 0.0f, 0.0f); - } + } + else { + *pdf = 0.0f; + *eval = make_float3(0.0f, 0.0f, 0.0f); + } - return LABEL_REFLECT|LABEL_DIFFUSE; + return LABEL_REFLECT | LABEL_DIFFUSE; } - CCL_NAMESPACE_END -#endif /* __BSDF_OREN_NAYAR_H__ */ +#endif /* __BSDF_OREN_NAYAR_H__ */ |