Opacity in UsdPreviewSurface has a number of pitfalls (schema versioning, application of light even when fully transparent, opacityThreshold, etc.).
This asset tests for and showcases some of the various issues that can happen with that. It may not be possible to render this asset as intended with UsdPreviewSurface (clarification needed) since that always applies lighting even to fully transparent parts of surfaces (e.g. light response on fully transparent glass).
Reference Image (rendered from the glTF version)
If you look closely there are white-ish boundaries visible around the textures.
usdview 22.05
The model is translucent (opacity is set but not opacityThreshold), yet some apps interpret it as cutoff material.
Omniverse 2021.3.10, Draft Mode
The image may look correct when rendered with a raytracer.
Omniverse 2021.3.10, Photo Mode
The coplanar shadow planes should not write to depth since they are transparent, and should darken each other.
AR QuickLook AR View
Not sure what’s going on here, looks like all surfaces are interpreted as opaque yet rendered partially transparent.
AR QuickLook Object View
To the extent possible under law, Felix Herbst / prefrontal cortex has waived all copyright and related or neighboring rights to this asset.
#usda 1.0
(
customLayerData = {
string creator = "Three.js USDZExporter"
}
metersPerUnit = 1
upAxis = "Y"
defaultPrim = "Geometry"
)
def "Geometry"
{
def Mesh "Geometry"
{
int[] faceVertexCounts = [3, 3]
int[] faceVertexIndices = [1, 3, 0, 2, 0, 3]
normal3f[] normals = [(0.000000, 0.000000, -1.000000), (0.000000, 0.000000, -1.000000), (0.0... (truncated)]
interpolation = "vertex"
)
point3f[] points = [(0.5000000, -0.5000000, -3.061617e-17), (-0.5000000, -0.5000000, -3.0616... (truncated)]
float2[] primvars:st = [(0.000000, 0), (1.000000, 0), (0.000000, 1), (1.000000, 1)] (
interpolation = "vertex"
)
uniform token subdivisionScheme = "none"
}
}