summaryrefslogtreecommitdiff
path: root/src/3d/visual_debug.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-02 16:52:25 +0100
committerskal <pascal.massimino@gmail.com>2026-02-02 16:52:25 +0100
commita4bfd2f1aae7274eaeb632a8b60a75357da7b410 (patch)
treeeeb881f20e0ba891dc27e4ca018ec3fd4712ef74 /src/3d/visual_debug.cc
parent2184a1043d1a071cdc78303b2247145bf3f18c0b (diff)
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.
Diffstat (limited to 'src/3d/visual_debug.cc')
-rw-r--r--src/3d/visual_debug.cc18
1 files changed, 11 insertions, 7 deletions
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[] = {