Comments (5)
@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.
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.
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:
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:
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.
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.
@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)
- GlslRenderer not working in Python virtual environment HOT 19
- Incorrect implementation of SplitTB, RampTB and Ramp4 node types HOT 2
- Incorrect implementation of Convert_Vector2_Vector3 HOT 2
- MaterialX WebGL Path Tracer HOT 3
- Wrap a mtlx document into a nodedef (through API or graphEditor) HOT 7
- Graph Editor 1.38.10 does not update as 1.38.8
- Specification Query: Can top level outputs be connected to upstream nodegraph?
- Clarify ABI compatibility rules in MaterialX HOT 5
- Suggestion: Add more Global Nodes HOT 3
- Proposal: Apply convert node rules to image edge cases
- Not all math functions are documented in the specification. HOT 4
- 1.39 "channels" upgrade in creating incorrect connections on some nodegraph configurations HOT 2
- Allow users to input values in Web Viewer outside of soft min and max values
- Bump node not working with genglsl
- 1.39 "channels" upgrade issue due to value vs. connection priority logic
- 1.39 channels upgrade attempts to create invalid swizzle / extract for float -> float extraction
- Validation incorrectly categorizes top level inputs connected to graphs as invalid
- Setting an element's colorspace attribute to empty string has unexpected behavior
- Query: What is supposed to happen with multiple <materialx> tags in a document ?
- Cloverleaf placement appears incorrect HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from materialx.