如何计算光线与物体的交点

作为一个小白,之前一边自我感动一边看了点网课。看会了吗?不存在的。看会了就不叫小白了。

但是,事物总是不断发展不断前进的,现在大概前进到左下角那里了吧。

射线与球的交点的计算

怎么算?根据看热闹时留下的印象,好像是联立,解二次方程。

那末,具体怎么算?不知道呐……

射线与平面的交点的计算

怎么算?根据看热闹时留下的印象,平面方程是法线叉乘=0的形式,好像是联立射线与平面的方程,解一次方程。

那末,具体怎么算?不知道呐……

射线与三角形的交点的计算

怎么算?根据看热闹时留下的印象:

GAMES101说的好像是直接联立的射线与三角形的方程,然后用”克拉默法则“解方程。

Taichi说的好像是在平面相交的基础上改的,先判断射线是否与三角形所在的平面相交,再判断交点是否在三角形上。

那末,具体怎么算?不知道呐……

一些相关的链接

网页1——射线三角形求交公式推导

这个链接里,给出了用克拉默法则解方程计算射线与三角形交点的完整过程

但是,什么是克拉默法则?好像是利用平行四边形等面积法,推导出来的一个长*高=长*高的什么公式。具体的……忘了。。不忘就不是小白啦!很正常……

(102条消息) 光线追踪(RayTracing)算法理论与实践(二)平面、材质、联合光线与物体求交_沈土豆的博客-CSDN博客

那末,克拉默法则,到底,具体是什么? 

网页2——克拉默法则

这种就是所谓的递归式的学习……

矩阵形式的线性方程组

 在数学上,存在着这么一类的方程:

为了便于说明,这里拿一个小的来举例子

这个可以写成矩阵的形式

矩阵形式的线性方程组的图像解释 

 可以按基变换来理解这个方程

 这个【-4,-2】,是初始的单位正交基下的

 基变换

 这个【x,y】,也是初始的单位正交基下的

克莱姆法则的图像解释

以这个线性方程组为例。

这里,只讨论det不为0的情况

平行四边形的面积=底*高

底是绿色的单位向量i,长度是1,高是未知数y,所以基变换之前的 

S=w*h=|i|*y=1*y=y

 基变换以后,根据行列式与基变换的关系,可得:

S'=det(A)* y

 然后,把【2,0】和【4,2】看作是相对于【i,j】的一组新基,老基【i,j】对应网眼的面积为1

因为行列式的值代表面积伸缩比例

所以变换后的四边形的面积=老基网眼面积(1*1=1)*伸缩比例(det的值)

 解x也是同理

 

 

 三维的同理,把平行四边形的面积推广成平行六面体的体积就可以了。

总结

  • 这个不叫按平行四边形等面积法列方程,应该叫按平行四边形面积公式列方程,然后联立,解出的未知数的值
  •  计算复杂度是按阶数的阶乘增长的,是一个漂亮的理论公式,却不适合实际计算
  • 大概是这个意思吧……

引用自:

【官方双语】克莱姆法则,几何解释_哔哩哔哩_bilibili

行列式的介绍:

-UP主汉语配音-【线性代数的本质】合集-转载于3Blue1Brown官方双语】_哔哩哔哩_bilibili

网页3——有数学推导还有代码实现

这个网页里,有数学推导,还给出了代码。

覆盖了射线与球,射线与平面,射线与box,射线与三角形。

挺全面的。

大概就是这种感觉:

引用自:

(154条消息) 光线跟踪的几种常见求交运算_0小龙虾0的博客-CSDN博客_光线求交

后记

实践,也不一定就是写代码的那种实践。

这个应该也属于实践吧。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值