From cb0520f79a7a2babd4c4a4f0d075c0d289b2a2f0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 4 Apr 2014 13:20:46 +0200 Subject: [PATCH] Fix for auto detect homogeneous volume with OSL, forgot to include this file in last commit. --- intern/cycles/render/osl.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) 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& 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) {