引言.引入光线追踪的目的

1. 光栅化不易实现一些全局的效果
Games101 笔记:Lecture13 - Ray Tracing(1)阴影
(2)漫反射效果
(3)场景中的间接光照

2. 光栅化速度快,但真实感相对较差
Games101 笔记:Lecture13 - Ray Tracing
光线追踪更符合物理规律,但计算量大。

一.基础光线追踪算法

1. 模型假设
(1)光线沿直线传播
(2)光线不会发生碰撞(两道光线交叉后,仍分别沿原方向传播)
(3)光路具有可逆性(光线从光源发出,经过一系列反射折射损耗,最终进入人眼)

2. 基本思路
(1)沿“视点” → “屏幕上的像素” 方向往场景中做射线。
Games101 笔记:Lecture13 - Ray Tracing
(2)若而已eye ray 与场景中的物体有交点,则将该点与光源做一个连线。判断中间是否有其他物体阻挡:若有,该点在阴影里。若无,则通过着色模型计算该点着色。
Games101 笔记:Lecture13 - Ray Tracing

(3). Whitted-风格 光线追踪(Whitted - Styled)
Games101 笔记:Lecture13 - Ray Tracing

Games101 笔记:Lecture13 - Ray Tracing

【1】光线在场景会被多次反射,折射。
【2】路径上的每个交点都做一次着色,然后叠加到像素上。
【3】考虑光线传播过程中的能量损失。

二. 具体实现

1. 光线与物体求交
(1)求光线与隐式表面的交点
Games101 笔记:Lecture13 - Ray Tracing

求方程组的解,解得时间 t。

(2)求光线与显示表面的交点
方法:光线与三角形求交
思路:
[1].光线和平面求交
Games101 笔记:Lecture13 - Ray Tracing
[2].判断交点是否在三角形内 — Moller Trumbore 算法

Games101 笔记:Lecture13 - Ray Tracing
求解出 t, b1, b2。
当b1, b2满足
b1 >= 0
b2 >= 0
(1 - b1 - b2) >= 0
t >= 0

时,求出的交点在三角形中。

2. 加速光线与物体表面求交的过程

参考文档

【1】. https://www.bilibili.com/video/BV1X7411F744?p=13
【2】. http://games-cn.org/graphics-intro-ppt-video/

相关文章:

  • 2021-07-03
  • 2021-09-07
  • 2021-09-28
  • 2021-12-09
  • 2022-12-23
  • 2022-01-17
  • 2022-12-23
猜你喜欢
  • 2022-01-07
  • 2021-05-02
  • 2021-05-03
  • 2021-11-20
  • 2021-10-08
  • 2021-06-17
  • 2021-10-23
相关资源
相似解决方案