| Age | Commit message (Collapse) | Author |
|
- 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).
|
|
- 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.
|
|
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
|
|
- 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).
|
|
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
|
|
|
|
- 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.
|
|
- 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.
|
|
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- 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'.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
|
|
- 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.
|
|
- Incorporated the new task to add a 'Quick Start' section to README.md into the 'Next Up' section of TODO.md as Task #19.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- Moved completed items from the main list to the 'Past Tasks' section as per the file's instructions.
|
|
- 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.
|
|
- Moved PHASE2_COMPRESSION.md into the doc/ directory.
- Updated README.md to list and describe the new documentation file.
|
|
- Added preprocessor definitions for 'WGPUOptionalBool_True' and 'WGPUOptionalBool_False' to ensure successful cross-compilation against the older wgpu-native headers used for the Windows build.
- This resolves the build failures in the Windows CI/check script.
|
|
- Reverted modifications made to files within the 'third_party/' directory.
- Updated CONTRIBUTING.md to explicitly forbid any automated or manual changes to third-party code.
|
|
- Task A: Centralized all generated code (assets, timeline) into a single directory to create a single source of truth.
- Task A: Isolated test asset generation into a temporary build directory, preventing pollution of the main source tree.
- Task B: Vertically compacted all C/C++ source files by removing superfluous newlines.
- Task C: Created a top-level README.md with project overview and file descriptions.
- Task D: Moved non-essential documentation into a directory to reduce root-level clutter.
|
|
|