Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2013-05-11 02:41:24 +0400
committerThomas Dinges <blender@dingto.org>2013-05-11 02:41:24 +0400
commit4ae201e105410df8df27bbe68bf7abc6ac3e49a0 (patch)
tree7644227426adfa990b22b76f57883885eef0ef33 /intern/cycles
parent3e1e76a2c1f711b4888cb6e82892f6c765b21fef (diff)
Cycles / Closures:
* Avoid some unnecessary re-declarations of closure data and simplify *_setup() functions a bit.
Diffstat (limited to 'intern/cycles')
-rw-r--r--intern/cycles/kernel/closure/bsdf_microfacet.h36
-rw-r--r--intern/cycles/kernel/closure/bsdf_ward.h14
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)