UsdPreviewSurface issues in 20.5?

   4692   10   2
User Avatar
Member
251 posts
Joined: 10月 2014
オフライン
(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.
Edited by Tim Crowson - 2024年10月25日 19:10:48

Attachments:
usdprev.PNG (411.5 KB)

- Tim Crowson
CG Supervision | Pipeline and Rendering
User Avatar
Member
226 posts
Joined: 11月 2013
オフライン
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)

Attachments:
pic_1.png (33.8 KB)
pic_2.png (29.1 KB)

User Avatar
Member
226 posts
Joined: 11月 2013
オフライン
I'd also test on a sphere or something that doesn't have a material and displayColor primvar already authored on it.
User Avatar
Member
251 posts
Joined: 10月 2014
オフライン
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.
Edited by Tim Crowson - 2024年10月28日 17:03:52

Attachments:
usdprev_weirdness.hipnc (195.5 KB)

- Tim Crowson
CG Supervision | Pipeline and Rendering
User Avatar
Member
226 posts
Joined: 11月 2013
オフライン
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
User Avatar
Member
251 posts
Joined: 10月 2014
オフライン
Has no one else noticed this? Are Dave and I taking crazy pills?
- Tim Crowson
CG Supervision | Pipeline and Rendering
User Avatar
Member
8381 posts
Joined: 9月 2011
オフライン
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.
User Avatar
Member
251 posts
Joined: 10月 2014
オフライン
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.
Edited by Tim Crowson - 2024年11月20日 19:35:55
- Tim Crowson
CG Supervision | Pipeline and Rendering
User Avatar
Member
251 posts
Joined: 10月 2014
オフライン
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.
- Tim Crowson
CG Supervision | Pipeline and Rendering
User Avatar
Member
226 posts
Joined: 11月 2013
オフライン
Tim Crowson
Has no one else noticed this? Are Dave and I taking crazy pills?
We are but that is a separate issue
User Avatar
Member
109 posts
Joined: 9月 2014
オンライン
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.

Hi Tim,
I think I ran into the same problem in H22.
Do you have an example scene with this setup?

- it seems to work now - Houdini 22.0.429
Edited by w_maro - 昨日 07:05:36

Attachments:
usdpreview.png (805.2 KB)

  • Quick Links