games系列学习 -- Möller Trumbore 算法

该博客详细介绍了Möller-Trumbore算法,这是一种用于检测三维空间中三角形与射线相交的高效方法。通过解析三角形的重心坐标和射线方程,建立线性方程组,并利用克莱姆法则求解,最终确定相交情况。博客内容涉及三维图形学中的几何计算和线性代数知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Möller Trumbore 算法三角形与射线(光线)之间判定是否相交的快速算法,利用了重心坐标来表示三角形。

首先假设射线的方程:O为发射点,D为方向向量

\overrightarrow{O}+t\overrightarrow{D} =0

再假设三角形平面方程:b1,b2,(1-b1-b2)分别是三个点的重心坐标,p分别是三个点

(1-b_1-b_2)\overrightarrow{P_0}+b_1\overrightarrow{P_1}+b_2\overrightarrow{P_2}=0

三角形重心坐标方程的推导:

p(s,t)=p_0+s(p_1-p_0)+t(p_2-p_0)

扩展b1,b2的范围可以将方程扩展到三角形所处的平面,所以判定三角形与射线是否相交的方法是,联立方程求解b1,b2,满足:b1>=0,b2>=0,b1+b2<=1则说明射线与三角形相交。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值