diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-03 20:06:37 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-03 20:08:34 +0400 |
commit | eff3bd4e9880efc0c767e3098baa86ab23d77bc7 (patch) | |
tree | 8497aae6c0065ac50d13fcc301aeea6457ed94f1 /intern/cycles/kernel/svm/svm_fresnel.h | |
parent | 8b1731e13dcd0d9ef98520f62fe0c841218bfd00 (diff) |
Fix T38439: allow IOR in range [0, inf] instead of [1, inf] in Cycles.
The same can be achieved by flipping normals on the mesh, but it can be
convenient to do this in the shader.
Diffstat (limited to 'intern/cycles/kernel/svm/svm_fresnel.h')
-rw-r--r-- | intern/cycles/kernel/svm/svm_fresnel.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/intern/cycles/kernel/svm/svm_fresnel.h b/intern/cycles/kernel/svm/svm_fresnel.h index 0a3d576cfe1..5def52205eb 100644 --- a/intern/cycles/kernel/svm/svm_fresnel.h +++ b/intern/cycles/kernel/svm/svm_fresnel.h @@ -25,7 +25,7 @@ ccl_device void svm_node_fresnel(ShaderData *sd, float *stack, uint ior_offset, float eta = (stack_valid(ior_offset))? stack_load_float(stack, ior_offset): __uint_as_float(ior_value); float3 normal_in = stack_valid(normal_offset)? stack_load_float3(stack, normal_offset): sd->N; - eta = fmaxf(eta, 1.0f + 1e-5f); + eta = fmaxf(eta, 1e-5f); eta = (sd->flag & SD_BACKFACING)? 1.0f/eta: eta; float f = fresnel_dielectric_cos(dot(sd->I, normal_in), eta); |