From 535b63d608948c5a9a85e96d1e8c7e475b00ede0 Mon Sep 17 00:00:00 2001 From: skal Date: Wed, 4 Feb 2026 09:45:17 +0100 Subject: handoff(Claude): Stabilize 3D renderer with rotating skybox and two-pass architecture - Fixed black screen by ensuring clear operations in Pass 2 when Skybox pass is skipped. - Resolved WebGPU validation errors by synchronizing depth-stencil state. - Implemented rotating skybox using world-space ray unprojection (inv_view_proj). - Improved procedural noise generation (multi-octave Value Noise). - Restored scene integrity by correcting object indexing and removing artifacts. - Updated documentation (TODO.md, PROJECT_CONTEXT.md). --- src/tests/test_3d_render.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src/tests') diff --git a/src/tests/test_3d_render.cc b/src/tests/test_3d_render.cc index 5ae8b3a..2e9b663 100644 --- a/src/tests/test_3d_render.cc +++ b/src/tests/test_3d_render.cc @@ -120,11 +120,6 @@ void setup_scene() { g_scene.clear(); srand(12345); // Fixed seed - // Skybox object (always drawn first by renderer) - Object3D skybox(ObjectType::SKYBOX); - skybox.scale = vec3(1000.0f, 1000.0f, 1000.0f); // Large sphere - g_scene.add_object(skybox); - // Large floor, use BOX type (SDF) at index 0 Object3D floor(ObjectType::BOX); floor.position = vec3(0, -2.0f, 0); @@ -222,6 +217,8 @@ int main(int argc, char** argv) { sky_def.params = {42.0f, 4.0f, 1.0f, 0.5f, 6.0f}; g_textures.create_procedural_texture("sky", sky_def); + g_renderer.set_sky_texture(g_textures.get_texture_view("sky")); + setup_scene(); g_camera.position = vec3(0, 5, 10); -- cgit v1.2.3