diff options
Diffstat (limited to 'TODO.md')
| -rw-r--r-- | TODO.md | 56 |
1 files changed, 0 insertions, 56 deletions
@@ -4,20 +4,7 @@ This file tracks prioritized tasks with detailed attack plans. **Note:** For a history of recently completed tasks, see `COMPLETED.md`. -## Critical Fixes -- [ ] **Task A: Fix Test Mesh** (Partially Complete) - - [x] Fixed mesh normal transformation bug (double-transpose in shaders) - - [x] Fixed quaternion rotation stretching (non-normalized axis in quat::from_axis) - - [x] Fixed mesh shadow scaling (excluded meshes from SDF scale factor) - - [x] Fixed floor rendering artifacts (changed from PLANE to BOX) - - [x] **Task A.1**: Investigate and fix missing shadows in test_mesh (Investigated: Shadows are present but box-shaped due to AABB proxy. See `doc/DEBUG_SHADOWS.md`.) - - [x] **Task A.2**: Investigate and fix ObjectType::PLANE with non-uniform scaling (Fixed: Implemented correct scaling factor for planes in map_scene and PhysicsSystem). - -- [ ] **Task B: Move platform-specific conditional code into a single header location** - - [ ] Abstract out `#if defined(DEMO_CROSS_COMPILE_WIN32)` statements from core `.cc` and `.h` sources. - - [ ] Centralize platform-specific code and `#ifdef`s into `platform.h` or equivalent. - - [ ] Address `str_view()` calls that cause compilation breaks. ## Priority 1: Spectral Brush Editor (Task #5) [IN PROGRESS] @@ -91,30 +78,13 @@ This file tracks prioritized tasks with detailed attack plans. ## Priority 2: 3D System Enhancements (Task #18) **Goal:** Establish a pipeline for importing complex 3D scenes to replace hardcoded geometry. -- [x] **Task #18.0: Basic OBJ Asset Pipeline** (New) - - [x] Define `ASSET_MESH` type in `asset_manager`. - - [x] Update `asset_packer` to parse simple `.obj` files (positions, normals, UVs) and serialize them. - - [x] Update `Renderer3D` to handle `ObjectType::MESH` in the rasterization path. -- [x] **Task #36: Blender Exporter:** Create a Python script (`tools/blender_export.py`) to export meshes/cameras/lights to a binary asset format. -- [x] **Task #37: Asset Ingestion:** Update `asset_packer` to handle the new 3D binary format. - - [x] **Task #38: Runtime Loader:** Implement a minimal C++ parser to load the scene data into the ECS/Renderer. -- [x] **Task #18-B: GPU BVH & Shadows** (Optimization) - - [x] **Upload BVH:** Create a storage buffer for `BVHNode` data and upload the CPU-built BVH every frame in `Renderer3D`. - - [x] **Shader Traversal:** Implement stack-based BVH traversal in `scene_query.wgsl` to replace the linear loop in `map_scene`. - - [x] **Shadow Optimization:** Use the BVH traversal for `calc_shadow` to skip occluded objects efficiently. - - [x] **Compile-Time Switch:** Implemented dual-pipeline architecture (BVH vs Linear) using `ShaderComposer` substitution to avoid runtime branching cost. ## Priority 3: WGSL Modularization (Task #50) [RECURRENT] **Goal**: Refactor `ShaderComposer` and WGSL assets to support granular, reusable snippets and `#include` directives. This is an ongoing task to maintain shader code hygiene as new features are added. -## Priority 4: Developer Tooling & CI -**Goal**: Improve developer workflows, code quality, and release processes. -- [x] **Task #51: Tracker Timing Verification** ✅ COMPLETED - - Created robust audio testing infrastructure with mock backend abstraction - - All subtasks complete, moved to COMPLETED.md ## Phase 2: Size Optimization (Final Goal) @@ -235,33 +205,7 @@ This file tracks prioritized tasks with detailed attack plans. ### Visual Effects - [ ] **Task #52: Procedural SDF Font**: Minimal bezier/spline set for [A-Z, 0-9] and SDF rendering. -- [x] **Task #53: Particles Shader Polish**: Improve visual quality of particles. (Completed February 6, 2026) - - Implemented transparent circular particles with smooth distance-based falloff - - Added UV coordinates and lifetime-based alpha fading (particle.pos.w: 1.0 → 0.0) - - Enabled alpha blending for particle shaders (auto-detected via shader name) - - Increased particle usage: Added 5 ParticleSprayEffect instances throughout demo (6b, 12b, 17b, 24b, 56b) - - Result: Particles now render as fading transparent circles instead of opaque squares - [ ] **Task #55: SDF Random Planes Intersection**: Implement `sdPolyhedron` (crystal/gem shapes) via plane intersection. -- [x] **Task #68: Visual Debug - Mesh Wireframe Rendering**: Show triangle edges as lines for mesh objects - - **Current**: Visual debug mode shows normals for all objects (SDF and meshes) - - **Goal**: Add wireframe overlay for mesh objects to visualize triangle structure - - **Implementation**: - - Extend `VisualDebug` class with mesh wireframe rendering function - - For each mesh triangle: draw 3 lines connecting vertices (v0→v1, v1→v2, v2→v0) - - Use world-space positions (transform by model matrix) - - Color: distinct from normals (e.g., cyan for edges, yellow for normals) - - Only render when debug mode enabled (`!STRIP_ALL`) - - **Use Cases**: - - Verify mesh topology and face orientation - - Debug mesh loading/transformation issues - - Visualize mesh deformation or animation - - Check for degenerate triangles or mesh artifacts - - **Technical Details**: - - Access mesh data via `AssetManager::GetMeshAsset()` - - Iterate through indices in groups of 3 (triangles) - - Draw lines using existing `VisualDebug::draw_line()` API - - Transform vertices: `world_pos = model_matrix * local_pos` - - **Priority**: Low (debug visualization, not production feature) - [ ] **Task #54: Tracy Integration**: Integrate Tracy debugger for performance profiling. - [ ] **Task #58: Advanced Shader Factorization**: Further factorize WGSL code into smaller, reusable snippets. - [ ] **Task #59: Comprehensive RNG Library**: Add WGSL snippets for float/vec2/vec3 noise (Perlin, Gyroid, etc.) and random number generators. |
