UsdPreviewSurface issues in 20.5?
1094 9 1- Tim Crowson
- Member
- 250 posts
- Joined: Oct. 2014
- Offline
(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.
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 - Oct. 25, 2024 19:10:48
- Tim Crowson
Technical/CG Supervisor
Technical/CG Supervisor
- Hamilton Meathouse
- Member
- 200 posts
- Joined: Nov. 2013
- Offline
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)
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
- Member
- 200 posts
- Joined: Nov. 2013
- Offline
- Tim Crowson
- Member
- 250 posts
- Joined: Oct. 2014
- Offline
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:
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.
- 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 - Oct. 28, 2024 17:03:52
- Tim Crowson
Technical/CG Supervisor
Technical/CG Supervisor
- Hamilton Meathouse
- Member
- 200 posts
- Joined: Nov. 2013
- Offline
- Tim Crowson
- Member
- 250 posts
- Joined: Oct. 2014
- Offline
- jsmack
- Member
- 8045 posts
- Joined: Sept. 2011
- Offline
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
- Member
- 250 posts
- Joined: Oct. 2014
- Offline
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.
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 - Nov. 20, 2024 19:35:55
- Tim Crowson
Technical/CG Supervisor
Technical/CG Supervisor
- Tim Crowson
- Member
- 250 posts
- Joined: Oct. 2014
- Offline
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
Technical/CG Supervisor
Technical/CG Supervisor
- Hamilton Meathouse
- Member
- 200 posts
- Joined: Nov. 2013
- Offline
-
- Quick Links