Fix for auto detect homogeneous volume with OSL, forgot to include this file in last commit.
This commit is contained in:
@@ -553,6 +553,10 @@ void OSLCompiler::add(ShaderNode *node, const char *name, bool isfilepath)
|
|||||||
current_shader->has_bssrdf_bump = true; /* can't detect yet */
|
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)
|
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;
|
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
|
else
|
||||||
nodes_done = false;
|
nodes_done = false;
|
||||||
@@ -799,6 +807,7 @@ void OSLCompiler::compile(OSLGlobals *og, Shader *shader)
|
|||||||
shader->has_bssrdf_bump = false;
|
shader->has_bssrdf_bump = false;
|
||||||
shader->has_volume = false;
|
shader->has_volume = false;
|
||||||
shader->has_displacement = false;
|
shader->has_displacement = false;
|
||||||
|
shader->has_heterogeneous_volume = false;
|
||||||
|
|
||||||
/* generate surface shader */
|
/* generate surface shader */
|
||||||
if(shader->used && graph && output->input("Surface")->link) {
|
if(shader->used && graph && output->input("Surface")->link) {
|
||||||
|
Reference in New Issue
Block a user