we set a point P inside the triangle defined by P_0,1,2 via barycentric coordinates (1-b1-b2, b1, b2) equal to the ray function r(t). Thus r(t) = O + tD = point P = (1-b1-b2)P0 + b1P1 + b2P2
The rest of the math is solving for the value of t (see equation on previous slide) and the barycentric coordinates of the point P in the P_0,1,2 triangle.
VioIchigo
Here is a more detailed introduction of this algorithm: http://www.scratchapixel.com/lessons/3d-basic-rendering/ray-tracing-rendering-a-triangle/moller-trumbore-ray-triangle-intersection
qqqube
I found a really interesting published paper describing an algorithm that outperforms Moller Trumbore by between one to six percent (depending on the image). It's faster because it precomputes and stores extra information for each triangle, making intersection calculations much quicker. http://jcgt.org/published/0005/03/03/paper.pdf
With 4 CPU cores (multithreading), they were able to get about a 3.8x improvement over 1 core.
With a Nvidia GPU, they were able to get over a 100x speedup!
letrangg
[just bookmarking that this slide is important, not a comment for credit]
isaaclee06
I just want to get confirmation on this slide that an "x" represent a cross product and a filled in dot is a dot product, correct?
we set a point P inside the triangle defined by P_0,1,2 via barycentric coordinates (1-b1-b2, b1, b2) equal to the ray function r(t). Thus r(t) = O + tD = point P = (1-b1-b2)P0 + b1P1 + b2P2
The rest of the math is solving for the value of t (see equation on previous slide) and the barycentric coordinates of the point P in the P_0,1,2 triangle.
Here is a more detailed introduction of this algorithm: http://www.scratchapixel.com/lessons/3d-basic-rendering/ray-tracing-rendering-a-triangle/moller-trumbore-ray-triangle-intersection
I found a really interesting published paper describing an algorithm that outperforms Moller Trumbore by between one to six percent (depending on the image). It's faster because it precomputes and stores extra information for each triangle, making intersection calculations much quicker. http://jcgt.org/published/0005/03/03/paper.pdf
I found an interesting paper about speeding up these ray-triangle intersections: Performance analysis for GPU-based ray-triangle algorithms
With 4 CPU cores (multithreading), they were able to get about a 3.8x improvement over 1 core. With a Nvidia GPU, they were able to get over a 100x speedup!
[just bookmarking that this slide is important, not a comment for credit]
I just want to get confirmation on this slide that an "x" represent a cross product and a filled in dot is a dot product, correct?
@isaaclee06 Yes, that is correct.
To see for yourself, look at this article and then do a Ctrl+F to find references to cross product and dot product: http://www.scratchapixel.com/lessons/3d-basic-rendering/ray-tracing-rendering-a-triangle/moller-trumbore-ray-triangle-intersection
I thought figure 1 on page 2 of the original paper was helpful:
https://cadxfem.org/inf/Fast%20MinimumStorage%20RayTriangle%20Intersection.pdf
They also provide a description for the geometric intuition behind rearranging the terms (this is described right above the figure).