1.为什么使用光线追踪
a.光栅化局限:(以下三点)
软阴影:现实世界中阴影分界线是渐变的

glossy反射:带有镜面或者高光的反射

间接光照:光线只从窗户进来,但是整个屋子被照亮

2.光线追踪的问题
a.光线追踪常常用于离线渲染(追求质量)
b.渲染一帧需要花费 1000 CPU 小时(下图)

3.如何定义光线
光线定义假设:
1.光线沿着直线传播(实际上不正确)
2.光线不会互相碰撞(实际上不正确)
3.光线在场景中传播,最终进入人的眼睛(实际上不正确)
4.光路可逆
4.光线投射
1.处理场景中的每一个像素,也就是每一个点
2.从眼睛的方向到该点连线,判断该点是否也能够和光源连线,如果可以,则该点不在阴影里。从光源到眼睛,有一条光路,便可以计算该点的着色。

每一个像素,从眼睛到该像素点发出的光线,和场景中物体相交,交点和光源连线,如果没有遮挡,则将该点的颜色写入像素中。

Whitted-Style 光线追踪 (1980年)
递归算法:
1.光线可以无限传播(反射,折射,继续弹射)
2.如果能够找到可逆的光路,则叠加像素颜色

技术问题一:光线和物体表面的交点
光线数学定义:
o为光源的原点
d为光线的方向
t为时间

光线和球体相交

光线和隐式表面的交点:
:
1.光线和平面求交点
2.交点是否在三角形内
平面的定义:
1.定义一个法向量
2.定义一个点,平面上任何点和该点的的向量乘以平面法向量结果为0

光线和平面相交

MT算法,计算光线和三角形相交
1.t大于0
2.b1,b2,b3 都是非负的
原理来自三角形重心坐标理论:参考文章
https://zhuanlan.zhihu.com/p/65495373

致谢:
截图和公式来源闫令琪老师games101课程 Ray Tracing 1
https://www.bilibili.com/video/BV1X7411F744?p=13
感谢闫令琪老师为我们带来这么精彩的图形学课程

本文介绍了光线追踪技术相对于光栅化的优点,如真实感的软阴影、镜面反射和间接光照。光线追踪常用于高质量离线渲染,但计算成本高。文中详细阐述了光线的定义及其与物体表面的交点计算,特别是光线与三角形的交点处理。Whitted-Style光线追踪算法通过递归追踪反射、折射路径实现更逼真的渲染效果。此外,还讨论了光线追踪在技术上面临的问题和解决方案。
1528

被折叠的 条评论
为什么被折叠?



