> 文章列表 > 光线追踪 1(基本概念Whitted-Style Ray Tracing)

光线追踪 1(基本概念Whitted-Style Ray Tracing)

光线追踪 1(基本概念Whitted-Style Ray Tracing)

为什么要光线追踪

光栅化存在什么问题

  • 无法实现软阴影(光源不是严格点光源时)
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

  • 无法解决光线反射超过一次的情况
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

  • 相对来说光照效果的质量低
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

光线追踪的特点

  • 准确
  • 慢(相对光栅化)

光线追踪 1(基本概念Whitted-Style Ray Tracing)

什么是光线追踪

光线的基本假设

  1. 光线沿直线传播(x)
  2. 光线在传播的过程中相互不干扰(x)
  3. 光线从光源传播到眼睛,其物理特性在路径反转的情况下相同

光线追踪的基本原理

  1. 从相机沿着每个像素,向真实世界看去,找到其相交的物体
  2. 计算该物体的实际着色
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

最最基础的光线追踪(Whitted-Style Ray Tracing)

从上图可以看见,只考虑光线的一次反射,就是Blinn Phong模型,下面我们要介绍一个基础的光追模型Whitted-Style Ray Tracing。

Whitted-Style Ray Tracing 做了啥?

  1. 考虑了Reflected Ray
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

  2. 考虑了Refracted Rays
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

  3. 递归计算

伪代码

for pixel in imagefor triangle in objectray -> direct lightray -> reflected rayfor triangle in objectray -> refracted raysfor triangle in object

光线追踪 1(基本概念Whitted-Style Ray Tracing)
so!! 如何判断一个光线与三角网的相交情况??

我们怎么肝

光线-物体(Triangle Mesh)相交

  1. 先对光线和三角形所在的平面求交
  2. 判断交点是在三角形内还是外
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

存在的问题


  • (判断次数:像素数 x 三角形数 x 碰撞数)
    (判断难度:每一次均须进行光线与三角形的相交判断)

如何变得更快 - Bounding Volumes

什么是 Bounding Volumes

一个包围住物体的盒子
光线追踪 1(基本概念Whitted-Style Ray Tracing)

使用方式 & 优点

  1. 使用:先进行包围盒的相交判定,如果相交再和其内的三角网进行判定
  2. 优点:如果和物体的包围盒不相交,避免了大量的无效计算

如何划分 Bounding Volumes

Uniform grids

How To Use

  1. Build Acceleration Grid
    光线追踪 1(基本概念Whitted-Style Ray Tracing)
  2. Ray-Scene Intersection
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

Problems

  1. 格子太大:相当于没有加速效果
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

  2. 格子太小:不必要的网格遍历变相导致效率下降
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

  3. object分布不均匀导致格子难以划分
    光线追踪 1(基本概念Whitted-Style Ray Tracing)

Spatial partitions(KD-Tree)

  1. Oct-Tree
  2. KD-Tree
  3. BSP-Tree

光线追踪 1(基本概念Whitted-Style Ray Tracing)
光线追踪 1(基本概念Whitted-Style Ray Tracing)

问题

  1. 一个三角形可能会属于多个叶子节点
  2. 进行空间划分的过程中需要对每个包围盒和三角形的相交判定(难)

Object partitions & Bounding Volume Hierarchy(BVH)

光线追踪 1(基本概念Whitted-Style Ray Tracing)

优点

  1. 每个三角形只会属于一个包围盒
  2. 根据范围内的三角形,可以直接算出包围盒的大小,避免了相交判断

参考资料

  • Games 101

风车动漫在线