4
$\begingroup$

I've been a casual Blender user for some time now. Really enjoying the progress in 2.8, and use this now over maya for most modeling needs, and would love to ditch autodesk altogether, but there are some serious limitations. First on the list to make this a viable replacement for a team such as ours are some questions related to the view layers.

Maya refers to these as render layers, and a core feature of a render layer is the ability to override ANY node, object, material, or light properties on a per render layer basis.

One common usage of this workflow would be to override the material to alter output (ie change it entirely, not just an aov, not a shadow catcher, and not overriding all materials on all objects at once). I've seen nothing covering this kind of workflow in Blender. This goes well beyond the holdout / indirect toggles allowed in the outliner, And the only way I can see to do this (since materials are linked to mesh or object data only) is to link to object, then duplicate the object (even if the mesh is instanced), and this is still far from ideal.

Thanks for any guidance.

$\endgroup$
3
  • 1
    $\begingroup$ I think it would be helpful for others if you would rename your question to something like "Does Blender have render layers like Maya for material overrides etc.?" $\endgroup$
    – TeeTrinker
    Oct 1, 2019 at 23:59
  • 1
    $\begingroup$ I have a bunch of things that more broadly fall under this category, but since this deals with the materials I've changed the title to reflect that... Thanks $\endgroup$
    – sannyasi
    Oct 2, 2019 at 17:47
  • $\begingroup$ That is the answer in how to override all objects and exclude some from the override youtu.be/FiiizezgNAc $\endgroup$ Jun 15, 2021 at 5:34

3 Answers 3

5
$\begingroup$

Actually Blender is pretty great at Render Layers:

view layers in Blender

  • you have collections which is kind of like a supercharged group (one object can be in multiple collections, collections can be instanced in other scenes, like Maya's references)
  • you have view layers, which can contain collections can set which passes to render, to override materials etc. (this is render engine specific, I'm referring to Cycles here, Eevee doesn't support that)

You can read more about it in the Blender manual on view layers

$\endgroup$
4
  • $\begingroup$ Thanks for the reply TeeTrinker, but this is not an answer to my question. The override needs to be on a per object basis, not for an entire layer... otherwise you'd have numberOfObjects * numberOfPasses viewLayers, and sometimes they still need to interact with each other. The Blender Today stream I watched yesterday shed some light on this matter, dealing with overrides of attributes, and basically they might in some limited way be available in 2.81 :( $\endgroup$
    – sannyasi
    Oct 2, 2019 at 17:40
  • $\begingroup$ Sorry if I misunderstood, but even after reading your initial question again I don't think your question reflects what you are saying now, i.e. that you want to override many single options in a per object manner. I don't understand why you want so many overrides and how this can be done efficiently in any application. A detailed real world example might help to clarify your question, in this case not for your sake since you seem to have found your answer on Blender Today. Maybe answer your own question with a link to the video + explanation? $\endgroup$
    – TeeTrinker
    Oct 3, 2019 at 2:02
  • $\begingroup$ @sannyasi sorry, i think i got it now: Render layer = one layer to change anything on any object individually, right? Actually that would be quite useful, I agree. I could think of some ways to work around that in a lot of situations, but of course not in an unlimited way. You could take a look at cryptomattes or for stills you could just animate the changes, but again, that's not as flexible as what you are used to. $\endgroup$
    – TeeTrinker
    Oct 3, 2019 at 2:18
  • $\begingroup$ I second this question. It is a super common use case to render material variants on the same geometry on object basis. I could not find a efficient way yet to achieve this in Blender 2.9 up to now. The natural spot to look for that would be in view layers but its not available. Or i am doing it wrong. $\endgroup$
    – Axel
    Nov 6, 2020 at 13:32
1
$\begingroup$

Here is one way to have a single object with multiple materials that are selected by view layers.

  1. Select the cube and change the data block link from data to object. You will have to reselect the material for the cube. Select the cube and change the data block link from data to object. You will have to reselect the material for the cube

  2. Duplicate the collection as linked.Duplicate the collection as linked

  3. Exclude the new collection from the default view layer. Exclude the new collection from the default view layer

  4. Create a new view layer. Create a new view layer

  5. Swap the view layer exclusion settings for the new view layer so that the original collection is hidden from view. Create a new material and change it in some way.Swap the view layer exclusion settings for the new view layer so that the original collection is hidden from view. Create a new material and change it in some way. 6.Go back to the default view layer and the cube will have now show it's other material. The collection is linked so changes to anything in that collection will be reflected in both view layers.Go back to the default view layer and the cube will have now show it's other material. The collection is linked so changes to anything in that collection will be reflected in both view layersenter image description here

  6. I almost forgot, check 'Render Single Layers' so that only the collections enabled by the current view layer will show up in final render. I almost forgot, check 'Render Single Layers' so that only the collections enabled by the current view layer will show up in final render.

$\endgroup$
0
$\begingroup$

In 2.81 under Render Layers go to Override > Material Override, but it overides all the the materials and not per object.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.