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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2014-06-08 14:46:12 +0400
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2014-06-14 15:49:57 +0400
commitb12151eceb76cab4a49f9df661ce6156bbeaaa21 (patch)
treec2815e24e4bc45e840efc6ff1069684c5c4a3049 /intern/cycles/render
parentceb68e809edf37ea3fd010692dc3f4367b78cf61 (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.cpp15
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);
}