diff options
Diffstat (limited to 'intern/cycles/render/shader.cpp')
-rw-r--r-- | intern/cycles/render/shader.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp index 8f2030c6fe9..332599be708 100644 --- a/intern/cycles/render/shader.cpp +++ b/intern/cycles/render/shader.cpp @@ -16,6 +16,7 @@ #include "device/device.h" +#include "render/alembic.h" #include "render/background.h" #include "render/camera.h" #include "render/colorspace.h" @@ -513,6 +514,21 @@ void ShaderManager::update_shaders_used(Scene *scene) if (scene->background->get_shader()) scene->background->get_shader()->used = true; +#ifdef WITH_ALEMBIC + foreach (Procedural *procedural, scene->procedurals) { + AlembicProcedural *abc_proc = static_cast<AlembicProcedural *>(procedural); + + foreach (Node *abc_node, abc_proc->get_objects()) { + AlembicObject *abc_object = static_cast<AlembicObject *>(abc_node); + + foreach (Node *node, abc_object->get_used_shaders()) { + Shader *shader = static_cast<Shader *>(node); + shader->used = true; + } + } + } +#endif + foreach (Geometry *geom, scene->geometry) foreach (Node *node, geom->get_used_shaders()) { Shader *shader = static_cast<Shader *>(node); |