docs: update README with render delegate support and Cycles build notes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -9,7 +9,7 @@ A C++17 / Windows desktop application providing a **Maya Render Layers-style** U
|
|||||||
- **Layer Stack Management** — Create, reorder, mute/unmute sublayers with full undo support
|
- **Layer Stack Management** — Create, reorder, mute/unmute sublayers with full undo support
|
||||||
- **Scene Hierarchy** — Browse prim tree with per-type SVG icons; create, delete, rename prims; add/replace references
|
- **Scene Hierarchy** — Browse prim tree with per-type SVG icons; create, delete, rename prims; add/replace references
|
||||||
- **Property Editor** — Maya Channel Box-style attribute editing with type-aware drag inputs, color pickers, and undoable transforms
|
- **Property Editor** — Maya Channel Box-style attribute editing with type-aware drag inputs, color pickers, and undoable transforms
|
||||||
- **3D Viewport** — Hydra rendering via `UsdImagingGLEngine` into an offscreen FBO; switchable render delegates; grid overlay; selection bounding boxes; camera wireframes
|
- **3D Viewport** — Hydra rendering via `UsdImagingGLEngine` into an offscreen FBO; switchable render delegates (Storm, Embree, Arnold, Cycles); grid overlay; selection bounding boxes; camera wireframes
|
||||||
- **Multi-Viewport** — Single, horizontal split, vertical split, and quad layouts; per-tile camera and render settings; Space to maximize/restore
|
- **Multi-Viewport** — Single, horizontal split, vertical split, and quad layouts; per-tile camera and render settings; Space to maximize/restore
|
||||||
- **Camera Control** — Free orbital camera (tumble/truck/dolly) or drive from USD camera prims; auto near/far clipping; frame selection; correct camera prim orientation for Y-up and Z-up stages
|
- **Camera Control** — Free orbital camera (tumble/truck/dolly) or drive from USD camera prims; auto near/far clipping; frame selection; correct camera prim orientation for Y-up and Z-up stages
|
||||||
- **Transform Gizmo** — Pure ImDrawList-based manipulator (translate/rotate/scale) in object or world space
|
- **Transform Gizmo** — Pure ImDrawList-based manipulator (translate/rotate/scale) in object or world space
|
||||||
@@ -25,6 +25,16 @@ A C++17 / Windows desktop application providing a **Maya Render Layers-style** U
|
|||||||
| [GLAD](https://glad.dav1d.de/) | — | OpenGL 3.3 core loader |
|
| [GLAD](https://glad.dav1d.de/) | — | OpenGL 3.3 core loader |
|
||||||
| Python | 3.12 | Required by OpenUSD runtime (`python312.dll`) |
|
| Python | 3.12 | Required by OpenUSD runtime (`python312.dll`) |
|
||||||
|
|
||||||
|
### Optional Render Delegates
|
||||||
|
|
||||||
|
| Delegate | Variable | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| **hdEmbree** | `HDEMBREE_USD_ROOT` | USD build with `PXR_ENABLE_EMBREE_PLUGIN=ON`; set `EMBREE_LOCATION` if embree DLLs are not in `HDEMBREE_USD_ROOT/bin` |
|
||||||
|
| **hdArnold** | `HDARNOLD_ROOT`, `ARNOLD_LOCATION` | [arnold-usd](https://github.com/Autodesk/arnold-usd) install dir + MtoA root for `ai.dll` |
|
||||||
|
| **hdCycles** | `WITH_CYCLES=ON` | Built from source under `third_party/cycles` via ExternalProject; requires MSVC |
|
||||||
|
|
||||||
|
All delegate paths are pre-configured in `CMakePresets.json`.
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
@@ -41,10 +51,16 @@ cmake --build build --config Release
|
|||||||
cmake --install build --config Release
|
cmake --install build --config Release
|
||||||
```
|
```
|
||||||
|
|
||||||
The installed `App.exe` lives in `install/bin/`.
|
The installed executable lives in `install/bin/`.
|
||||||
|
|
||||||
**Presets** — `default` (Release + tests), `debug`, `release`, `no-tests`.
|
**Presets** — `default` (Release + tests), `debug`, `release`, `no-tests`.
|
||||||
|
|
||||||
|
### Building with Cycles
|
||||||
|
|
||||||
|
`WITH_CYCLES=ON` is set in the default preset. The first build compiles Blender Cycles from `third_party/cycles` via ExternalProject — expect a significantly longer initial build. Subsequent builds are incremental.
|
||||||
|
|
||||||
|
Cycles runtime dependencies (`embree4.dll`, `openvdb.dll`, `OpenImageDenoise.dll`, `tbb12.dll`, etc.) are automatically deployed to the output directory by a post-build step. CRT DLLs bundled inside the Cycles install are excluded to avoid version conflicts with the app's own MSVC runtime.
|
||||||
|
|
||||||
### Tests
|
### Tests
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
@@ -123,6 +139,7 @@ Use Kilo's `openspec-*` skills to streamline this workflow.
|
|||||||
|
|
||||||
- **Python 3.12** — OpenUSD requires `python312.dll` at runtime. CMake copies it to the output directory via `POST_BUILD` commands.
|
- **Python 3.12** — OpenUSD requires `python312.dll` at runtime. CMake copies it to the output directory via `POST_BUILD` commands.
|
||||||
- **USD Plugin Path** — The app scans `<exe_dir>/usd/` for `plugInfo.json` and registers plugins via `pxr::PlugRegistry`.
|
- **USD Plugin Path** — The app scans `<exe_dir>/usd/` for `plugInfo.json` and registers plugins via `pxr::PlugRegistry`.
|
||||||
|
- **Render delegate DLLs** — hdEmbree, hdArnold, and hdCycles each bring their own runtime dependencies (Embree, Arnold SDK, Cycles libs). CMake `POST_BUILD` steps deploy all required DLLs next to the executable automatically.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user