summaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-02 17:39:14 +0100
committerskal <pascal.massimino@gmail.com>2026-02-02 17:39:14 +0100
commit6847a7e1b54c9f76feef0c4110a897600983416e (patch)
treefc2fa82e98c4d8024faf49453cac728d1d8bfb6b /src/tests
parent4eb0a67ad12fdd8c82d7cbc37991b6977cb86568 (diff)
fix(3d): Stabilize shadows and isolate floor grid texture
- 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.
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/test_3d_render.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/tests/test_3d_render.cc b/src/tests/test_3d_render.cc
index a6db71b..e1762ed 100644
--- a/src/tests/test_3d_render.cc
+++ b/src/tests/test_3d_render.cc
@@ -137,29 +137,29 @@ void setup_scene() {
g_scene.clear();
srand(12345); // Fixed seed
- // Large floor, use PLANE type
- Object3D floor(ObjectType::PLANE);
+ // Large floor, use BOX type (SDF) at index 0
+ Object3D floor(ObjectType::BOX);
floor.position = vec3(0, -2.0f, 0);
- floor.scale = vec3(25.0f, 1.0f, 25.0f); // Thicker for proxy hull safety
+ floor.scale = vec3(25.0f, 0.2f, 25.0f);
floor.color = vec4(0.8f, 0.8f, 0.8f, 1.0f);
g_scene.add_object(floor);
// Large center Torus (SDF)
Object3D center(ObjectType::TORUS);
center.position = vec3(0, 1.0f, 0);
- center.scale = vec3(2.5f, 2.5f, 2.5f); // Larger
+ center.scale = vec3(2.5f, 2.5f, 2.5f);
center.color = vec4(1, 0.2, 0.2, 1);
g_scene.add_object(center);
// Moving Sphere (SDF)
Object3D sphere(ObjectType::SPHERE);
sphere.position = vec3(4.0f, 2.0f, 0);
- sphere.scale = vec3(1.5f, 1.5f, 1.5f); // Larger
+ sphere.scale = vec3(1.5f, 1.5f, 1.5f);
sphere.color = vec4(0.2, 1, 0.2, 1);
g_scene.add_object(sphere);
// Random objects
- for (int i = 0; i < 30; ++i) { // More objects
+ for (int i = 0; i < 30; ++i) {
ObjectType type = ObjectType::SPHERE;
int r = rand() % 3;
if (r == 1)
@@ -169,7 +169,7 @@ void setup_scene() {
Object3D obj(type);
float angle = (rand() % 360) * 0.01745f;
- float dist = 3.0f + (rand() % 100) * 0.05f; // Closer to center
+ float dist = 3.0f + (rand() % 100) * 0.05f;
float height = 0.5f + (rand() % 100) * 0.04f;
obj.position = vec3(std::cos(angle) * dist, height, std::sin(angle) * dist);