diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-04-04 15:20:46 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-04-05 16:49:50 +0400 |
commit | cb0520f79a7a2babd4c4a4f0d075c0d289b2a2f0 (patch) | |
tree | a694b494499b0439576ad0a292bf6dea248163a6 | |
parent | 2a82b8ade50836e186a78d3b52362cb8c59f3a39 (diff) |
Fix for auto detect homogeneous volume with OSL, forgot to include this file in last commit.
-rw-r--r-- | intern/cycles/render/osl.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp index b64a9e7aed3..94866102f60 100644 --- a/intern/cycles/render/osl.cpp +++ b/intern/cycles/render/osl.cpp @@ -553,6 +553,10 @@ void OSLCompiler::add(ShaderNode *node, const char *name, bool isfilepath) current_shader->has_bssrdf_bump = true; /* can't detect yet */ } } + else if(current_type == SHADER_TYPE_VOLUME) { + if(node->has_spatial_varying()) + current_shader->has_heterogeneous_volume = true; + } } void OSLCompiler::parameter(const char *name, float f) @@ -719,6 +723,10 @@ void OSLCompiler::generate_nodes(const set<ShaderNode*>& nodes) current_shader->has_bssrdf_bump = true; } } + else if(current_type == SHADER_TYPE_VOLUME) { + if(node->has_spatial_varying()) + current_shader->has_heterogeneous_volume = true; + } } else nodes_done = false; @@ -799,6 +807,7 @@ void OSLCompiler::compile(OSLGlobals *og, Shader *shader) shader->has_bssrdf_bump = false; shader->has_volume = false; shader->has_displacement = false; + shader->has_heterogeneous_volume = false; /* generate surface shader */ if(shader->used && graph && output->input("Surface")->link) { |