# Write Display Color to USD

It is possible to write per-shape color information so that Hydra delegates (such as Storm and NSI) can render colored shapes in the viewport. This is commonly referred as “Display Color”.

Besides Multiverse for Maya, other application, such as Unity and Unreal, 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 read by the renderer, such as:

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

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


When writing the asset, if you also write “Hardware Shaders” (Which will create USD Preview Materials) they will take precedence over Display Color information when rendered in the viewport.

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

Maneki with Display Colors in Unity

Last Updated: 8/3/2020, 2:04:11 PM