首页 理论教育前向光线追踪实践:虚拟现实应用开发

前向光线追踪实践:虚拟现实应用开发

【摘要】:图3-2光子反射过程图3-3前向光线追踪现在从计算机图形的角度来看待这种情况。在这种情况下,发射的光子将撞击图形平面上许多像素的一个,并将该点的亮度增加到大于零的值。这种技术称为前向光线追踪,因为我们是沿着光子从光源向观察者前进的路径。此外,我们也不能保证物体的表面被光子完全覆盖,这是这项技术的主要缺点。另外,正如我们将看到的,射线追踪器中最昂贵的任务是找到射线几何交点。

在用计算机生成的图像中模拟光与物体相互作用过程之前,我们需要了解一个物理现象。一束光线照射在物体上时,反射的光子中只有少数会到达我们眼睛的表面。想象一下,假设有一个每次只发射一个光子的光源,光子从光源发出并沿着直线路径行进,直至撞击到物体表面,忽略光子的吸收,该光子会以随机的方向反射。如果光子撞击到我们的眼睛表面,则我们会看到光子被反射的点。具体过程如图3-2所示。

图3-2 光子反射过程

图3-3 前向光线追踪

现在从计算机图形的角度来看待这种情况。首先,我们用像素组成的平面代替我们的眼睛。在这种情况下,发射的光子将撞击图形平面上许多像素的一个,并将该点的亮度增加到大于零的值。重复多次直到所有的像素被调整,创建一个计算机生成的图像。这种技术称为前向光线追踪(Forward Tracing)(见图3-3),因为我们是沿着光子从光源向观察者前进的路径。(www.chuimin.cn)

但是,这种技术在计算机中模拟光子与物体相互作用是不太现实的,因为在实际中反射的光子击中眼睛表面的可能性是非常非常低的,我们必须投射大量的光子才能找到一个能够引起眼睛注意的。此外,我们也不能保证物体的表面被光子完全覆盖,这是这项技术的主要缺点。

换句话说,我们可能不得不让程序一直运行,直到足够的光子喷射到物体的表面上获得精确的显示。这意味着我们要监视正在呈现的图像以决定何时停止应用程序。这在实际生产环境中是不可能的。另外,正如我们将看到的,射线追踪器中最昂贵的任务是找到射线几何交点。从光源产生大量光子不是问题,但是在场景内找到所有的交点将会是非常昂贵的。

图3-4 光线被阻挡