# Write Display Color to USD

It is possible to write per-shape color information so that Hydra viewport delegates (such as Storm and NSI) can render colored shapes in the viewport. This is commonly referred as “Display Color” and, as the name suggests is primarily for "display" purposes (though, being a "primvar" it can be queried into a shading network with a primvar reader node, see below).

Besides Multiverse for Maya, other DCC applications and game engines are able to read display color information and use it their respective game engines.

Multiverse allows you to easily write Display Color information from any Maya material Shading Group (shadingEngine nodes) that is assign to your Maya shapes. All you need to do is:

  1. Set the display Color: The Display Color on a Shading Group node (shadingEngine)

  2. Write out the Display Color information from the Multiverse Write USD Asset UI: The Display Color option in the Multiverse Write USD Asset UI

Once the display color is written you can read back the asset in Maya and you will see the display color in any Hydra rendering delegate, such as Storm or NSI, additionally, if you MMB over an Item Name in MEOW, you will be able to see the primvars:displayColor primitive variable.

Display Color in the Multiverse Storm viewport and in the MEOW Property InfoPanel (MMB on Item Name)

# Use as a Renderer Primvar

Primitive variable can be also queried in a shading network and fed to the renderer, you can use noses such as:

  • Arnold aiUserData<Type>
  • 3Delight dlPrimitiveAttribute
  • Redshift RedshiftUserData<type>
  • Renderman pxrVariable
  • VRay vrayUser<type>

Fetching a primitive variable, in this case displayColor, from USD into therenderer (3Delight NSI)

Additionally you can see it in Many other applications, such as Unity and Unreal Engine:

Maneki with Display Colors in Unity

Last Updated: 1/5/2021, 6:45:19 PM