Simplified setup:
- Geometry with uv and uv1 vertex attributes, no UV-to-ST conversion.
- MaterialX node chain: mtlxUsdPrimvarReader (Vector2: "uv1") → mtlximage (Vector3: "op:/img/copnet1/N") → mtlxnormalmap (default settings) → mtlxstandard_surface (default settings).
- The top part of the geometry uses the uv attribute, not uv1, and does not require uv1
- Original geometry or geometry with UVs converted from float3 to float2.
- Vertex Wrangle copying uv1 to empty uv space.
@uv.x = @uv.x == 0.0? @uv1.x : @uv.x; @uv.y = @uv.y == 0.0? @uv1.y : @uv.y;
- Vertex Wrangle copying uv1 to uv.
@uv = @uv1;
- Normal SOP applied (geometry has pre-existing vertex normals).
- Original geometry rendered in Karma CPU.

