Hello,
I'm currently exploring lop for a pipeline around usd. I encountered a "bug" or perhaps a feature because it's in the doc of Houdini. When you create a principled shader inside a material library, you have the option to automatically create a preview shader. The problem is, when you use textures, the material lib automatically plug the base color alpha into the opacity channel.
This create some unwanted results across application when loading the usd stage.
For example maya and unreal. So, to get around it I could have uncheck the function and create a UsdPreviewShaders for each material using a texture. But it's pretty tedious (and usd uv file doesn't seems to work with UDIMs) when you have 20+ shaders.
So I tried to plug a white texture as opacity, but then the backface get broken in other applications for the mesh having UDIM.
I also tried to redo my BaseColors texture, giving them a pure white alpha, but doesn't work with udim for some obscure reasons.
So my question is, is the opacity generation gonna stay in future update (this problem didn't exist in previous version) or is this something that will be removed ?
I find this feature not really smart, cause when you want to set an opacity, you set it manually. translating it with this strange manners automatically cause a lot of problem, because is not something that you have set in your shader in the first place. The function to translate the shader to an usd one should give the best result from your input and not generate channels for something you don't have set in the first place
Auto generation of usd preview shader
2371 1 1-
- dkeraudren
- Member
- 11 posts
- Joined: 7月 2019
- オフライン
-
- rafal
- スタッフ
- 1471 posts
- Joined: 7月 2005
- オフライン
For reference, this topic is also discussed in another thread:
https://www.sidefx.com/forum/topic/78037/ [www.sidefx.com]
It could be argued that it's Maya and Unreal that have a bug. If texture file has RBGA planes, it's clear that the A should be taken from the Alpha plane. If the texture file has only RGB panes, what do would you assume Alpha to be? Clearly 1, no? The USD standard for the `UsdUVTexture` shader primitive says the fallback value is (0.0, 0.0, 0.0, 1.0) and that's what the translated primitive specifies.
So it all indicates that Maya and Unreal interpret it wrong, using the fallback value only if texture file is not found, but not considering the "per component" fallback values.
Still, our attempt to address it all in H18.6 is to utilize the "Use Texture Alpha" checkbox, to explicitly control whether to connect the opacity channel or not.
https://www.sidefx.com/forum/topic/78037/ [www.sidefx.com]
It could be argued that it's Maya and Unreal that have a bug. If texture file has RBGA planes, it's clear that the A should be taken from the Alpha plane. If the texture file has only RGB panes, what do would you assume Alpha to be? Clearly 1, no? The USD standard for the `UsdUVTexture` shader primitive says the fallback value is (0.0, 0.0, 0.0, 1.0) and that's what the translated primitive specifies.
So it all indicates that Maya and Unreal interpret it wrong, using the fallback value only if texture file is not found, but not considering the "per component" fallback values.
Still, our attempt to address it all in H18.6 is to utilize the "Use Texture Alpha" checkbox, to explicitly control whether to connect the opacity channel or not.
-
- Quick Links