UsdPreviewSurface vs. Karma - prrimvar override behavior

   265   1   2
User Avatar
9 posts
Joined: Aug. 2015
Hey folks, before I file this as a bug, I wanted to make sure there's no Usd-based explanation for this behavior.

In the project below, I have a SOP Create node with a geometry in it, assigned to a material in SOPs and imported into LOPs.

The resulting LOP has three USDShade Shader bindings (Surface + Displace, linked to VOPs and a UsdPreviewSurface).

Adding “Material Variation” (primvar override) nodes diverges in behavior between Karma and the GL renderer according to whether or not the GeomSubset has been disabled:

1. When varying baseColor (VOP Material Property)

Karma: replaces (red)
GL: does nothing (teal)
GL + GeomSubset deactivated: no assignment (white)

2. when varying displayColor (USD spec property):

Karma: multiplies (black)
GL: does nothing (teal)
GL + GeomSubset deactivated: multiplies or overrides no assignment - not sure (red)

3. when varying diffuseColor (USDPreviewSurface property):

Karma: does nothing (teal)
GL: does nothing (teal)
GL + GeomSubset deactivated: no assignment (white)

Is there an explanation or a setting in the GL renderer that needs to change?

GLColorBug.hip (277.5 KB)
GLColorBug.png (40.2 KB)

User Avatar
4741 posts
Joined: July 2005
It's a known issue that usd preview surfaces generated from a principled shader don't create a primvar reader for diaplayColor, which is why you're getting that behavior. There is a bug logged for it already, but it may take some time to fix.
  • Quick Links