GAMES101 Lecture14 光线追踪2

目录

      • [Uniform Spatial Partitions (Grids)](#Uniform Spatial Partitions (Grids))
        • [Preprocess - Build Acceleration Grid(预处理,构建加速网格)](#Preprocess - Build Acceleration Grid(预处理,构建加速网格))
        • [Ray-Scene Intersection](#Ray-Scene Intersection)
      • [Spatial Partitions(空间划分)](#Spatial Partitions(空间划分))
        • [KD-Tree Pre-Processing (预处理KD树)](#KD-Tree Pre-Processing (预处理KD树))
          • [Traversing a KD-Tree(遍历KD树)](#Traversing a KD-Tree(遍历KD树))
        • [Object Partitions & Bounding Volume Hierarchy(BVH)](#Object Partitions & Bounding Volume Hierarchy(BVH))
          • [Building BVHs](#Building BVHs)
          • [Data Structure for BVHs(存储BVH的数据结构)](#Data Structure for BVHs(存储BVH的数据结构))
      • 空间划分和物体划分的区别
      • [Basic radiometry(辐射度量学)](#Basic radiometry(辐射度量学))
        • [Radiant Energy and Flux(Power)](#Radiant Energy and Flux(Power))
        • [Radiant Intensity(辐射强度)](#Radiant Intensity(辐射强度))
      • 参考资料

Uniform Spatial Partitions (Grids)

Preprocess - Build Acceleration Grid(预处理,构建加速网格)

  1. 首先,找到包围盒。
  2. 创建网格
  3. 存储与物体表面相交的格点

Ray-Scene Intersection

求出光线与哪些各点相交,沿着光线传播的方向遍历每个格子。

与这个格点存储的物体依次求交,判断是否与物体相交。

通常情况下,划分的格子数量与场景中的物体数量存在一个常数关系。

格子不能太稀疏,也不能太密集。

这种方法比较适合于场景中物体分布较为均匀的情况。

对于场景中存在大量空白的场景就不适合。

Spatial Partitions(空间划分)

空间划分的例子:

KD-Tree Pre-Processing (预处理KD树)

KD树的内部节点存储的信息:

  • 当前划分的轴是哪个轴:x-, y-, z-
  • 划分的位置:某个轴的坐标
  • 子节点:指向子节点的指针
  • 实际的物体都只存在于叶结点中。
Traversing a KD-Tree(遍历KD树)

从根节点开始,判断光线是否可能与当前节点相交;如果可能相交就递归地去搜索子节点,再去判断;如果不可能相交直接返回。

Object Partitions & Bounding Volume Hierarchy(BVH)

BVH 将场景中的物体进行划分,划分为两个子BVH ,两个子BVH 中的物体不存在交集,递归划分下去,保证每个物体最终只出现在一个包围盒中。

这种以物体进行划分就可以完全避免在KD树中,物体、三角形与包围盒求交,一个物体出现在多个节点中的问题。

BVH划分的包围盒有可能相交。

主要步骤:

  1. 找到当前的包围盒
  2. 递归地将当前的对象划分为两个子集。
  3. 重新计算两个子集的包围盒。
  4. 在必要的时候停止递归。
  5. 在每个叶节点存储物体。
Building BVHs

如何在划分一个节点呢?

  • 选择一个维度来划分。
    • 技巧1:总是选择当前最长的维度来进行划分。
    • 技巧2:以当前位于中位数的物体的位置来进行划分。

终止条件:

当节点中的物体数量少于某个数时停止划分,比如5.

Data Structure for BVHs(存储BVH的数据结构)

中间节点:

  • 包围盒
  • 子节点

叶节点:

  • 包围盒
  • 对象列表

BVH和光线算法的主要步骤:

空间划分和物体划分的区别

  • 空间划分(KD-Tree)

    • 空间划分为两个不相交的部分
    • 一个物体可能被包含在多个节点中。
  • 物体划分

    • 物体被划分在不相交的子集中。
    • 包围盒可能在空间中相交。

Basic radiometry(辐射度量学)

定义了照明测量系统和单位。

能够精确测量空间中光的一些属性:

复制代码
辐射通量、强度、辐照度、辐射度

辐射度量学相当于在物理上准确定义和度量光照的一个方法。

Radiant Energy and Flux(Power)

Radiant Energy: Energy that is transferred by electromagnetic radiation, such as light, X-rays, gamma rays, and thermal radiation, which may be described in terms of either discrete packets of energy, called photons, or continuous electromagnetic waves.(电能,由电磁辐射(如光、X 射线、伽马射线和热辐射)传递的能量,可以用离散的能量包(称为光子)或连续的电磁波来描述)

Radiant flux : 单位时间内的能量,也就是功率,单位是lumen.

几个重要的光学度量名词:

Radiant Intensity(辐射强度)

定义:由点光源发出的每单位立体角辐射强度,单位立体角的Power。

什么是立体角呢?

角度:弧长除半径。

立体角:在三维空间中的延伸。

面积除半径的平方。

因此,Radiant Intensity的定义就得到了:

参考资料

GAMES101 Lecture14

相关推荐
CUC-MenG5 小时前
2025牛客多校第十场 K.神奇集合 F.老师和Yuuka逛商场 E.老师与好感度 I.矩阵 个人题解
数学·线段树·贪心·dp·线性dp·构造·强联通分量·树上背包·线段树二分
databook1 天前
把数学对象画出来:Manim Mobject类库速查手册
python·数学·动效
CUC-MenG3 天前
2025牛客多校第九场 G.排列 A.AVL树 F.军训 个人题解
数学·dfs·dp·笛卡尔树·组合数·曼哈顿距离·树上dp
Always_away3 天前
数学分析| 极限论| 1.数列极限常用方法总结
笔记·学习·考研·数学
CUC-MenG4 天前
2025杭电多校第八场 最有节目效果的一集、最自律的松鼠、最甜的小情侣、最努力的活着 个人题解
数学·线段树·高精度·模拟·dp·红黑树·线性dp·平衡树·线段树维护矩阵
CUC-MenG6 天前
2025杭电多校第七场 矩形框选、伤害冷却比 个人题解
数学·线段树·差分·扫描线·二维数点·区间最值
CUC-MenG6 天前
2025牛客多校第八场 根号-2进制 个人题解
数学·fft
CUC-MenG6 天前
2025牛客多校第七场 双生、象牙 个人题解
数学·gcd·欧拉筛·质数筛
zhmc8 天前
欧拉公式的意义
数学·应用数学
CUC-MenG11 天前
快速莫比乌斯变换(FMT)与莫比乌斯反演 例题:树上lcm
数学·dfs·fmt