summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
3 dayschore: Add BUILD.md, Task 23 to TODO.md, and GPU perf define placeholderskal
3 daysdocs: Add stripping rules for dynamic audio generationskal
3 daysdocs: Finalize session task tracking and project contextskal
3 daysfeat(test): Add comprehensive math and shader composer testsskal
- Implemented test_shader_composer.cc to verify WGSL snippet assembly. - Expanded test_maths.cc with rigorous matrix inversion and transposition checks. - Verified that A * inv(A) equals Identity for various TRS combinations. - Updated CMakeLists.txt to include the new test targets.
3 daysfix(3d): Stabilize shadows and isolate floor grid textureskal
- Reverted floor to BOX (SDF) for robust shadow receipt. - Updated shader to apply grid pattern ONLY to instance 0 (floor) or PLANE objects. - Restored noise-based texturing for floating cubes and other SDF primitives. - Verified that shadows and textures are now correctly applied across all scene elements.
3 daysfix(3d): Distinguish floor grid from object texturesskal
- Switched floor back to PLANE type in test_3d_render. - Updated fragment shader to apply grid pattern ONLY to PLANE objects. - Restored noise-based bump mapping and texturing for BOX and other SDF primitives. - Verified correct visual appearance of floating cubes (no fixed grid).
3 daysfeat(3d): Implement Task 21.1 WGSL Library & Composerskal
- Implemented ShaderComposer for modular WGSL snippet management. - Factored out common math, primitives, lighting, and ray-box helpers. - Refactored Renderer3D to use dynamic shader composition. - Consolidated high-DPI and shadow robustness fixes into final shader structure.
3 daysdocs: Record Task 21.2 completion and update session prioritiesskal
3 daystest(3d): Enlarge objects and pack them closer to the centerskal
- Increased number of random objects to 30. - Enlarged base scale of all objects. - Restricted object distribution radius to encourage inter-object shadows. - Scaled up center torus and moving sphere.
3 daysfix(3d): Resolve spherical distortion in floor grid textureskal
- Corrected world-space position calculation in SDF fragment shader. - Transformed local hit point back to world space using the model matrix. - Restored accurate planar p.xz mapping for the floor grid.
3 daysfeat(3d): Implement tight ray bounds for SDF raymarchingskal
- Added Ray-Box intersection in local space to derive precise t_entry and t_exit. - Optimized fragment shader to only march between box intersection points. - Improved robustness of SDF rendering for non-uniform scaled objects. - Verified correct texturing and shadow casting on all primitives.
3 daysfix(3d): Tighten torus proxy hull and ensure floor grid visibilityskal
- Adjusted Torus proxy hull in vs_main to 1.5x0.5x1.5 for better SDF fit. - Updated VisualDebug::add_box to use per-object local extents. - Standardized floor grid mapping in fs_main using planar p.xz projection. - Verified non-uniform scale and rotation robustness in test_3d_render.
3 dayschore: Apply final code formatting and cleanupskal
3 daysdocs: Prioritize next session tasks and update project contextskal
- Consolidated recent 3D and High-DPI fixes into PROJECT_CONTEXT.md. - Generated a prioritized task list in TODO.md with detailed attack plans. - Moved completed tasks to the 'Recently Completed' section. - Set up roadmap for Task #8 (Stripping), Task #20 (Code Hygiene), and Task #21 (Shader Optimization).
3 daysmore sub-tasksskal
3 daysfix(3d): Restore visible grid texture on floor planeskal
- Implemented planar (p.xz) grid mapping for BOX objects in the SDF path. - Standardized grid generation logic between raster and SDF paths for consistency. - Ensured grid is high-contrast and clearly visible on the floor.
3 daysfix(3d): Tighten torus bounding box and restore object texturesskal
- Adjusted Torus proxy hull in vs_main to fit unit dimensions (1.4x0.4x1.4). - Updated VisualDebug to support per-object local extents, improving wireframe accuracy. - Restored procedural floor grid and SDF bump mapping in the fragment shader. - Added varied scaling to test scene objects to verify transform robustness.
3 daysfix(3d): Correct debug box transforms and restore object texturesskal
- Updated VisualDebug to accept mat4 transforms, enabling wireframes to follow rotating objects. - Restored SDF bump mapping and floor grid texture in the fragment shader. - Added vec4::xyz() helper to mini_math.h. - Fixed Renderer3D to pass the full model matrix for debug visualization.
3 daysdocs: Finalize session state in TODO.md with unified SDF shadow fix detailsskal
3 daysfix(3d): Unify all objects to SDF path for consistent shadowsskal
- Updated ObjectData to include inv_model for reliable world-to-local mapping. - Enabled SDF raymarching path for all objects in test_3d_render (floor is now a large SDF BOX). - Implemented robust normal calculation using SDF gradient for all objects. - Standardized lighting (light_dir = 1,1,1) and diffuse+ambient model. - Refined calc_shadow with instance-based skip_idx and robust bias. - Fixed non-uniform scale handling in shader by extracting min scale from model matrix.
3 daysfix(3d): Unify SDF path for all objects and stabilize shadowsskal
- Converted floor in test_3d_render to a large SDF BOX for consistent shading. - Standardized lighting (light_dir = 1,1,1) and normal calculation for all objects. - Fixed calc_shadow bias and skip_idx to reliably prevent self-shadowing. - Improved raymarching robustness in fs_main to find exact SDF hit points.
3 daysfix(3d): Restore and enhance 3D shadowsskal
- Elevated objects in test_3d_render to avoid shadow occlusion. - Slanted light direction for more visible, elongated shadows. - Sharpened shadows by increasing k constant to 32. - Cleaned up debug printfs from previous turns. - Maintained skip_idx logic for robust self-shadowing prevention.
3 daysfix(3d): Revert to working N-1 shadow configurationskal
- Reverted floor to CUBE (rasterized) at index 0. - Restored vertical lighting and original soft shadow loop (k=8, t+=h). - Maintained instance-based skip_idx for generic self-shadowing prevention. - Confirmed map_scene correctly skips the floor, allowing other objects to cast shadows on it.
3 daysfix(3d): Resolve missing shadows on floor planeskal
- Switched floor from rasterized CUBE to SDF PLANE for consistent shadow mapping. - Implemented skip_idx in map_scene to properly prevent self-shadowing. - Standardized soft shadow logic with improved bias and step size. - Increased object elevation and adjusted light direction for more visible shadows. - Enabled debug boxes in test_3d_render.
3 daysflesh out extra details in the MD filesskal
3 daysdocs: Update TODO.md with recent bug fixes and formatting passskal
3 daysfix(gpu): Resolve high-DPI squished rendering and 3D shadow bugsskal
- Implemented dynamic resolution support in all shaders and effects. - Added explicit viewport setting for all render passes to ensure correct scaling. - Fixed 3D shadow mapping by adding PLANE support and standardizing soft shadow logic. - Propagated resize events through the Effect hierarchy. - Applied project-wide code formatting.
3 daysdocs(project): Incorporate detailed debugging tasks from 3D.mdskal
- Expanded 'Task #18: 3D System Enhancements' to include specific debugging features mentioned in the original 3D.md file: - Collision points visualization. - Interactive ray/object intersection visualization. - Visualization of light sources and their shadow maps. - This ensures all potential debugging needs are captured and tracked for future implementation.
3 daystune TODO and PROJECT_CONTEXT with new micro-tasksskal
3 daysfeat(3d): Use procedural grid for floor and revert object noiseskal
- Reverted test_3d_render to use the global 'noise' texture for floating objects, restoring their bump mapping. - Implemented a procedural grid directly in the fragment shader for rasterized objects (floor). - Inverted the grid color scheme (black lines on a lighter background) as requested. - This ensures accurate object bump mapping and clear shadow visibility on the floor without requiring multiple texture bindings.
3 daysfix(shader): Correct WGSL loop syntax in calc_shadowskal
- Replaced invalid 'i++' with 'i = i + 1' in the shader's calc_shadow function loop. - This resolves the shader parsing error and allows the 3D renderer test to run successfully on all platforms.
3 daystest(3d): Add procedural grid to floor and enable texturingskal
- Modified 'test_3d_render' to generate and use a procedural 'grid' texture for the floor. - Updated fragment shader to sample the texture for rasterized objects, adding a grid pattern to the floor. - This provides visual detail and contrast, making raymarched shadows much easier to observe and verify.
3 daysfix(3d): Fix shader syntax error and duplicate declarationskal
- Removed duplicate 'light_dir' declaration in the shader. - Fixed a syntax error (duplicate closing raw string delimiter) that caused shader compilation failure. - Verified all targets build and run correctly with 'check_all.sh'.
3 daysfix(3d): Resolve shader validation error and tune shadowsskal
- Fixed 'redefinition of light_dir' shader validation error by centralizing the light definition at the top of fs_main. - Further brightened the floor in 'test_3d_render' for better shadow contrast. - Reduced shadow bias and made the light more vertical to ensure shadows are clearly visible on all surfaces.
3 daysfeat(3d): Implement unified shadow system with non-uniform scale supportskal
- Part 1: Unified shadow calculation in fragment shader for both SDF and rasterized objects. - Part 2: Added 'model_inverse_transpose' to ObjectData to correctly transform normals for non-uniformly scaled objects. - Part 3: Brightened the floor in 'test_3d_render' to make shadows visible. - Verified correct lighting and shadows on the non-uniformly scaled floor.
3 daysfeat(3d): Support non-uniform scale and shadows on rasterized objectsskal
- Implemented full support for non-uniform scaling by calculating and passing the 'model_inverse_transpose' matrix to the shader for correct normal transformation. - Added 'transpose()' and 'inverse()' methods to the 'mat4' class in 'mini_math.h'. - Refactored the shader to use the new matrix for lighting rasterized objects. - Updated the test scene to use a rasterized floor (CUBE) instead of an SDF one, ensuring it receives correct lighting and shadows even with non-uniform scale.
3 daysfeat(3d): Unify shadow calculations in shaderskal
- Refactored the fragment shader to calculate raymarched shadows for all fragments, not just SDF objects. - This enables rasterized objects (like the floor) to receive shadows from SDF objects, fixing the missing shadows in the test scene. - This serves as a proof-of-concept for a unified lighting pipeline.
3 daysfix(3d): Correct shadow bug with non-uniform scaleskal
- Changed the floor object in 'test_3d_render' from SDF BOX to rasterized CUBE. - This prevents the non-uniform scale of the floor from breaking the scene-wide SDF query used for shadow calculations. - The lighting and shadows now render correctly in the more complex test scene.
3 daystest(3d): Enhance test scene with more objectsskal
- Updated 'src/tests/test_3d_render.cc' to populate the scene with a large floor and 30 randomly placed objects (spheres, boxes, tori). - This provides a more complex environment to verify the new shadow mapping implementation.
3 daysfeat(3d): Implement scene query shadows (POC)skal
- Updated Renderer3D shader to include 'map_scene' and 'calc_shadow' functions. - Shader now iterates over all objects (up to kMaxObjects) to evaluate the scene SDF globally. - Implemented hard/soft shadows from a fixed directional light. - Updated GlobalUniforms struct with proper packing/padding for WebGPU compatibility. - Captured 'GPU BVH & Shadows' task in PROJECT_CONTEXT.md for future optimization.
3 daysadd new tasksskal
3 daysfeat(3d): Add scaffolding for visual debugging (Task #18a)skal
- Added 'src/3d/visual_debug.h/cc' to implement wireframe rendering. - Integrated VisualDebug into Renderer3D with a static global toggle. - Added '--debug' command-line option to 'demo64k' and 'test_3d_render' to enable wireframes. - Updated 'src/gpu/effects/hybrid_3d_effect.h' to expose the debug setter (reverted later as static method used). - Ensured full cross-platform compatibility (native and Windows) for the new debug module. - All code guarded by STRIP_ALL for final release.
3 daysdocs(todo): Add README quick start taskskal
- Incorporated the new task to add a 'Quick Start' section to README.md into the 'Next Up' section of TODO.md as Task #19.
3 daysdocs: Reorganize 3D.md and integrate tasksskal
- Moved 3D.md into the doc/ directory to centralize documentation. - Updated README.md to reflect the new location of 3D.md. - Captured the action items from 3D.md (visual debug mode, Blender exporter) and added them as a new task (#18) in the PROJECT_CONTEXT.md roadmap.
3 daysdocs: Update PROJECT_-CONTEXT.md with completed tasksskal
- Moved completed tasks #4b and #10 to a new 'Recently Completed' section. - Cleaned up the 'Next Up' list to reflect the current priorities. - Ensures the project roadmap is an accurate, up-to-date reflection of the project's status.
3 daysdocs: Deprioritize Linux cross-compilation (Task #4a)skal
- Moved Task #4a from TODO.md (Next Up) to PROJECT_CONTEXT.md (Future Optimizations). - This reflects its current status as a lower-priority, long-term goal.
3 daysdocs(todo): Archive completed tasks #4b and #10skal
- Moved the descriptions for tasks #4b (check_all script) and #10 (spectool optimization) to the 'Past Tasks' section in TODO.md. - This adheres to the rule of archiving completed tasks to keep the 'Next Up' list focused.
3 daysfeat(build): Add check_all script and optimize spectoolskal
- Task #4b: Added scripts/check_all.sh to build and test all platform targets (native and Windows cross-compile) to ensure pre-commit stability. - Task #10: Modified spectool to trim both leading and trailing silent frames from generated .spec files, reducing asset size.
3 daysdocs(todo): Archive completed tasksskal
- Moved completed items from the main list to the 'Past Tasks' section as per the file's instructions.
3 daysdocs: Refactor and prioritize project task listsskal
- Restructured PROJECT_CONTEXT.md to introduce a clear roadmap with 'Next Up', 'In Progress', and 'Future Goals'. - Condensed the 'Session Decisions' section into a concise 'Architectural Overview' focusing on the current state. - Updated TODO.md to reflect the highest priority tasks: finalizing the build system and optimizing spectrogram assets.