Upgrade to OpenUSD 25.11 (Python 3.12) and fix Arnold/Embree regressions
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>
This commit is contained in:
@@ -7,7 +7,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||
## Build
|
||||
|
||||
**Prerequisites:** MSVC 2022, CMake ≥ 3.20, Python 3.12 at `%LOCALAPPDATA%\Programs\Python\Python312`.
|
||||
OpenUSD 25.05 is expected at `third_party/OpenUSD-v25.05` (set via `CMAKE_PREFIX_PATH` in the preset).
|
||||
OpenUSD 25.11 is expected at `third_party/OpenUSD-v25.11` (set via `CMAKE_PREFIX_PATH` in the preset).
|
||||
|
||||
```powershell
|
||||
# Configure (one-time; downloads ACES 1.2 OCIO config ~124 MB on first run)
|
||||
@@ -20,11 +20,11 @@ cmake --build build --config Release
|
||||
cmake --build build --config Release --target install
|
||||
```
|
||||
|
||||
The `default` preset (in `CMakePresets.json`) enables `WITH_CYCLES=ON`, `HDARNOLD_ROOT`, and `HDEMBREE_USD_ROOT` for the maintainer's machine. For a minimal build without optional render delegates, configure manually:
|
||||
The `default` preset (in `CMakePresets.json`) enables `WITH_CYCLES=ON` and `HDARNOLD_ROOT` for the maintainer's machine. hdEmbree is bundled directly in the `third_party/OpenUSD-v25.11` build (built with `--embree`), so no separate `HDEMBREE_USD_ROOT` is needed. For a minimal build without optional render delegates, configure manually:
|
||||
|
||||
```powershell
|
||||
cmake -B build -G "Visual Studio 17 2022" `
|
||||
-DCMAKE_PREFIX_PATH="third_party/OpenUSD-v25.05" `
|
||||
-DCMAKE_PREFIX_PATH="third_party/OpenUSD-v25.11" `
|
||||
-DIMGUI_DIR="third_party/imgui-1.92.7" `
|
||||
-DWITH_CYCLES=OFF
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user