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
|
||||
- **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
|
||||
- **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
|
||||
- **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
|
||||
@@ -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 |
|
||||
| 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
|
||||
|
||||
### Prerequisites
|
||||
@@ -41,10 +51,16 @@ cmake --build 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`.
|
||||
|
||||
### 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
|
||||
|
||||
```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.
|
||||
- **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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user