When a MaterialX document authored in an older version is read through OpenUSD usdMtlx, the resulting USD reflects upgraded MaterialX version semantics even when no explicit conversion is requested.
Repro Steps:
- Unzip openusd_mtlx_auto_upgrade_repro.zip.
- Run: C:\usd-install\bin\usdcat.exe \atan2_sample.mtlx > \out.usda
- Open out.usda and confirm:
string config:mtlx:version = "1.39"
float inputs:inx = ...
float inputs:iny = ...
- Compare against input atan2_sample.mtlx:
Authored version is 1.38
Authored atan2 inputs are in1 / in2
Impact:
- Look preservation risk for published assets.
- Potential cross-site nondeterminism when different environments use different MaterialX versions.
- Unexpected node interface/schema changes during ingestion.
Expected:
- Default usdMtlx read behavior preserves authored MaterialX version semantics.
- Upgrade occurs only via explicit user/pipeline opt-in conversion.
Actual:
- Read/ingest path appears to apply upgrade behavior implicitly.
openusd_mtlx_auto_upgrade_repro.zip
When a MaterialX document authored in an older version is read through OpenUSD usdMtlx, the resulting USD reflects upgraded MaterialX version semantics even when no explicit conversion is requested.
Repro Steps:
Impact:
Expected:
Actual:
openusd_mtlx_auto_upgrade_repro.zip