【虎书压缩计划】Chapter4 - Ray Tracing

当别人在讨论光追比传统光栅化牛逼在哪,你不懂点原理好意思说自己是游戏开发的吗!!

       计算机图形学中最基本的要解决的问题之一,就是要将三维空间中的物品,在设定好相机角度后,渲染为一张二维屏幕上的画面。很久以来我都对着一点很疑惑:平时在Unity搭建场景的时候看到的不就已经是三维场景的二维画面了吗?为什么还要考虑这个渲染的问题……那tm是因为Unity已经完成了实时渲染这一步伞兵……过去长久的历史中,人们对这个问题的解决办法,就是考虑三维空间中的每一个物件(object),看它对屏幕上的每个像素会造成什么影响(contributes),这样的办法称为object-order rendering,也是面试官常问的渲染管线中所使用的渲染方法。但光追,完全是另一个思维。

Ray Tracing的基本定义

       光追使用的渲染方法又称为image-order rendering,即从每个像素出发,考虑所有能对这个像素照成影响的光线。

这里可以插一嘴便于理解光追和光栅化的区别:光栅化是对光照的一种近似,科学家们用各种手段,让光照后的画面看着像现实中的画面;但光追是真正的让光,从现实世界,投射进了你眼前的这块屏幕,你所见的,与现实世界中并没有分别。

       虎书之所以先介绍光追而不是传统的光栅化,是因为学习光追可以省去object-order rendering中的mathematical machinery??真的吗?我不信……

       光追的思想是:从像素中“发射”出一道光线(光线的角度我猜测与摄像机和像素位置之间的关系得出),关注与这条光线相交的所有objects中,与摄像机最近的一个,因为这个物体是唯一得到这条光线直接光照的物体。因此光追的步骤可以分成如下三步:

程序的伪代码也就对应地得到:

透视 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值