diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-09-12 17:13:56 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-09-12 17:13:56 +0400 |
commit | ebc653463ddfd9f8b893b6acbcc6465972e6abc6 (patch) | |
tree | 6b3cc2ba3f04994cf9f8d8f5bca6d63cfe2c9d1f /intern/cycles/kernel/svm/bsdf_ward.h | |
parent | c40492205b4369de3babe63b43d127ca622773ec (diff) |
Cycles:
* Fix missing update when editing objects with emission materials.
* Fix preview pass rendering set to 1 not showing full resolution.
* Fix CUDA runtime compiling failing due to missing cache directory.
* Use settings from first render layer for visibility and material override.
And a bunch of incomplete and still disabled code mostly related to closure
sampling.
Diffstat (limited to 'intern/cycles/kernel/svm/bsdf_ward.h')
-rw-r--r-- | intern/cycles/kernel/svm/bsdf_ward.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/intern/cycles/kernel/svm/bsdf_ward.h b/intern/cycles/kernel/svm/bsdf_ward.h index 18967b3981e..d46baf099a6 100644 --- a/intern/cycles/kernel/svm/bsdf_ward.h +++ b/intern/cycles/kernel/svm/bsdf_ward.h @@ -44,28 +44,28 @@ typedef struct BsdfWardClosure { float m_ay; } BsdfWardClosure; -__device void bsdf_ward_setup(ShaderData *sd, float3 N, float3 T, float ax, float ay) +__device void bsdf_ward_setup(ShaderData *sd, ShaderClosure *sc, float3 T, float ax, float ay) { float m_ax = clamp(ax, 1e-5f, 1.0f); float m_ay = clamp(ay, 1e-5f, 1.0f); - sd->svm_closure_data0 = m_ax; - sd->svm_closure_data1 = m_ay; + sc->data0 = m_ax; + sc->data1 = m_ay; - sd->svm_closure = CLOSURE_BSDF_WARD_ID; + sc->type = CLOSURE_BSDF_WARD_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; } -__device void bsdf_ward_blur(ShaderData *sd, float roughness) +__device void bsdf_ward_blur(ShaderClosure *sc, float roughness) { - sd->svm_closure_data0 = fmaxf(roughness, sd->svm_closure_data0); - sd->svm_closure_data1 = fmaxf(roughness, sd->svm_closure_data1); + sc->data0 = fmaxf(roughness, sc->data0); + sc->data1 = fmaxf(roughness, sc->data1); } -__device float3 bsdf_ward_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_ward_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { - float m_ax = sd->svm_closure_data0; - float m_ay = sd->svm_closure_data1; + float m_ax = sc->data0; + float m_ay = sc->data1; float3 m_N = sd->N; float3 m_T = normalize(sd->dPdu); @@ -93,20 +93,20 @@ __device float3 bsdf_ward_eval_reflect(const ShaderData *sd, const float3 I, con return make_float3 (0, 0, 0); } -__device float3 bsdf_ward_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_ward_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float bsdf_ward_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_ward_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_ward_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_ward_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - float m_ax = sd->svm_closure_data0; - float m_ay = sd->svm_closure_data1; + float m_ax = sc->data0; + float m_ay = sc->data1; float3 m_N = sd->N; float3 m_T = normalize(sd->dPdu); |