Advertisement
Guest User

Untitled

a guest
Jul 29th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.45 KB | None | 0 0
  1. bool triIntersect(float3 v0, float3 v1, float3 v2, ray_t ray, float *tmin)
  2. {
  3. float3 a = v0 - v1;
  4. float3 b = v2 - v0;
  5. float3 p = v0 - ray.pos;
  6. float3 n = cross(b, a);
  7. float3 q = cross(p, ray.dir);
  8.  
  9. float idet = 1.0 / dot(ray.dir, n);
  10.  
  11. float u = dot(q, b) * idet;
  12. float v = dot(q, a) * idet;
  13. float t = dot(n, p) * idet;
  14.  
  15. *tmin = t;
  16. return !(u < 0.0 || u > 1.0 || v < 0.0 || (u + v) > 1.0) && t > 0.0;
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement