diff options
Diffstat (limited to 'intern/cycles/scene/object.cpp')
-rw-r--r-- | intern/cycles/scene/object.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/intern/cycles/scene/object.cpp b/intern/cycles/scene/object.cpp index fda9a211e60..9b19169880a 100644 --- a/intern/cycles/scene/object.cpp +++ b/intern/cycles/scene/object.cpp @@ -90,6 +90,9 @@ NODE_DEFINE(Object) SOCKET_BOOLEAN(is_shadow_catcher, "Shadow Catcher", false); + SOCKET_BOOLEAN(is_caustics_caster, "Cast Shadow Caustics", false); + SOCKET_BOOLEAN(is_caustics_receiver, "Receive Shadow Caustics", false); + SOCKET_NODE(particle_system, "Particle System", ParticleSystem::get_node_type()); SOCKET_INT(particle_index, "Particle Index", 0); @@ -510,6 +513,14 @@ void ObjectManager::device_update_object_transform(UpdateObjectTransformState *s kobject.visibility = ob->visibility_for_tracing(); kobject.primitive_type = geom->primitive_type(); + /* Object shadow caustics flag */ + if (ob->is_caustics_caster) { + flag |= SD_OBJECT_CAUSTICS_CASTER; + } + if (ob->is_caustics_receiver) { + flag |= SD_OBJECT_CAUSTICS_RECEIVER; + } + /* Object flag. */ if (ob->use_holdout) { flag |= SD_OBJECT_HOLDOUT_MASK; |