Games101课程笔记_lecture13_光线跟踪
Games101课程笔记_lecture13_光线跟踪
Ray tracing和光栅化是不同的成像方式
1 why Ray tracing
光栅化不好表现全局的效果。
- 阴影
- 玻璃的反射:光线在场景中弹了两次
- 间接光照:光线弹射不止一次。
以上这些光栅化不好做这些效果,
光栅化快,但是质量不好。
光线追踪精确,但是很慢,符合物理规律,很真实
光栅化:实时;光线追踪:离线
2 光传播
reciprocity-光线的可逆性,光源发出,也可以从眼睛发出关系。
你可以看到他,他也可以看到你。
从相机出发,往世界上投出光线,进行计算。
3 光线追踪
假设:
眼睛是一个点;
光源也是一个点;
物体会完美的反射和折射;
沿着一条光线考虑的是最近 的一个交点,完美解决了深度测试的问题。
3 Whitted-style ray Tracing
每个弹射点都与光源相连接。
先看这些点是否没挡住,每个点的着色都相加起来。有能量损失,要考虑进去。
也就是把所有的光路都遍历出来,然后计算颜色值,将其累加起来。
4 技术实现
1 光线交点
1 光线的数学表示方法
2 光线与球相交
t不知道。求t
求解t的过程如下,
求解的t必须要有意义。
球与光线的三个关系:
4 光线与隐式表面的交点
用数值的方法求解这个解。
5 关系与显示表面的交点
也就是光线与三角形求交。
奇数个交点在内部,偶数个交点在外部。
平面的数学定义
一条法线以及平面上的一个点
平面上的任意一个点可以用一条法线和平面上的任意一个点来表示;
利用平面的一个特性,平面的法线与平面的任意两个点的连线垂直。
计算方法,如下
可以解出平面与光线的交点,然后再判断交点是否在三角形的内部。、
懒办法
有没有办法马上就判断出交点是否在三角形内部
利用重心坐标来求出三角形内的任何一个点,然后和光线上的点做比较,只要相等就是一个点
t还是正的,对于重心坐标在三角形内部是否在三角形内就是P0,P1,P2的系数都大于0
2 光线和表面求交的加速
1 问题
1000多万个三角形,场景很复杂。
2 加速方法
1 包围盒
2光线如何求包围盒有交点
三维的盒子与光线的相交
求出三组进入和出去的时间。
iff当前仅当