summaryrefslogtreecommitdiff
path: root/TODO.md
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-08 09:53:50 +0100
committerskal <pascal.massimino@gmail.com>2026-02-08 09:53:50 +0100
commitebadf64f2e54de3861cfffd519283c248bd83a20 (patch)
treead83ee0af12e90bc85b9236e355c2f12a3c407b8 /TODO.md
parent3252fff7aa131eaf826db19eede82ee9e70fecf5 (diff)
docs: Archive completed tasks and streamline context files
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md56
1 files changed, 0 insertions, 56 deletions
diff --git a/TODO.md b/TODO.md
index 979c191..72bb59e 100644
--- a/TODO.md
+++ b/TODO.md
@@ -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.