文章目录
前言
今天的内容是光线追踪中的Whitted-Style。
一、光线追踪
光线追踪概述
光线追踪,简单来说,根据光路可逆性,从摄像机发射光线去主动感知场景。
光栅化不能解决或者不能很好的解决一些问题,比如说一些全局的效果,软阴影,Glossy Reflection(类似于毛玻璃这样的反射),间接光照(Indirect Illumination 光线在抵达摄像机/人眼之前反射了多次的情况)。以上效果用光栅化的办法也不是不行,就是效果不怎么好。
总的来说,光栅化很快,但是质量相对不好。
光线追踪是一种准确的方法,但是运算速度非常慢。所以我们一般在实时渲染(每秒钟要渲染30帧以上)中一般使用光栅化。而光线追踪使用在像电影特效一类的非实时(offline)的渲染中,一般需要10k cpu/小时来渲染一帧。
光线(Light Rays)
关于光线有三个要点
- 首先,光线是沿着直线传播的(这实际上是错的,光线在物理上是一种波,但是我们不考虑那么多)。
- 其次,光线和光线不会发生碰撞(当然在现实生活中这也是不对的,但是我们依然不考虑那么多)。
- 最后,光线一定是从光源发出,经过不断地反射直射(当然也可能直接),进入眼睛的(我们能看到东西一定是因为有光线这么做了,没有这么做的光线我们看不到,也就没有讨论意义)。同样的,这个过程也可以反着表示,也就是我们可以认为光线从眼睛出发经过一系列反射折射,到达光源。这叫做光路可逆性(Reciprocity)。