Page MenuHome

Viewport rendering isn't updating with changing of values of a material node group. but working if you change inside node group!
Closed, ResolvedPublic

Description

System Information
Windows 10 , Intel HD graphics (i3 1st gen)

Blender Version
Broken: 2.77 cc12fc1
Worked: 2.77 22a2853

Short description of error
It's not updating in the viewport when I change a value of the node! but when I go to object mode and then again to render mode it's working or if I change it inside the group it's also working..

see the image you will get it:
Thanks!

Event Timeline

Souvik Karmakar (souvik) raised the priority of this task from to 90.
Souvik Karmakar (souvik) updated the task description. (Show Details)
Souvik Karmakar (souvik) edited a custom field.

The reason this doesn't work is that the output node is included in the group. Since rB83824947ba40c31a480819072b6f0fb2e7029a59 nodes don't trigger a reset of the viewport render if they are "not connected to the output node", but the test for this condition only works on the top node level (so the group instance is not considered a used node).

IMO testing dependencies between nodes shouldn't really happen on the UI node level because of the complexity and potential non-standard behavior of connections (when is a socket connection actually "used"?). However, current Blender nodes lack an intermediate level between the UI nodes (bNodes in DNA) and the "machine code" of the renderer. Until this can be improved, the best solution would be just handling node groups as a special case i suppose.

@Souvik Karmakar (souvik): Please leave it to devs to assign a bug report to somebody. This is not really @Campbell Barton (campbellbarton)'s area anyway.

@Sergey Sharybin (sergey) I don't see an easy way to support node groups with this. The definition of "active output node" is shaky even in normal cases, but when you include it in a node group it becomes quite unpredictable which instance would be considered "active". I guess output nodes inside groups are just unsupported?

In future nodes i could imagine output nodes working more like node group outputs: The sockets on "global" output nodes for a graph would depend on the ntree context. In the top-level nodes you get the formal output parameters ("Material/Volume/Displacement" for cycles nodes). Inside node groups it would just should the respective group outputs, thus forcing you to always connect to the final output on the top level.

Lukas Tönne (lukastoenne) lowered the priority of this task from 90 to 50.Mar 21 2016, 9:33 AM

The reason this doesn't work is that the output node is included in the group. Since rB83824947ba40c31a480819072b6f0fb2e7029a59 nodes don't trigger a reset of the viewport render if they are "not connected to the output node", but the test for this condition only works on the top node level (so the group instance is not considered a used node).

IMO testing dependencies between nodes shouldn't really happen on the UI node level because of the complexity and potential non-standard behavior of connections (when is a socket connection actually "used"?). However, current Blender nodes lack an intermediate level between the UI nodes (bNodes in DNA) and the "machine code" of the renderer. Until this can be improved, the best solution would be just handling node groups as a special case i suppose.

@Souvik Karmakar (souvik): Please leave it to devs to assign a bug report to somebody. This is not really @Campbell Barton (campbellbarton)'s area anyway.

ah I didn't get what you said .. and for the last statement .. I don't really that much here so I don't know about which campbell's area..
is campbell only handle new addons? thanks :P

and btw .. it's working on the stable version... but not the latest build .. hope you already know it :p .. so it's not that problem.. but it should be fixed in next build .. thanks :3