Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool triIntersect(float3 v0, float3 v1, float3 v2, ray_t ray, float *tmin)
- {
- float3 a = v0 - v1;
- float3 b = v2 - v0;
- float3 p = v0 - ray.pos;
- float3 n = cross(b, a);
- float3 q = cross(p, ray.dir);
- float idet = 1.0 / dot(ray.dir, n);
- float u = dot(q, b) * idet;
- float v = dot(q, a) * idet;
- float t = dot(n, p) * idet;
- *tmin = t;
- return !(u < 0.0 || u > 1.0 || v < 0.0 || (u + v) > 1.0) && t > 0.0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement