diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-06-08 14:46:12 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-06-14 15:49:57 +0400 |
commit | b12151eceb76cab4a49f9df661ce6156bbeaaa21 (patch) | |
tree | c2815e24e4bc45e840efc6ff1069684c5c4a3049 /intern/cycles/render | |
parent | ceb68e809edf37ea3fd010692dc3f4367b78cf61 (diff) |
Cycles: glossy and anisotropic BSDF changes
* Anisotropic BSDF now supports GGX and Beckmann distributions, Ward has been
removed because other distributions are superior.
* GGX is now the default distribution for all glossy and anisotropic nodes,
since it looks good, has low noise and is fast to evaluate.
* Ashikhmin-Shirley is now available in the Glossy BSDF.
Diffstat (limited to 'intern/cycles/render')
-rw-r--r-- | intern/cycles/render/nodes.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 8976f958b58..c3aef362428 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1585,21 +1585,23 @@ void BsdfNode::compile(OSLCompiler& compiler) /* Anisotropic BSDF Closure */ -static ShaderEnum anisotropic_distribution_init() +static ShaderEnum aniso_distribution_init() { ShaderEnum enm; - enm.insert("Ward", CLOSURE_BSDF_WARD_ID); - enm.insert("Ashikhmin-Shirley", CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID); + enm.insert("Sharp", CLOSURE_BSDF_REFLECTION_ID); + enm.insert("Beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_ANISO_ID); + enm.insert("GGX", CLOSURE_BSDF_MICROFACET_GGX_ANISO_ID); + enm.insert("Ashikhmin-Shirley", CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ANISO_ID); return enm; } -ShaderEnum AnisotropicBsdfNode::distribution_enum = anisotropic_distribution_init(); +ShaderEnum AnisotropicBsdfNode::distribution_enum = aniso_distribution_init(); AnisotropicBsdfNode::AnisotropicBsdfNode() { - distribution = ustring("Ward"); + distribution = ustring("GGX"); add_input("Tangent", SHADER_SOCKET_VECTOR, ShaderInput::TANGENT); @@ -1642,6 +1644,7 @@ static ShaderEnum glossy_distribution_init() enm.insert("Sharp", CLOSURE_BSDF_REFLECTION_ID); enm.insert("Beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_ID); enm.insert("GGX", CLOSURE_BSDF_MICROFACET_GGX_ID); + enm.insert("Ashikhmin-Shirley", CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID); return enm; } @@ -1650,7 +1653,7 @@ ShaderEnum GlossyBsdfNode::distribution_enum = glossy_distribution_init(); GlossyBsdfNode::GlossyBsdfNode() { - distribution = ustring("Beckmann"); + distribution = ustring("GGX"); add_input("Roughness", SHADER_SOCKET_FLOAT, 0.2f); } |