Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Enhancement]Support Transmission of PBR #1751

Open
whatisor opened this issue Jan 22, 2022 · 4 comments
Open

[Enhancement]Support Transmission of PBR #1751

whatisor opened this issue Jan 22, 2022 · 4 comments

Comments

@whatisor
Copy link

Can we support this parameters in usdz?

https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_transmission/README.md

Ref
https://threejs.org/examples/webgl_materials_physical_transmission.html

It is abit similar to reflection but not all( because metalness = 0)

@spiffmon
Copy link
Member

Hi @whatisor ! Usdz uses the UsdPreviewSurface material specification, which has a perhaps unorthodox (compared to the references you provided) parameterization, but does allow for modeling optical transparency. The opacity parameter is by default interpreted as a transmission parameter describing optical transparency (note in its description it stipulates that a fully transparent object still has a specular response). When opacityThreshoold is non-zero, however, the interpretation of opacity changes, and it becomes a binary "presence" parameter, i.e. a mask.

So UsdPreviewSurface does lack the ability to combine optical transparency with presence, and has no "pure" alpha-as-coverage (if a renderer implements UsdPreviewSurface's opacity as alpha-to-coverage on a surface that has a specular response, that would be considered off-spec). But it does support optical transparency, the main addition of the Khronos extension.

Is that your primary concern, or is it the feature combinations that you find lacking?

@jilliene
Copy link

Filed as internal issue #USD-7156

@whatisor
Copy link
Author

whatisor commented Feb 6, 2022

I think it is lacking feature we should support

@spiffmon
Copy link
Member

spiffmon commented Feb 6, 2022

Right. So, UsdPreviewSurface matched the intersection of what was supported by game engines four or so years ago when it was developed, and in the interests of stability, we haven't changed it much since then, beyond clarifying some of the behaviors and adding a Transform2d node.

But as you point out, @whatisor , the industry has continued to evolve what "baseline/commodity PBR" means. I am unsure if the best way forward is to keep evolving UsdPreviewSurface to keep up, or leverage the flexibility and power of the MaterialX standard, now that HdStorm supports it. I think this is a question we should work out with the community.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants