From a4bfd2f1aae7274eaeb632a8b60a75357da7b410 Mon Sep 17 00:00:00 2001 From: skal Date: Mon, 2 Feb 2026 16:52:25 +0100 Subject: fix(3d): Tighten torus bounding box and restore object textures - 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. --- src/3d/visual_debug.cc | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/3d/visual_debug.cc') diff --git a/src/3d/visual_debug.cc b/src/3d/visual_debug.cc index 99d4b9f..c6c5c51 100644 --- a/src/3d/visual_debug.cc +++ b/src/3d/visual_debug.cc @@ -173,13 +173,17 @@ void VisualDebug::create_pipeline(WGPUTextureFormat format) { wgpuShaderModuleRelease(shader_module); } -void VisualDebug::add_box(const mat4& transform, const vec3& color) { - // 8 corners of unit cube [-1, 1] - vec4 p[] = { - transform * vec4(-1, -1, -1, 1), transform * vec4(1, -1, -1, 1), - transform * vec4(1, 1, -1, 1), transform * vec4(-1, 1, -1, 1), - transform * vec4(-1, -1, 1, 1), transform * vec4(1, -1, 1, 1), - transform * vec4(1, 1, 1, 1), transform * vec4(-1, 1, 1, 1)}; +void VisualDebug::add_box(const mat4& transform, const vec3& local_extent, + const vec3& color) { + float lx = local_extent.x; + float ly = local_extent.y; + float lz = local_extent.z; + + // 8 corners of transformed box + vec4 p[] = {transform * vec4(-lx, -ly, -lz, 1), transform * vec4(lx, -ly, -lz, 1), + transform * vec4(lx, ly, -lz, 1), transform * vec4(-lx, ly, -lz, 1), + transform * vec4(-lx, -ly, lz, 1), transform * vec4(lx, -ly, lz, 1), + transform * vec4(lx, ly, lz, 1), transform * vec4(-lx, ly, lz, 1)}; // 12 edges (each 2 vertices) DebugLine edges[] = { -- cgit v1.2.3