Git Product home page Git Product logo

Comments (5)

jstone-lucasfilm avatar jstone-lucasfilm commented on May 29, 2024

@pablode This sounds like the topic that @erich666 and I brought up in an ASWF thread titled "Expected behavior of Transmission effects in UsdPreviewSurface metals":

https://academysoftwarefdn.slack.com/archives/C02HJH53RN3/p1702324085845039

Near the end of the thread, both @klucknav and @spiffmon had a change to weigh in, and I believe the conclusion was that the MaterialX behavior is correct, but some earlier implementations of UsdPreviewSurface still need to be updated to match this behavior.

Let me know if there are any updates beyond this, and we're happy to work with the USD team to make adjustments as needed.

from materialx.

pablode avatar pablode commented on May 29, 2024

Ah, sorry for missing that - I remember it being largely about “how it should be done” but wasn’t aware of how this topic actually manifests in the wild. Nonetheless, it’s good to have this logged outside of Slack.

In fact, I ran into this issue while rendering a supposedly transparent USDZ-converted asset from Sketchfab. Of course, similar assets will be broken if the spec and OpenUSD implementation get adjusted, unless some explicit versioning is used - which is another can of worms that probably has been discussed a lot and will delay any progress towards alignment of both implementations.

from materialx.

jstone-lucasfilm avatar jstone-lucasfilm commented on May 29, 2024

That's a good point about making this question visible outside of Slack, and I'll post some highlights from the original question and its resolution here:

In shading models such as Autodesk Standard Surface, it's most common for transmission effects to fade out as the metallic slider is moved from zero to one, since there isn't a clear physical interpretation of refraction effects in metals.
In the comparison below, we're seeing the Standard Surface Carpaint material with Transmission set to one, where the top image has Metalness set to Zero and the bottom image has Metalness set to one:

StandardSurface_TransmissionDielectric

StandardSurface_TransmissionMetal

The same approach is currently used in the MaterialX graph for UsdPreviewSurface, and you can see the corresponding comparison for UsdPreviewSurface Carpaint below.
Both of these images have Opacity set to Zero, but the top image has Metallic set to Zero, and the bottom image has Metallic set to One:

UsdPreviewSurface_TransmissionDielectric

UsdPreviewSurface_TransmissionMetal

The question that Eric Haines and I would like to resolve is whether this behavior is expected in UsdPreviewSurface, or whether transmission effects should persist in metals (despite this being tricky from a physically based shading perspective). The specification for UsdPreviewSurface isn't clear on this point, so we wanted to reach out to Spiff, Karen, and other domain experts for their thoughts.

from materialx.

jstone-lucasfilm avatar jstone-lucasfilm commented on May 29, 2024

Karen Lucknavalai:

I agree I think opacity should not affect metallic materials. We did find some issues with our implementation when verifying the MaterialX spec, unfortunately they have not yet been fixed so the latest usdview would give you the same visuals as you are currently seeing.

Eric Haines:

Oh, good to know, thanks for the update on usdview. I'm glad it's on the radar as something to fix - people (well, me, at least) rely on it for how materials work.

from materialx.

jstone-lucasfilm avatar jstone-lucasfilm commented on May 29, 2024

@pablode I'll go ahead and close this issue for now, but let us know if you believe any changes are needed on the MaterialX side, and we'll follow up.

from materialx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.