summaryrefslogtreecommitdiff
path: root/src/gpu/effects/shaders.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-08 17:01:33 +0100
committerskal <pascal.massimino@gmail.com>2026-02-08 17:01:33 +0100
commitafb04da1fc4780eed271064649377cf3e08d391f (patch)
tree9634553f6e686ff99f8d2c52b4269c16d62f9bbd /src/gpu/effects/shaders.cc
parentb650afa7e05bfc127275778042443a729cb395f8 (diff)
feat(shaders): Add Möller-Trumbore ray-triangle intersection
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
Diffstat (limited to 'src/gpu/effects/shaders.cc')
-rw-r--r--src/gpu/effects/shaders.cc1
1 files changed, 1 insertions, 0 deletions
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