diff options
author | Thomas Dinges <blender@dingto.org> | 2013-05-11 02:41:24 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2013-05-11 02:41:24 +0400 |
commit | 4ae201e105410df8df27bbe68bf7abc6ac3e49a0 (patch) | |
tree | 7644227426adfa990b22b76f57883885eef0ef33 /intern | |
parent | 3e1e76a2c1f711b4888cb6e82892f6c765b21fef (diff) |
Cycles / Closures:
* Avoid some unnecessary re-declarations of closure data and simplify *_setup() functions a bit.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/kernel/closure/bsdf_microfacet.h | 36 | ||||
-rw-r--r-- | intern/cycles/kernel/closure/bsdf_ward.h | 14 |
2 files changed, 11 insertions, 39 deletions
diff --git a/intern/cycles/kernel/closure/bsdf_microfacet.h b/intern/cycles/kernel/closure/bsdf_microfacet.h index d36c337854b..7ebb22e64a7 100644 --- a/intern/cycles/kernel/closure/bsdf_microfacet.h +++ b/intern/cycles/kernel/closure/bsdf_microfacet.h @@ -44,11 +44,8 @@ __device_inline float safe_sqrtf(float f) __device int bsdf_microfacet_ggx_setup(ShaderClosure *sc) { - float ag = sc->data0; - - float m_ag = clamp(ag, 0.0f, 1.0f); - - sc->data0 = m_ag; + sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* m_ag */ + sc->type = CLOSURE_BSDF_MICROFACET_GGX_ID; return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; @@ -56,14 +53,8 @@ __device int bsdf_microfacet_ggx_setup(ShaderClosure *sc) __device int bsdf_microfacet_ggx_refraction_setup(ShaderClosure *sc) { - float ag = sc->data0; - float eta = sc->data1; + sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* m_ag */ - float m_ag = clamp(ag, 0.0f, 1.0f); - float m_eta = eta; - - sc->data0 = m_ag; - sc->data1 = m_eta; sc->type = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; @@ -71,9 +62,7 @@ __device int bsdf_microfacet_ggx_refraction_setup(ShaderClosure *sc) __device void bsdf_microfacet_ggx_blur(ShaderClosure *sc, float roughness) { - float m_ag = sc->data0; - m_ag = fmaxf(roughness, m_ag); - sc->data0 = m_ag; + sc->data0 = fmaxf(roughness, sc->data0); /* m_ag */ } __device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) @@ -273,10 +262,7 @@ __device int bsdf_microfacet_ggx_sample(const ShaderClosure *sc, float3 Ng, floa __device int bsdf_microfacet_beckmann_setup(ShaderClosure *sc) { - float ab = sc->data0; - float m_ab = clamp(ab, 0.0f, 1.0f); - - sc->data0 = m_ab; + sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* m_ab */ sc->type = CLOSURE_BSDF_MICROFACET_BECKMANN_ID; return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; @@ -284,13 +270,7 @@ __device int bsdf_microfacet_beckmann_setup(ShaderClosure *sc) __device int bsdf_microfacet_beckmann_refraction_setup(ShaderClosure *sc) { - float ab = sc->data0; - float eta = sc->data1; - float m_ab = clamp(ab, 0.0f, 1.0f); - float m_eta = eta; - - sc->data0 = m_ab; - sc->data1 = m_eta; + sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* m_ab */ sc->type = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; @@ -298,9 +278,7 @@ __device int bsdf_microfacet_beckmann_refraction_setup(ShaderClosure *sc) __device void bsdf_microfacet_beckmann_blur(ShaderClosure *sc, float roughness) { - float m_ab = sc->data0; - m_ab = fmaxf(roughness, m_ab); - sc->data0 = m_ab; + sc->data0 = fmaxf(roughness, sc->data0); /* m_ab */ } __device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) diff --git a/intern/cycles/kernel/closure/bsdf_ward.h b/intern/cycles/kernel/closure/bsdf_ward.h index c95b0e3f7a0..71be1ad88bb 100644 --- a/intern/cycles/kernel/closure/bsdf_ward.h +++ b/intern/cycles/kernel/closure/bsdf_ward.h @@ -39,14 +39,8 @@ CCL_NAMESPACE_BEGIN __device int bsdf_ward_setup(ShaderClosure *sc) { - float ax = sc->data0; - float ay = sc->data1; - - float m_ax = clamp(ax, 1e-4f, 1.0f); - float m_ay = clamp(ay, 1e-4f, 1.0f); - - sc->data0 = m_ax; - sc->data1 = m_ay; + sc->data0 = clamp(sc->data0, 1e-4f, 1.0f); /* m_ax */ + sc->data1 = clamp(sc->data1, 1e-4f, 1.0f); /* m_ay */ sc->type = CLOSURE_BSDF_WARD_ID; return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; @@ -54,8 +48,8 @@ __device int bsdf_ward_setup(ShaderClosure *sc) __device void bsdf_ward_blur(ShaderClosure *sc, float roughness) { - sc->data0 = fmaxf(roughness, sc->data0); - sc->data1 = fmaxf(roughness, sc->data1); + sc->data0 = fmaxf(roughness, sc->data0); /* m_ax */ + sc->data1 = fmaxf(roughness, sc->data1); /* m_ay */ } __device float3 bsdf_ward_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) |