Search - User list
Full Version: UsdPreviewSurface issues in 20.5?
Root » Solaris and Karma » UsdPreviewSurface issues in 20.5?
Tim Crowson
(Known issue maybe?)

In versions prior to 20.5 we could use a Collect VOP to create a custom UsdPreviewSurface for display in Houdini GL. We could also pipe a UsdPreviewSurface shader directly into the 'next' port on the output node of a KarmaMaterialBuilder and get the same result.

In 20.5 (last few builds) this doesn't seem to be working the same way (or at all?). Even if I disable the Material Library's 'Auto-generate preview surface' option, I cannot get HoudiniGL to display my custom UsdPreviewSurface. It always wants to translate the Karma surface and display that rather than the UsdPrev one.

Attached image:
- green is the diffuse color of the mtlx shader
- blue is the Usd Preview Surface color
- Houdini GL ignores the latter and renders the former (but this seemed to work as expect in 20.0

Basically... I can't seem to author a custom UsdPreviewSurface in 20.5 and actually see it in GL.
Hamilton Meathouse
The default in 20.5 is Houdini VK - are you guys forcing Houdini GL through an ENV variable?
I am using Houdini VK and get the same result in both a USD Mtlx Builder and Karma Material builder.

Tim, in the case you're definitely using Houdini GL, can you try the following: Replace the Subnet Outputs node with a Collect vop (pic 1).
And/Or:
Add a collect vop outside the Karma Material Builder (pic 2)
Hamilton Meathouse
I'd also test on a sphere or something that doesn't have a material and displayColor primvar already authored on it.
Tim Crowson
Thanks, Dave! In 20.5.370 I only get the expected result when using Storm. Otherwise I'm seeing my original problem under the following conditions:
  • Using Collect VOPs
  • Using KarmaMaterialBuilders
  • Using Vulkan

I'm attaching a simple repro scene. Oddly, this super simple scene has crashed twice on me when firing off a Karma CPU render. In this scene, orange=karma, blue=usdpreview. Switching to Storm correctly draws the usdpreview shader. Vulkan does not.
Hamilton Meathouse
I tested on 20.5.332 but couldn't get it to work, I get the same issue as you, but Storm doesn't display correctly like it did for you
Tim Crowson
Has no one else noticed this? Are Dave and I taking crazy pills?
jsmack
Tim Crowson
Attached image:
- green is the diffuse color of the mtlx shader
- blue is the Usd Preview Surface color
- Houdini GL ignores the latter and renders the former (but this seemed to work as expect in 20.0

Basically... I can't seem to author a custom UsdPreviewSurface in 20.5 and actually see it in GL.

no, you cannot. The viewer will use the 'best' shader it knows how to render. Since the HoudiniGL viewer knows how to render a mtlx shader, it will use that.
Tim Crowson
I went back and retested this in 19.5 and indeed it seems that indeed Houdini GL completely ignores custom usdpreview shaders if a materialX shading network is found.

However, in 20.0, I get a different result: authoring a usdpreviewsurface inside a Karma Material Builder (and connecting to the builder's Outputs node) yields the result I was kind of expecting: Houdini GL renders my custom usdpreview surface, not the material x shading.
Tim Crowson
Follow-up: we're able to get around the problem by leveraging a native USD binding mechanism: authoring a preview material and binding it using 'Preview Render' purpose rather than the default 'All' or 'Full Render'. We essentially wind up binding two materials to the object, but with different purposes.
Hamilton Meathouse
Tim Crowson
Has no one else noticed this? Are Dave and I taking crazy pills?
We are but that is a separate issue
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB