diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/3d/renderer.cc | 2 | ||||
| -rw-r--r-- | src/tests/test_3d_render.cc | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/3d/renderer.cc b/src/3d/renderer.cc index 8676db4..d39aac0 100644 --- a/src/3d/renderer.cc +++ b/src/3d/renderer.cc @@ -254,7 +254,7 @@ fn fs_main(in: VertexOutput) -> @location(0) vec4<f32> { normal = normalize(transpose(normal_matrix) * n_local); // Apply texture to SDF color - if (obj_type == 2.0) { // BOX (used for floor) + if (obj_type == 4.0) { // PLANE (used for floor) let uv_grid = p.xz * 0.5; let grid = 0.5 + 0.5 * sin(uv_grid.x * 3.14) * sin(uv_grid.y * 3.14); let grid_val = smoothstep(0.45, 0.55, grid); 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); |
