summaryrefslogtreecommitdiff
path: root/common/shaders/ray_triangle.wgsl
diff options
context:
space:
mode:
Diffstat (limited to 'common/shaders/ray_triangle.wgsl')
-rw-r--r--common/shaders/ray_triangle.wgsl16
1 files changed, 8 insertions, 8 deletions
diff --git a/common/shaders/ray_triangle.wgsl b/common/shaders/ray_triangle.wgsl
index 13341c8..ece823a 100644
--- a/common/shaders/ray_triangle.wgsl
+++ b/common/shaders/ray_triangle.wgsl
@@ -3,18 +3,18 @@
// Reference: "Fast, Minimum Storage Ray-Triangle Intersection"
struct TriangleHit {
- uv: vec2<f32>,
+ uv: vec2f,
z: f32,
- N: vec3<f32>,
+ N: vec3f,
hit: bool,
};
fn ray_triangle_intersection(
- orig: vec3<f32>,
- dir: vec3<f32>,
- p0: vec3<f32>,
- p1: vec3<f32>,
- p2: vec3<f32>
+ orig: vec3f,
+ dir: vec3f,
+ p0: vec3f,
+ p1: vec3f,
+ p2: vec3f
) -> TriangleHit {
let d10 = p1 - p0;
let d20 = p2 - p0;
@@ -23,7 +23,7 @@ fn ray_triangle_intersection(
let invdet = 1.0 / det;
let d0 = orig - p0;
let nd = cross(d0, dir);
- let uv = vec2<f32>(dot(d20, nd), -dot(d10, nd)) * invdet;
+ let uv = vec2f(dot(d20, nd), -dot(d10, nd)) * invdet;
let z = dot(d0, N) * invdet;
let hit = det > 0.0 && z >= 0.0 && uv.x >= 0.0 && uv.y >= 0.0 && (uv.x + uv.y) < 1.0;
return TriangleHit(uv, z, N, hit);