Lecture14 RayTracing(Acceleration & Radiometry 加速度与辐射线测定)

最后更新于 2022-10-24 5868 次阅读


加速结构

  • AABB怎样与光线求交
  • 空间划分

空间划分方法

  1. 先找到这个包围盒
  2. 在做光线追踪之前,把场景划分成格子
  3. 标记与物体相交的格子
光线追踪
  1. 光线先逐步穿入格子,判断是否和格子相交
  2. 如果格子里有其他物体,判断是否相交
  3. 当和物体相交了,继续找到所有交点
  4. 即如何光栅化一条线

空间划分的加速效果

无加速效果
格子太密集
平衡数
这个技术在某些情况下很好

空间划分结构

  • 八叉树 将包围盒切成八份(二维情况下其实是四叉树)
  • KD树 和八叉树几乎完全相同 但是找到一个格子砍一刀(类似二叉树)
  • BSP树 空间二分
存储KD树的数据结构
  • 先看当前节点是哪一个轴的划分
  • 划分位置
  • 对于中间节点一定有子节点
  • 实际的物体(三角形)不存在中间节点,只存在叶子节点

KD树的缺点

  • KD树的建议并不简单
  • KD树判断三角形和物体相交非常困难
  • 一个实体可能存在多个节点中

BVH

  • 把物体进行划分
  • 避免了KD树中一个物体存在多个节点
  • 但BVH的划分很有讲究
  1. 找到一个包围盒
  2. 递归的把包围盒拆成两个部分,
  3. 并计算两个包围盒
  4. 停止条件 三角形数量

分布方法

  • 沿着最长的那个轴进行分布
  • 取中间的物体(中位数三角形) 分成两半
BVH数据结构
伪代码

辐射度量学

  • 这个光照强度的10 到底是什么?
  • Whitted风格的光线追踪就是真实的吗?
光照定义方法
  • Radiant Energy 能量
  • Radiant Flux (power)
  • 辐射能量
  • 接收能量
  • 传播过程损耗能量

Radiant Intensity

立体角

  • 角在三维空间的延伸(空间中角的大小)
单位立体
在一个方向上的亮度
  • 亮度即除以单位立体角