GLM地址 https://github.com/g-truc/glm
使用此函数在配置好GLM后,需要 #include <glm/gtx//intersect.hpp>
注意:此功能为 Experimental extensions
bool intersectRayTriangle
(
vec<3, T, Q> const& orig, vec<3, T, Q> const& dir,
vec<3, T, Q> const& vert0, vec<3, T, Q> const& vert1, vec<3, T, Q> const& vert2,
vec<2, T, Q>& baryPosition, T& distance
)
参数:
orig:射线初始位置
dir:射线方向
vert0,vert1,vert2:三角形3个顶点
baryPosition:交点的三角形重心坐标 注意是个2维向量,因为第三个重心坐标可通过1-u-v得到
distance:交点与orig的距离
返回值:
bool 是否相交
类函数还有:
glm::intersectLineSphere()
glm::intersectLineTriangle()
glm::intersectRayPlane()
glm::intersectRaySphere()
另, 一个大神自己写的版本: https://www.cnblogs.com/samen168/p/5162337.html