Build against OpenUSD 25.11 built from source with Python 3.12, OCIO 2.2.1,
OpenVDB, Ptex and Embree, replacing the 25.05/py311 mix.
Build system:
- CMAKE_PREFIX_PATH -> third_party/OpenUSD-v25.11; HDARNOLD_ROOT ->
hdArnold-v25.11. hdEmbree is bundled in the USD build now, so
HDEMBREE_USD_ROOT is no longer needed.
- FindOpenUSD: drop usd_ndr (ndr was merged into sdr in 25.11).
- hdArnold plugin renames: ndrArnold -> nodeRegistryArnold, plus the new
usdImagingArnold plugin.
- Glob the version-suffixed OpenColorIO_*.dll instead of hardcoding 2_1.
- Drop the python311.dll workaround; USD and Cycles now share Python 3.12.
- Cycles: deploy OpenColorIO_2_5.dll (needed by its bundled OpenImageIO) and
stop the debug-DLL filter from eating IlmThread.dll -- the regex `d[.]dll$`
also matched legitimate Release DLLs.
Runtime fixes:
- cullStyle now defaults to Nothing, matching usdview (viewSettingsDataModel
cullBackfaces=False). BackUnlessDoubleSided drops back faces on geometry
that isn't authored doubleSided, which hdEmbree applies to occlusion rays
too, so interiors shaded as single-sided.
- Set HDARNOLD_osl_includepath (and PXR_MTLX_STDLIB_SEARCH_PATHS) in main.cpp
before the plugin DLL pre-load. hdArnold compiles MaterialX via generated
OSL that begins with #include "mx_funcs.h"; without an include path Arnold
fails with "fatal error: 'mx_funcs.h' file not found". It must be set before
any plugin loads because TF_DEFINE_ENV_SETTING caches the value when
hdArnold.dll registers its settings.
- Deploy the MaterialX standard library next to the executable.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>