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:
authorMai Lavelle <mai.lavelle@gmail.com>2016-08-17 02:42:08 +0300
committerMai Lavelle <mai.lavelle@gmail.com>2016-09-02 05:44:42 +0300
commit9f1c42392e4ae8dfaa91ef8cc32119199ca7d723 (patch)
tree1efc93d7fc137b939e33827ae86a9b44e9b2d841 /intern/cycles/render/osl.cpp
parentf0159d1d48a141483f61b1ccc262f99016b63570 (diff)
Cycles: remove duplicate shader storage
Storing multiple copies of a shader was needed when the displacement method was a mesh option and could be different for each mesh. Now that its a shader option this is unnecessary. Reviewed By: brecht Differential Revision: https://developer.blender.org/D2156
Diffstat (limited to 'intern/cycles/render/osl.cpp')
-rw-r--r--intern/cycles/render/osl.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp
index 1a6ae5f9277..8d5e29579c2 100644
--- a/intern/cycles/render/osl.cpp
+++ b/intern/cycles/render/osl.cpp
@@ -1146,13 +1146,14 @@ void OSLCompiler::compile(Scene *scene, OSLGlobals *og, Shader *shader)
}
/* push state to array for lookup */
- og->surface_state.push_back(shader->osl_surface_ref);
- og->surface_state.push_back(shader->osl_surface_bump_ref);
+ if(shader->displacement_method == DISPLACE_TRUE || !shader->graph_bump) {
+ og->surface_state.push_back(shader->osl_surface_ref);
+ }
+ else {
+ og->surface_state.push_back(shader->osl_surface_bump_ref);
+ }
og->volume_state.push_back(shader->osl_volume_ref);
- og->volume_state.push_back(shader->osl_volume_ref);
-
- og->displacement_state.push_back(shader->osl_displacement_ref);
og->displacement_state.push_back(shader->osl_displacement_ref);
}