射线追踪Ray Tracing
射线追踪描述:
用射线追踪的方式生成图像,实际上就是模拟现实中物体和光线相互作用。人眼之所以能看到物体并且感知物体颜色,是因为有光线从物体表面反射到人眼。射线追踪模拟无法与现实相同,所以它利用我们感知物体及其颜色等属性的反向过程,即光线的路径为:相机-物体-光源。
射线追踪算法原理:
Ray Tracing算法使用的是由像素组成的图像(如图中的视平面)。例如,如果视平面是20*20的,那么一共有400个像素,就会有400条光线。发射射线就是为了为每个像素获得一个颜色值。
光线触碰到最近的物体进行相互作用,反射或者折射的光线如果不遇到其他物体,那么该光线对应视平面的像素点就是亮点;如果光线从一开始就不碰到任何物体,或者经过一次作用后又遇到其他物体作用,那么就是暗点。
简单来说就是,射线去寻找最近的碰撞点,然后继续追踪,直至没有碰撞后,返回最后一次碰撞的物体颜色。(如图视平面上的黄球投影和地面阴影)
对每个像素都进行同样操作,就可以得到视平面所有像素的颜色。