docs: record remaining USD architecture decisions (questions 2-4)
- Q2: seam/sharp encoding → index-space primvars (not world-space KD-tree) - Q3: preview GLB → co-author from tessellation pass (not USD->GLB round-trip) - Q4: layer strategy → Option B (canonical + override layer), flatten via UsdUtils.FlattenLayerStack() to preserve instanceable prims for future bearing ball instancing optimization All 5 open questions now decided. Priority 2 coding can start after Priority 1. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,7 +10,9 @@
|
||||
|
||||
- [ ] Priority 1 complete (step_tasks.py decomposed, blender_render.py decomposed)
|
||||
- [x] Decision: USD authoring library → **`usd-core` (pip)** — provides `pxr` module, no GPU tools needed, pip-installable in render-worker
|
||||
- [ ] Decision: seam/sharp payload encoding (primvars vs. JSON sidecar)
|
||||
- [x] Decision: seam/sharp payload encoding → **index-space primvars** (`primvars:schaeffler:seamEdgeVertexPairs`, `primvars:schaeffler:sharpEdgeVertexPairs`) — survives transforms, no KD-tree needed
|
||||
- [x] Decision: preview GLB derivation → **co-author from same tessellation pass** during migration (avoid round-trip loss from USD→GLB export)
|
||||
- [x] Decision: single-file vs override layers → **Option B: canonical geometry layer + material override layer, flattened via `UsdUtils.FlattenLayerStack()` for delivery** — preserves hierarchy AND allows instancing later (`FlattenLayerStack` keeps `instanceable` prims; `UsdStage.Flatten` would expand them). Note: Phase 1 uses no instancing (matching current GLB pipeline), but the delivery path is already instancing-safe.
|
||||
|
||||
---
|
||||
|
||||
@@ -320,9 +322,9 @@ Clicking an unassigned part in the viewer auto-focuses it in the MaterialPanel.
|
||||
| # | Question | Options | Default recommendation |
|
||||
|---|---|---|---|
|
||||
| 1 | USD authoring library | ~~`pxr` full / `usda` text / `usd-core` pip~~ | ✅ **`usd-core` pip** — `pip install usd-core` in render-worker Dockerfile |
|
||||
| 2 | Seam/sharp payload encoding | Custom primvars on mesh prim / separate JSON sidecar / GLB extras (current) | Index-space primvars — cleaner, survives transforms |
|
||||
| 3 | Preview GLB derivation | USD → GLB export pass / co-author from same tessellation pass | Co-author during migration (avoid round-trip loss) |
|
||||
| 4 | Single-file USD or override layers | Flat single file / canonical + overlay layers (flattened for delivery) | RFC recommends Option B (overlay layers, flatten for delivery) |
|
||||
| 2 | Seam/sharp payload encoding | ~~primvars / JSON sidecar / GLB extras~~ | ✅ **index-space primvars** on mesh prim |
|
||||
| 3 | Preview GLB derivation | ~~USD→GLB export / co-author from tessellation pass~~ | ✅ **co-author from same tessellation pass** during migration |
|
||||
| 4 | Single-file USD or override layers | ~~flat single file / canonical + overlay layers~~ | ✅ **Option B: override layers + `UsdUtils.FlattenLayerStack()` for delivery** — hierarchy preserved, instancing-safe |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user