From 4eb0a67ad12fdd8c82d7cbc37991b6977cb86568 Mon Sep 17 00:00:00 2001 From: skal Date: Mon, 2 Feb 2026 17:34:03 +0100 Subject: fix(3d): Distinguish floor grid from object textures - 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). --- src/tests/test_3d_render.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/tests') diff --git a/src/tests/test_3d_render.cc b/src/tests/test_3d_render.cc index 9f046f9..a6db71b 100644 --- a/src/tests/test_3d_render.cc +++ b/src/tests/test_3d_render.cc @@ -137,10 +137,10 @@ void setup_scene() { g_scene.clear(); srand(12345); // Fixed seed - // Large floor, use BOX type (SDF) for receiving shadows - Object3D floor(ObjectType::BOX); + // Large floor, use PLANE type + Object3D floor(ObjectType::PLANE); floor.position = vec3(0, -2.0f, 0); - floor.scale = vec3(25.0f, 0.2f, 25.0f); + floor.scale = vec3(25.0f, 1.0f, 25.0f); // Thicker for proxy hull safety floor.color = vec4(0.8f, 0.8f, 0.8f, 1.0f); g_scene.add_object(floor); @@ -172,8 +172,11 @@ void setup_scene() { float dist = 3.0f + (rand() % 100) * 0.05f; // Closer to center float height = 0.5f + (rand() % 100) * 0.04f; obj.position = vec3(std::cos(angle) * dist, height, std::sin(angle) * dist); - float s = 0.6f + (rand() % 100) * 0.008f; // Larger - obj.scale = vec3(s, s, s); + + // Random non-uniform scale for debugging + float s = 0.6f + (rand() % 100) * 0.008f; + obj.scale = vec3(s, s * 1.2f, s * 0.8f); + obj.color = vec4((rand() % 100) / 100.0f, (rand() % 100) / 100.0f, (rand() % 100) / 100.0f, 1.0f); g_scene.add_object(obj); -- cgit v1.2.3