We use referencing with scenes that already have render layers and passes set up in the source files, including lots of render elements and multimatte passes. I have noticed that these scenes often reference into another file with a different on/off activation on the render elements than they have in the source file. Since it's not possible to lock render elements or otherwise force them this is a pretty big problem for us. We often have multiple assets referenced into a scene, all with their own render layers and collections of render elements that need to be specifically activated or not on a per-layer basis. Is there some workaround or other way of dealing with this issue?
Announcement
Collapse
No announcement yet.
Render element activation in referenced files
Collapse
X
-
To start off I think its really a maya limitation rather then vray / render elements. Since render layers cannot be referenced and treated like other referenced objects in maya. One way (old school) is to merge render layers into the scene. Then it preserves the render layer overrides, but it breaks really fast if you have many render layers and start modifying on top of them.
What we usually do though is create render elements per assets and bind them to main control since its just an on/off state. And you usually have 2-3 different set of render elements. Once referenced into main scene you can then layer override the main control switch to enable / disable those render elements.
If you plan on having many render layers and render element states its better to script their building which is also what we do to save time if its a repeating task.Dmitry Vinnik
Silhouette Images Inc.
ShowReel:
https://www.youtube.com/watch?v=qxSJlvSwAhA
https://www.linkedin.com/in/dmitry-v...-identity-name
-
Merging/importing into the scene would defeat the purpose of our workflow. When you say you bind them do you mean creating custom attributes on a controller of some sort and connecting those to each render element's state? That's an interesting idea, and actually got me digging around. Found the enable attr. in the AE for each render element. Setting an explicit layer override for each render element in here and then locking it might work. I'll investigate this.
Comment
-
yeah like we create a node char_CTRL and add user boolean attributes to it for each group of render elements. Usually we only carry asset specific elements along with the asset, like texture ids, multimattes etc. We then create user attribute for the char_CTRL - enableAstIds (for example) and connect that control to all the ones which we need enabled later on.
Once referenced into lighting scene user can layer override char_CTRL node and affect all the render elements at once. Also if you need to add or disable elements in the char node its easy to connect them to this existing attribute or disconnect them.
We also create one empty scene with all main render elements such as used to build beauty pass, I usually split it into two primary and secondary. Where primary is all beauty related and secondary is all utility related and we render those at separate layers. Then in the main assembly file (for lighting) all that get referenced in and enabled as user needs it per render layer.Dmitry Vinnik
Silhouette Images Inc.
ShowReel:
https://www.youtube.com/watch?v=qxSJlvSwAhA
https://www.linkedin.com/in/dmitry-v...-identity-name
Comment
-
Worth investigating, thanks for the tip. It's so easy to find after a render that you have a pass toggled off by accident, especially when referencing and the states get switched. A master switch for all beauty or all utility etc. is a cleaner approach. It would be nice if Vray had a folder system or something similar, like Photoshop, where you could group elements. At the moment unless I'm missing something you can't even visually reorder them and they are listed in the order of creation, which can cause some very unintuitive listing orders. I would create a template as you suggest, but all our assets are pretty mature with a variety of sampling settings, layer overrides on elements etc. which would all be lost if I did that now.
Comment
Comment