Games101课程笔记_lecture13_光线跟踪

Games101课程笔记_lecture13_光线跟踪
Ray tracing和光栅化是不同的成像方式

1 why Ray tracing

光栅化不好表现全局的效果。

  • 阴影
  • 玻璃的反射:光线在场景中弹了两次
  • 间接光照:光线弹射不止一次。
    以上这些光栅化不好做这些效果,

Games101课程笔记_lecture13_光线跟踪
光栅化快,但是质量不好。
Games101课程笔记_lecture13_光线跟踪
光线追踪精确,但是很慢,符合物理规律,很真实
光栅化:实时;光线追踪:离线

Games101课程笔记_lecture13_光线跟踪

2 光传播

reciprocity-光线的可逆性,光源发出,也可以从眼睛发出关系。
你可以看到他,他也可以看到你。

Games101课程笔记_lecture13_光线跟踪
从相机出发,往世界上投出光线,进行计算。
Games101课程笔记_lecture13_光线跟踪

3 光线追踪

Games101课程笔记_lecture13_光线跟踪
假设:
眼睛是一个点;
光源也是一个点;
物体会完美的反射和折射;
Games101课程笔记_lecture13_光线跟踪
沿着一条光线考虑的是最近 的一个交点,完美解决了深度测试的问题。
Games101课程笔记_lecture13_光线跟踪

3 Whitted-style ray Tracing

Games101课程笔记_lecture13_光线跟踪
Games101课程笔记_lecture13_光线跟踪
每个弹射点都与光源相连接。
先看这些点是否没挡住,每个点的着色都相加起来。有能量损失,要考虑进去。
也就是把所有的光路都遍历出来,然后计算颜色值,将其累加起来。

Games101课程笔记_lecture13_光线跟踪
Games101课程笔记_lecture13_光线跟踪

4 技术实现

1 光线交点

1 光线的数学表示方法

Games101课程笔记_lecture13_光线跟踪

2 光线与球相交

Games101课程笔记_lecture13_光线跟踪

t不知道。求t
Games101课程笔记_lecture13_光线跟踪
求解t的过程如下,
Games101课程笔记_lecture13_光线跟踪
求解的t必须要有意义。
球与光线的三个关系:
Games101课程笔记_lecture13_光线跟踪

4 光线与隐式表面的交点

Games101课程笔记_lecture13_光线跟踪
用数值的方法求解这个解。

5 关系与显示表面的交点

也就是光线与三角形求交。
奇数个交点在内部,偶数个交点在外部。
Games101课程笔记_lecture13_光线跟踪
Games101课程笔记_lecture13_光线跟踪

平面的数学定义

一条法线以及平面上的一个点
平面上的任意一个点可以用一条法线和平面上的任意一个点来表示;
利用平面的一个特性,平面的法线与平面的任意两个点的连线垂直。
Games101课程笔记_lecture13_光线跟踪
计算方法,如下
Games101课程笔记_lecture13_光线跟踪
可以解出平面与光线的交点,然后再判断交点是否在三角形的内部。、

懒办法

有没有办法马上就判断出交点是否在三角形内部
利用重心坐标来求出三角形内的任何一个点,然后和光线上的点做比较,只要相等就是一个点
t还是正的,对于重心坐标在三角形内部是否在三角形内就是P0,P1,P2的系数都大于0
Games101课程笔记_lecture13_光线跟踪

2 光线和表面求交的加速

Games101课程笔记_lecture13_光线跟踪

1 问题

Games101课程笔记_lecture13_光线跟踪

1000多万个三角形,场景很复杂。
Games101课程笔记_lecture13_光线跟踪

Games101课程笔记_lecture13_光线跟踪

2 加速方法

1 包围盒

Games101课程笔记_lecture13_光线跟踪
Games101课程笔记_lecture13_光线跟踪

Games101课程笔记_lecture13_光线跟踪

2光线如何求包围盒有交点

Games101课程笔记_lecture13_光线跟踪
三维的盒子与光线的相交

求出三组进入和出去的时间。
Games101课程笔记_lecture13_光线跟踪
iff当前仅当
Games101课程笔记_lecture13_光线跟踪
Games101课程笔记_lecture13_光线跟踪