Maniphest T103497

Cryptomatte Node forgets active Scene when switching pass source
Confirmed, NormalKNOWN ISSUE

Assigned To
None
Authored By
Kevin C. Burke (blastframe)
Dec 27 2022, 8:27 PM
Tags
  • BF Blender
  • Nodes & Physics
Subscribers
Iliya Katueshenock (Moder)
Jeroen Bakker (jbakker)
Kevin C. Burke (blastframe)

Description

System Information
Operating system: Windows-10-10.0.22621-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 3090/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 527.56

Blender Version
Broken: version: 3.5.0 Alpha, branch: UI-Changes (modified), commit date: 2022-12-27 03:41, hash: rBcb56a9980f7c
Worked: N/A

Short description of error
When switching the Source of the Cryptomatte node, Blender forgets the active Scene.

Exact steps for others to reproduce the error

  1. Create a Cryptomatte node (the Active Scene will populate the Render tab's source)
  2. Switch the Cryptomatte node's source to Image
  3. Switch the Cryptomatte node's source back to Render

The active Scene will be forgotten.

Event Timeline

Kevin C. Burke (blastframe) created this task.Dec 27 2022, 8:27 PM
Iliya Katueshenock (Moder) changed the task status from Needs Triage to Needs Information from Developers.Dec 27 2022, 8:46 PM
Iliya Katueshenock (Moder) added a project: Nodes & Physics.
Iliya Katueshenock (Moder) changed the subtype of this task from "Report" to "Bug".
Iliya Katueshenock (Moder) added a subscriber: Iliya Katueshenock (Moder).

I see little strange for me that node->id can contain Image * and Scene * at same time

Iliya Katueshenock (Moder) changed the subtype of this task from "Bug" to "Report".Dec 27 2022, 8:50 PM
Jeroen Bakker (jbakker) added a subscriber: Jeroen Bakker (jbakker).Dec 27 2022, 11:20 PM

This is a limitation of the node system. Can be improved by storing it in another field, but that has other limitations. Eg both the image and scene would have a user what affects data management tasks.

Think current solution is better as it is clear to user what the current state is. Other solution it would hide state from user which is bad design wise

Iliya Katueshenock (Moder) added a comment.EditedDec 28 2022, 6:21 AM

Still, this choice seems a little strange.
A similar problem, it seems that it is the user systems, but not the nodes, that is for sockets values: T101615: Geometry Nodes Object Group input does not remove dependencies
I think it makes sense to consider this solution a known issue, since deleting user data doesn't seem to be something user want to have.
Also, I'm not sure how, but is it possible to delegate the input of this as a separate node, so that the choice of type (picture, scene) would be more obvious to the user, like different nodes with their different data entered into the cryptomat?

Iliya Katueshenock (Moder) added a comment.Tue, Jan 24, 9:47 AM

Basically, I was interested in asking some questions about this topic, according to the report, as it seems to function a bit unreliably now.

Jeroen Bakker (jbakker) changed the subtype of this task from "Report" to "Known Issue".EditedTue, Jan 24, 12:15 PM

Agree that is it is strange and yes it should be tagged as a known issue. Note that there was no decision that lead to this choice, it is a legacy part of the node-system data structure that lead to this limitation. In order to solve it the legacy part should be fixed. But that is a project on its own.

The legacy part is that if a node using an ID block it has to keep track of the ID block in a generic part accessible by other functionality that might want to alter it. This makes the data not context sensitive and can lead to undesired workflows. Currently there is only a single storage for ID blocks in the generic part. Which is overwritten when switching the source.

A work-around, would be to store multiple ID's in the generic part of the node, but that extends legacy code which we want to get rid of.

If you have questions, you can always ask! I am happy to clarify and in the mean time understand those legacy choices to come with a possible solution.

Jeroen Bakker (jbakker) changed the task status from Needs Information from Developers to Confirmed.Tue, Jan 24, 12:17 PM