From afb04da1fc4780eed271064649377cf3e08d391f Mon Sep 17 00:00:00 2001 From: skal Date: Sun, 8 Feb 2026 17:01:33 +0100 Subject: feat(shaders): Add Möller-Trumbore ray-triangle intersection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements ray-triangle intersection algorithm for future mesh raytracing support. Changes: - Add ray_triangle.wgsl with TriangleHit struct and intersection function - Register shader snippet in asset system (SHADER_RAY_TRIANGLE) - Add shader composer registration for #include "ray_triangle" support Returns: - hit.uv: Barycentric coordinates (for texture mapping) - hit.z: Parametric distance along ray - hit.N: Triangle face normal - hit.hit: Boolean indicating intersection Task: Progress on SDF for mesh (related to Task #18) Algorithm: Fast, Minimum Storage Ray-Triangle Intersection (Möller-Trumbore) Size: ~30 lines WGSL, negligible binary impact --- src/gpu/effects/shaders.cc | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/gpu/effects/shaders.cc b/src/gpu/effects/shaders.cc index dcbb0fd..51e6e41 100644 --- a/src/gpu/effects/shaders.cc +++ b/src/gpu/effects/shaders.cc @@ -48,6 +48,7 @@ void InitShaderComposer() { register_if_exists("lighting", AssetId::ASSET_SHADER_LIGHTING); register_if_exists("ray_box", AssetId::ASSET_SHADER_RAY_BOX); + register_if_exists("ray_triangle", AssetId::ASSET_SHADER_RAY_TRIANGLE); } // Helper to get asset string or empty string -- cgit v1.2.3