GAMES101第十四讲Ray Tracing 2笔记

一、使用包围盒加速光线追踪

(1)先将目标场景分为多个包围盒,并把与物体重叠的包围盒记录下来。
使用包围盒加速光线追踪
(2)判定光线与包围盒的相交情况
判定光线与包围盒的相交情况
①找到光线与场景中每个相交的包围盒,查看它们是否是记录的与物体重叠的包围盒。
②判断光线与包围盒中的所有物体的相交情况。
③小技巧:如果光线沿着右上方向投射,如果光线穿过当前盒子,下一个相交的盒子只需要查看该盒子的右边盒子与上方盒子即可。其余方向同理。
(3)不同包围盒数量与其加速情况
只有一个包围盒
①如果只有一个包围盒,那么没有加速效果。
很多包围盒
②如果包围盒很多,那么会降低效率。
③创建的包围盒数量需要有一个权衡。

二、空间划分(Spatial Partitions)

(1)下面是三种空间划分的方法:
空间划分
①Oct-Tree为八叉树,对于每个需要划分的空间,都将其划成八块,如果子空间划分完后只有少量块里有物体,那么就不再划分,否则再将子空间也划成八块。
②KD-Tree对于每个需要划分的空间,都沿着轴划一刀分成比较均匀的两部分,如此往复。
③BSP-Tree对于每个需要划分的空间,可以从任意方向划一刀分成比较均匀的两部分,如此往复。

三、KD-Tree

(1)下面是使用KD-Tree的一个划分以及存储例子。
KD-Tree
KD-Tree的存储
①非叶子结点存储划分的轴等相关信息,不存储物体信息。
②叶子结点存储包围盒内的物体信息。
(2)使用KD-Tree划分进行光线追踪的例子
使用KD-Tree划分进行光线追踪的例子1
①光线首先与区域A相交,然后判断光线与A的两个子节点判断是否有交点。如果有交点,则继续往下判断。
使用KD-Tree划分进行光线追踪的例子2
②当遇到叶子结点,如果光线与叶子结点1的包围盒相交时,则光线与1内所有的物体都进行相交判定,发现光线不予1内任何物体相交。
使用KD-Tree划分进行光线追踪的例子3
③光线与叶子结点3的包围盒相交时,接着将光线与3内所有的物体都进行相交判定,发现光线与其中一个物体存在交点。
④如此循环直到遍历完整个KD-Tree。
(3)KD-Tree的缺点:
①KD-Tree的建立需要判断场景内所划分的包围盒与物体的相交情况,这样是比较困难的。
②KD-Tree是按空间划分的,那么如果一个物体被多个包围盒分割,它就必须存储到多个包围盒里。

四、Bounding Volume Hierarchy(BVH)

(1)Bounding Volume Hierarchy是一种物体划分方法,该方法是目前图形学中常用的方法。
BVH1
BVH2
①BVH将当前空间按照物体分成两部分。
②BVH尽可能使两边的物体数量保持平衡。
③BVH中,每个物体只存在一个包围盒中。
BVH3
(2)BVH的划分技巧
BVH的划分技巧
①每次沿着最长的轴划分。
②如果该空间内有n个物体,那么沿着第n/2个物体进行划分,这样可以是两边的物体数量平衡。(可以使用快速划分算法来找到第n/2个物体)
③当空间内的物体较少时停止划分(例如5个)。
(3)BVH的存储
①BVH的存储方法与KD-Tree类似。
BVH的存储
(4)光线与BVH划分求交点的伪代码
光线与BVH划分求交点的伪代码
①是一个递归算法。
(5)空间划分与物体划分的特点总结

五、辐射度量学(Basic radiometry)

(1)之前所学的Blinn-Phong模型是一个简化的模型,辐射度量学可以让我们获得更精确的光线追踪结果。辐射度量学可以提供物理上正确计算光照的方法。
(2)一些概念
概念1
①Radiant Energy:能量,单位为焦耳J=Joule。
②Radiant Flux(Power):单位时间的能量,单位为瓦特W=Watt(或者流明lm=lumen)。
(3)光的度量
光的度量
①Radiant Intensity:光源会往四面八方都辐射能量。
②Irradiance:物体表面一个点会从四面八方接受能量。
③Radiance:光线传播的能量度量。
(4)弧度制
①在平面中,我们会使用弧度制来度量平面角的大小。平面中,弧度是指弧长和半径的比例,一个圆的弧长为2π。
弧度制
②立体角是平面角在三维空间中的推广。将平面的弧度制推广到三维空间为球面度,球面度是指球上的面积与半径平方的比例,一个球的球面度为4π。
③给定θ和φ可以得到其对应的球面面积。
给定θ和φ可以得到其对应的球面面积
(5)Radiant Intensity
Radiant Intensity
①Radiant Intensity是指光源每个单位立体角的能量。
每个单位立体角的能量计算
②如果一个光源向周围均匀辐射能量,那么它在每个单位立体角的能量为它的总能量/4π。

参考文献

课程视频链接: GAMES101 Lecture14 Ray Tracing 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值