跳至正文

Ray Tracing2(Acceleration & Radiometry)

如何利用AABB加速光线追踪呢?

均匀格子

空间划分

 
 

均匀格子

1.把场景的包围盒找出来

2.创建均匀的格子

3.哪些格子里可能有物体

注:右上角那块应该也涂上 这里涂错了

光线穿过没有东西的格子就不计算

直到穿到有东西的格子

这里认为判断与格子相交的性能消耗是小于判断与物体相交的

加速效果如何?

只有一个:没有意义

格子太密了:效率低

平衡在哪里呢?

 
 

格子法在特别多多边形并且很密集的场景内效率很高

但在较为空旷的 不密集的场景就不高了

这个就叫做”Teapot in a stadium“问题

 
 

空间划分

八叉树:每个结点都砍两刀 切成四块 如果是三维就是八块

维度越高越不好用

KD树:每个节点沿着某一个轴 只砍一刀

BSP树:每个节点沿着某个方向 也是只砍一刀 但是不是横平竖直的

维度高一样不好用

 
 

 
 

实际上蓝色部分也应该同样被划分

这里为表示清楚并没有操作

同上

如果要设计一种数据结构来存储KD

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

问题:如果场景全是三角形构成的 如何判定包围盒和三角形有交集呢?

同一个物体会因为KD树的划分出现在不同的节点里

 
 

 
 

另外一种方法:不是从空间做起 而是从物体做起

BVH

 
 

 
 

 
 

尽量减少划分的重叠

 
 

怎么划分结点才能得到均匀的分布呢?

1.只沿着最长的那个轴把它分成两半

2.取中间的那个物体

BVH的数据结构

 
 

 
 

比较:

 
 

辐射度量学

对于布林冯模型有很多简化 存在很多不现实的地方

光的强度I假如是10 为什么是10 是10什么单位?

whitted风格不够真实 做了很多的简化

所有的答案都在辐射度量学

 
 

如何去描述光照?

描述光在空间的属性

仍然还在几何光线的框架内

几个新名词就用英文原词了

 
 

Radiant Energy:光源辐射的能量

Radiant Flux:单位时间的能量

 
 

单位时间通过感光平面的光子数量

 
 

其它的概念:

 
 

Radiant Intensity:

每个单位立体角的能量

什么是立体角?

 
 

 
 

什么是立体角?

三维空间中弧度的延伸

单位立体角 就找一个单位面积

整个球对应的立体角

 
 

光源在任何一个方向上的亮度

实际应用:

11WLED相当于60W的白炽灯

intensity = 815流明/4pi = 65 candelas

 
 

发表评论

您的电子邮箱地址不会被公开。