Skip to content

Commit c3bc2e3

Browse files
committed
Update TODO.md
1 parent b348b28 commit c3bc2e3

1 file changed

Lines changed: 18 additions & 5 deletions

File tree

TODO.md

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# TODO
22

3+
## Benchmarking Infrastructure (Priority)
4+
5+
**No optimization code changes until this is complete.**
6+
7+
- [ ] Implement benchmark mode CLI subcommand (`cargo run --release -- bench`)
8+
- [ ] Camera spline system - move camera along a path over time
9+
- [ ] Look-at spline - animate what the camera looks at for realistic movement
10+
- [ ] Frame time recording - capture timing for each frame
11+
- [ ] Output timing data to file for analysis
12+
- [ ] Consistent benchmark runs (fixed frame count, deterministic camera path)
13+
314
## Features (Ray Tracing in One Weekend series)
415

516
1. [x] Lighting (emissive materials, diffuse lights)
@@ -9,9 +20,11 @@
920
- [x] Create test scene with emissive quad (Cornell box)
1021
2. [x] Quads (axis-aligned and arbitrary)
1122
3. [x] Transforms (translate, rotate, scale)
12-
4. [ ] Image textures
13-
5. [ ] Noise textures (Perlin noise)
14-
6. [ ] Bounding Volume Hierarchy (BVH)
23+
4. [ ] Finish Cornell box scene - add the two rotated boxes inside
24+
- Reference: `ray-tracing-in-one-weekend/src/main.rs:cornell_box`
25+
5. [ ] Image textures
26+
6. [ ] Noise textures (Perlin noise)
27+
7. [ ] Bounding Volume Hierarchy (BVH)
1528
- [ ] Implement AABB (Axis-Aligned Bounding Box) with ray intersection test
1629
- [ ] Add `bbox()` method to hittable primitives (Sphere, Quad)
1730
- [ ] Implement linearized BVH structure (flat array, no recursion/pointers for GPU)
@@ -99,8 +112,8 @@ The camera crashes when looking straight up or down because `vup` becomes parall
99112

100113
### Future enhancements (not for first pass)
101114

102-
- Sample accumulation when stationary
103-
- Screenshot with current camera position
115+
- [ ] **Dynamic ray sampling**: Lower samples per pixel when camera/world is moving for faster feedback, then accumulate rays over time when stationary for higher quality. Requires tracking frame-to-frame camera changes and maintaining an accumulation buffer.
116+
- [ ] Screenshot with current camera position
104117

105118
## Technical Debt
106119

0 commit comments

Comments
 (0)