Theory & Practice of RayTracing
2
介绍
这篇文章将介绍光线追踪技术。在计算机图形领域中,这种技术被普遍应用于生成高质量的照片级
图像。在为一个场景计算光照的时候,通过固定图形渲染管线可以计算 phong 光照模型,由于该模
型的特征,使得渲染的物体看起来有塑料的质感。如果要渲染一个有金属质感且能反射周围环境的
物体,phong 模型就无能为力了。和固定渲染管线相比,可编程图形渲染管线的力能要强的多,虽
然可以实现很多逼真的光照效果,比如利用环境贴图来现实物体对环境的反射效果。但是这种环境
反射只能反射出已经保存在 Cube Map 中的图像。在真实世界中,如果一个能反射周围环境的物体
周围还有很多其他物体,它们就会相互反射。一般的环境贴图技术达不到这样的效果,于是在渲染
照片级画面的时候,就要用到光线追踪的技术。文本还将利用 c++面向对象的方法来实现光线追踪。
原理
在介绍原理之前,先考虑一个问题:我们是怎样看到真实世界中的物体的?我们能看到物体,是因
为该物体上有反射光线到达我们的眼睛。没有任何光线传入眼睛,我们就看不到任何东西。我们还
经常看到一个物体表面能反射另一个物体。这也是因为被反射物体表面的反射光线到达该物体表面
后,该物体继续将光线反射到我们的眼睛里,于是我们看到了该物体表面反射其他物体的效果。现
在,我们将从物体表面出发最后到达眼睛的光线的方向反向。先来看看下面的 Fig1,在 Fig1 中是一
个虚拟的场景,场景中有 2 个球和 1 个圆锥,白色的点代表光源,中间四边形就是虚拟屏幕,屏幕
上一个一个的小方格就代表像素,相机的位置代表观察者眼睛的位置。
Fig1 光线追踪场景
光线追踪的原理就是从相机的位置发出一条条通过每一个像素的射线,如果该射线和场景中的物体
相交,那么就可以计算出该交点的颜色,这个颜色就是对应的像素的颜色。当然,计算像素颜色的
时候首先要计算出交点处所有与光照计算相关量,比如法线,入射光线和反射光线等等。
评论30
最新资源