diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-08 17:01:33 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-08 17:01:33 +0100 |
| commit | afb04da1fc4780eed271064649377cf3e08d391f (patch) | |
| tree | 9634553f6e686ff99f8d2c52b4269c16d62f9bbd /src/gpu | |
| parent | b650afa7e05bfc127275778042443a729cb395f8 (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')
| -rw-r--r-- | src/gpu/effects/shaders.cc | 1 |
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 |
