Graph Description Explicit Connections can not work in 3rd-renderer (Arnold).
-
Hey community,
I am working on something with GraphDescription, but seems I can not use explicit connection with Arnold, but Redshift and VRay worked as I want.
I know 3rd is not full supported, but is this a problem with SDK design or Arnold's lack of adaptation, should I ask to Arnold dev?
I tried match label/id/lazy id, but none of them work.btw: The notification and sorting of the forum have not been fixed yet. I have also tested it on a new computer and browser
Cheers~
DunHouthis is want I want:
Code:
import maxon desc = { "$type": "#~.material", "#<shader": { "$type": "#~.standard_surface", "#<base_color": { "$type": "#~.image", "#<filename": maxon.Url("asset:///file_2e316c303b15a330"), "#<multiply -> #>output.r": { "$type": "#~.image", "#<filename": maxon.Url("asset:///file_2e316c303b15a330") } } } } maxon.GraphDescription.ApplyDescription( maxon.GraphDescription.GetGraph(name="test"), desc)
-
Hey @Dunhou,
You are talking about the
"#<multiply -> #>output.r"
part, right? What is the error output of theApplyDescription
call? Graph descriptions are usually very verbose in what is going wrong and tell you why something is not working.Have you tried absolute (i.e., non-lazy) paths and turning off validateAbsolutePaths with that you can basically force graph descriptions to always work in the addressing part, because it completely turns off all cache evaluation. I never tested graph descriptions with Arnold, it could be that they do something super unusual with their nodes, but at face value that image node looks pretty normal.
As you know third party APIs are formally out of scope of support, and checking this will take some time. But I will try to give it a look, but this will only be post release, as I currently absolutely blasted with work, and I would first also have to request a license, as we do not have Arnold licenses out of the box in our SDK software pool. So, this would probably happen around end of September. Please tell me explicitly if you will need help or not with this.
btw: The notification and sorting of the forum have not been fixed yet. I have also tested it on a new computer and browser
In what capacity? Have you tried resetting your browser cache? That sounds all bit mysterious. What happend with the forum rollback, is that all the nodebb sessions were invalidated. But that should have rectified itself the latest after seven days. Can you show us your console output?
Cheers,
Ferdinand -
Hey @ferdinand,
Thanks for your tips! Disabled validateAbsolutePaths with lazy paths can also work in this case, but if you interested, here is the console without disabled:
I know third party APIs are not supported, just want to know if it is possible due to Arnold. It looks like it is due to my poor knowledge
And as I know, Arnold has demo plugin that only has watermark on render, I use the demo to create plugins and it it worked as same as the full version.
Cheers~
DunHouTraceback (most recent call last): File "scriptmanager", line 19, in <module> File "C:\Program Files\Maxon Cinema 4D 2025\resource\modules\python\libs\python311\maxon\frameworks\nodes.py", line 548, in ApplyDescription res: DataDictionary = GraphDescription._ApplyDescription( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Maxon Cinema 4D 2025\resource\modules\python\libs\python311\maxon\decorators.py", line 495, in Auto ExecStaticMethod(*args) RuntimeError: The node attribute reference '>output.r' (space: 'com.autodesk.arnold.nodespace', lang: 'en-US', node: 'com.autodesk.arnold.shader.image') is not associated with any IDs. [graphdescription_impl.cpp(2003)] In: { <- Error in this scope -> $type: #~.image #<filename: asset:///file_2e316c303b15a330 #<multiply -> #>output.r: { $type: #~.image #<filename: asset:///file_2e316c303b15a330 } } [graphdescription_impl.cpp(203)]
I test on a brand new Macbook, and refresh my PC browser, and try to use private mode. None of them worked, but the notification of my question does show in the Ring icon, but the sort does not work. not sure about
UNREAD
, but I do miss the recent topic.
-
Hey DunHou,
the error is a bit different one as I would have expected. It also seems to treat
'>output.r'
as a reference and not as an ID. I will have to take a look what is going wrong there, this does not look right.This could be an edge case of what is also happening for standard. Vectors are not actually exposed data types for which you could find data descriptions in a data description database. So, the information the data type
Vector
has there componentsx
,y
, andz
and the datatypeColorA
has the componentsr
,g
,b
, anda
cannot be evaluated in this manner. But the Standard renderer has add custom code which decomposes all its color ports into color port bundles of the formColor {r, g, b}
. When then the API is caching the graph description lookup, it only sees that outer Color port parent, but not its bundle children{r, g, b}
which are added at runtime. Which is exactly why I addedvalidateAbsolutePaths
, so that you can forcibly side step the cache. Because even if you use explicit IDs, graph descriptions check under the hood if what you wrote makes sense (to avoid cryptic errors or worse - something failing silently).But what is Arnold is doing there is not a port bundle but just four ports next to each other. But maybe they do something similar like Standard where they dynamically create ports at runtime outside of the 'normal' bounds of a variadic port (where dynamic ports are expected and somewhat predictable).
I will have a look when I have time. What you could do, is check the resource of the Arnold image node in the resource editor. When you cannot see there the
r
output port, it means it is irregularly added at runtime, and therefore cannot be cached or predicted. Maybe @peter_horvath knows more?Or there could of course also just be a bug in how graph descriptions handle explicit output port references.
Regarding the forum, the errors you have there are 'normal', it is just the emoji plugin of NoddeBB. And you have no notifications at all? I.e., this here?
My daily driver is Edge, and there it works on Win, MacOS, and Linux for me. I also checked on Safari and FF and it seems to work there too.
But these broken notifications are a common NodeBB problem, and are usually tied to dangling sessions. But I have not seen a case as persistent as yours before. You could try to go
User Icon > Settings > Three Dots > Login Sessions
and there manually revoke all your sessions.On top of that you can try to either completely delete the browser cache for developers.maxon.net or just force the site rebuilding it py pressing CTRL + F5 or similar key combos.
-
Hey @ferdinand ,
thanks for details.
Cheers~
DunHou
About forum, I can get notification about my own topic, And I clear all the cache, but nothing changed.
After I tried to reset my account settings manually, then it worked as expected.