-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CE-6909: Serlio: Arnold Renderer Support #25
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good work, just found some minor things
Please avoid the "TODO" in the code and write new issues instead
Q: what is the expected behavior if you create arnold materials on a model which already has stingray materials? (arnold just renders pink in my experiment)
4c93272
to
98020eb
Compare
Thanks for the review! I addressed all the comments and also fixed some more issues I found:
I removed all the TODOs and created individual issues for them. Currently, you can only create either Stingray materials or Arnold materials for a particular model. Mixing the two (i.e. creating Arnold materials when there already are Stingray materials or vice-versa) is undefined behavior and likely not to work. In the worst case it might even mess up the existing materials. |
6daa10b
to
1c56c70
Compare
looks good & ready to merge. if you still have time there are two things in ArnoldMaterialNode::buildMaterialShaderScript you could maybe spend 1-2 hours on:
|
Functional Issue:
|
…ng double vectors
…018 API MPlugArray only provides STL compliant iterators starting from Maya 2019 API. The wrapper adds this functionality for the Maya 2018 API and provides helper functions to target both APIs in a uniform manner.
…ormal map instead of displacement
1c56c70
to
200f4cb
Compare
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please investigate and fix the material assignment bug described above.
Here is a new maya scene without materials assigned, simply create arnold materials and the bug should be visible:
favela_3_multple_lots_no_materials.mb.zip
…rnold material These parts were originally copied from PRTMaterialNode.
…ers having the same name The logic for making our shader names unique relies on the compute method of the arnold material node seeing all the other existing nodes in the scene. However, since the compute method of several nodes can be executed in parallel, two or more arnold material nodes may compute the same 'unique' name for their shaders, thereby breaking uniqueness. To fix this issue, we explicitely set the scheduling type of the arnold material node as globally sequential node. Moreover, the assembled MEL script is executed asynchronously. We specifically execute the creation of the shader node synchronously such that the compute method of following arnold material node updates is guaranteed to see these nodes and consider them for finding unique node names. However, this is fragile and may be a source of errors, since the method used is not thread safe.
favela test with multiple buildings works fine now. |
Reasonably complete initial support for Arnold materials with PRT.
Note: this PR depends on PR #24.