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:
authorDalai Felinto <dfelinto@gmail.com>2017-11-15 17:08:59 +0300
committerDalai Felinto <dfelinto@gmail.com>2017-11-22 12:13:33 +0300
commitd276e45ee6c2ae6d67177552f4c5f27cd99bdd83 (patch)
tree890c5e98fa2512a1d5946a3738ef73beac4443f5 /source/blender/blenloader/intern
parente22ca0fb860ed945eb3438bfe6dba8040cfd7cf3 (diff)
SceneRenderLayer > SceneLayer: Convert Z-Mask
Note: Cycles still need to implement the per-object holdout (similar to how we do shadow catcher).
Diffstat (limited to 'source/blender/blenloader/intern')
-rw-r--r--source/blender/blenloader/intern/versioning_280.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index f6801d22a53..44ce2014e99 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -330,9 +330,14 @@ void do_versions_after_linking_280(Main *main)
/* Add new collection bases. */
for (int layer = 0; layer < 20; layer++) {
- if ((scene->lay & (1 << layer)) &&
- (srl->lay & (1 << layer)) &&
- ((srl->lay_exclude & (1 << layer)) == 0))
+ if ((
+ (scene->lay & (1 << layer)) &&
+ (srl->lay & (1 << layer)) &&
+ ((srl->lay_exclude & (1 << layer)) == 0)) ||
+ (
+ (srl->lay_zmask & (1 << layer)) &&
+ ((scene->lay | srl->lay_exclude) & (1 << layer)))
+ )
{
if (collections[DO_VERSION_COLLECTION_VISIBLE].created & (1 << layer)) {
@@ -340,6 +345,14 @@ void do_versions_after_linking_280(Main *main)
layer_collection_parent = BKE_collection_link(scene_layer,
collections[DO_VERSION_COLLECTION_VISIBLE].collections[layer]);
+ if (srl->lay_zmask & (1 << layer)) {
+ BKE_override_layer_collection_boolean_add(
+ layer_collection_parent,
+ ID_OB,
+ "cycles.is_holdout",
+ true);
+ }
+
LayerCollection *layer_collection_child;
layer_collection_child = layer_collection_parent->layer_collections.first;
@@ -350,6 +363,7 @@ void do_versions_after_linking_280(Main *main)
if (collections[j].flag_render & COLLECTION_DISABLED) {
BKE_collection_disable(scene_layer, layer_collection_child);
}
+
layer_collection_child = layer_collection_child->next;
}
}