Doversion: We should always add the old RenderLayer
We cannot assume a render layer does not have a setting that was needed for compositing. Even if: ``` (scene->lay & render_layer->lay) != (scene_lay) && (render_layer->lay | render_layer->lay_exclude) == 0)) ``` Which would mean use the scene layers just as they are.
This commit is contained in:
parent
cb67be3f22
commit
0a6df6b173
|
@ -324,45 +324,43 @@ void do_versions_after_linking_280(Main *main)
|
|||
(ID *)srl->mat_override);
|
||||
}
|
||||
|
||||
if (srl->lay != scene->lay) {
|
||||
/* unlink master collection */
|
||||
BKE_collection_unlink(scene_layer, scene_layer->layer_collections.first);
|
||||
/* unlink master collection */
|
||||
BKE_collection_unlink(scene_layer, scene_layer->layer_collections.first);
|
||||
|
||||
/* Add new collection bases. */
|
||||
for (int layer = 0; layer < 20; layer++) {
|
||||
if ((scene->lay & srl->lay & ~(srl->lay_exclude) & (1 << layer)) ||
|
||||
(srl->lay_zmask & (scene->lay | srl->lay_exclude) & (1 << layer)))
|
||||
{
|
||||
if (collections[DO_VERSION_COLLECTION_VISIBLE].created & (1 << layer)) {
|
||||
/* Add new collection bases. */
|
||||
for (int layer = 0; layer < 20; layer++) {
|
||||
if ((scene->lay & srl->lay & ~(srl->lay_exclude) & (1 << layer)) ||
|
||||
(srl->lay_zmask & (scene->lay | srl->lay_exclude) & (1 << layer)))
|
||||
{
|
||||
if (collections[DO_VERSION_COLLECTION_VISIBLE].created & (1 << layer)) {
|
||||
|
||||
LayerCollection *layer_collection_parent;
|
||||
layer_collection_parent = BKE_collection_link(scene_layer,
|
||||
collections[DO_VERSION_COLLECTION_VISIBLE].collections[layer]);
|
||||
LayerCollection *layer_collection_parent;
|
||||
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;
|
||||
|
||||
for (int j = 1; j < 4; j++) {
|
||||
if (collections[j].created & (1 << layer)) {
|
||||
layer_collection_child->flag = collections[j].flag_render & (~COLLECTION_DISABLED);
|
||||
|
||||
if (collections[j].flag_render & COLLECTION_DISABLED) {
|
||||
BKE_collection_disable(scene_layer, layer_collection_child);
|
||||
}
|
||||
|
||||
layer_collection_child = layer_collection_child->next;
|
||||
}
|
||||
}
|
||||
BLI_assert(layer_collection_child == NULL);
|
||||
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;
|
||||
|
||||
for (int j = 1; j < 4; j++) {
|
||||
if (collections[j].created & (1 << layer)) {
|
||||
layer_collection_child->flag = collections[j].flag_render & (~COLLECTION_DISABLED);
|
||||
|
||||
if (collections[j].flag_render & COLLECTION_DISABLED) {
|
||||
BKE_collection_disable(scene_layer, layer_collection_child);
|
||||
}
|
||||
|
||||
layer_collection_child = layer_collection_child->next;
|
||||
}
|
||||
}
|
||||
BLI_assert(layer_collection_child == NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue