diff options
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/COMPLETED.md | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/doc/COMPLETED.md b/doc/COMPLETED.md index 148e410..7ce1090 100644 --- a/doc/COMPLETED.md +++ b/doc/COMPLETED.md @@ -11,6 +11,47 @@ This file tracks recently completed tasks, organized by completion date. - **Physics Fix**: Updated `PhysicsSystem::sample_sdf` to correctly scale plane distances on the CPU. - **Mapping Cleanup**: Consolidated `ObjectType` to `type_id` mapping in `Renderer3D` and added support for `ObjectType::CUBE` in the shader path. - **Result**: Ground planes with extreme non-uniform scaling now cast and receive shadows correctly, and physics collisions are accurate. +- [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. +- [x] **Task #51: Tracker Timing Verification** ✅ COMPLETED + - Created robust audio testing infrastructure with mock backend abstraction + - All subtasks complete, moved to COMPLETED.md +- [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 +- [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) ## Recently Completed (February 7, 2026) @@ -279,4 +320,4 @@ This file tracks recently completed tasks, organized by completion date. - **Unified 3D Shadows**: Implemented robust SDF shadows across all objects using `inv_model` transforms. - **test_mesh tool**: Implemented a standalone `test_mesh` tool for visualizing OBJ files with debug normal display. - **Task #39: Visual Debugging System**: Implemented a comprehensive set of wireframe primitives (Sphere, Cone, Cross, Line, Trajectory) in `VisualDebug`. Updated `test_3d_render` to demonstrate usage. -- **Task #68: Mesh Wireframe Rendering**: Added `add_mesh_wireframe` to `VisualDebug` to visualize triangle edges for mesh objects. Integrated into `Renderer3D` debug path and `test_mesh` tool. +- **Task #68: Mesh Wireframe Rendering**: Added `add_mesh_wireframe` to `VisualDebug` to visualize triangle edges for mesh objects. Integrated into `Renderer3D` debug path and `test_mesh` tool.
\ No newline at end of file |
