AcademySoftwareFoundation / MaterialX

MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderers.
http://www.materialx.org/
Apache License 2.0
1.87k stars 353 forks source link

One node output driving multiple inputs updates only one #1415

Open zicher3d opened 1 year ago

zicher3d commented 1 year ago

See video below, using LookdevX (old version), MaterialX Viewer and Graph Editor, all loading the same attached MtlX file.

The Radius1 node drives the thickness of a few Lines. In LookdevX all works as expected. In Viewer and Graph Editor only one line updates when changing the Radius1 value. At load times and when a shader compilation is triggered all nodes are updated correctly. Something that can be done in the Editor but not the Viewer.

https://github.com/AcademySoftwareFoundation/MaterialX/assets/7254958/0a81bcc9-ee4d-4b51-8f97-335c94fc3756

Note that this file requires PR1411 When you open the file in Graph Editor the graph is in the upper-right corner, and you need to Zoom in. There are some disconnected nodes that are far away (other bug reported for that issue) [pat_herringbone2x6_test_GE01.zip] (https://github.com/AcademySoftwareFoundation/MaterialX/files/12074256/pat_herringbone2x6_test_GE01.zip)

zicher3d commented 1 year ago

Adding another test case for MaterialX 1.38.8 Not sure I am super-clear in the video. But basically this is what happens.

https://github.com/AcademySoftwareFoundation/MaterialX/assets/7254958/f5ba864d-8fc3-44b8-a84b-44671af95545

The graph GE_debug_switch.zip

zicher3d commented 1 year ago

The issue is not Graph Editor specific. The same happens in MaterialX Viewer.

https://github.com/AcademySoftwareFoundation/MaterialX/assets/7254958/37fdb82c-5611-4d1f-9570-f3571a5a23ee

zicher3d commented 1 year ago

I found another issue that is an older version of this one I believe https://github.com/AcademySoftwareFoundation/MaterialX/issues/779

Some interesting explanation in there and seems that if the graph is then converted to a functional graph (nodedef) it will work. It kind of confirm my suspicion that I have seen my stuff working at times, and that was probably when I was testing the nodedef version of it.