Separate Materials for Separate Renderers in USD

   482   3   1
User Avatar
Member
129 posts
Joined: Sept. 2021
Offline
I took a look at this [www.sidefx.com] question in which the idea of setting up separate materials for separate render engines is discussed.

If I have a geometry primitive, how can I create two materials in a material library and make it so one is used for one render engine (e.g., Karma) and the second is used for another render engine (e.g., RenderMan)?

Thanks!
Anson
User Avatar
Member
130 posts
Joined: Jan. 2015
Offline
Connect the shaders to the collect node inside your material library.
User Avatar
Staff
1449 posts
Joined: July 2005
Offline
Yes, indeed. Connecting terminal shader nodes to the collect node inside the material library LOP (or to the subnet output inside a subnet VOP) will create two terminal USD shaders inside one USD Material. You bind that one material to geometry. But then when rendering, the Hydra delegate (Karma or RMan) will pick the terminal shader that's appropriate for it.
User Avatar
Member
129 posts
Joined: Sept. 2021
Offline
rafal
Yes, indeed. Connecting terminal shader nodes to the collect node inside the material library LOP (or to the subnet output inside a subnet VOP) will create two terminal USD shaders inside one USD Material. You bind that one material to geometry. But then when rendering, the Hydra delegate (Karma or RMan) will pick the terminal shader that's appropriate for it.
Oh neat! So if I do that, by default the renderers will figure out which shader applies to it (so shaders containing Pixar nodes will only be rendered in RenderMan, and shaders with Karma nodes will only be rendered in Karma, and all that logic happens under the hood)?

Thanks!
Anson
  • Quick Links