Ray Tracing
光栅化的方法,有很多物理效果难以实现
光:
- 沿直线传播
- 光本身没有碰撞箱
- 光线可逆
Whitted-Style Ray Tracing
一种递归算法
光线定义: 起点与一个有方向的向量
是否相交 ——
- 隐式表面,直接代入求解
- 显式表面,与三角形求焦
- 光线和平面求焦
- 焦点是否在三角形内
表示平面:法向量+一个点P,满足方程:
MT 算法
Bounding Voluming:使用包围盒来抽象复杂形状——如果一个光线连包围盒都碰不到,那么更不可能碰到里面的物体
轴对齐包围盒——AABB “横平竖直”
对空间划分 —— Oct-Tree KD-Tree BSP-Tree
对物体进行划分 —— BVH
辐射度量学
准确定义光照的办法
光的属性: Radiant Flux Intensity Irradiance Radiance
- Radiant Flux (Power):光源单位时间辐射出的能量
是功率,单位 光学上使用
Radiant Intensity
Radiant Intensity 简称 Intensity,光从光源发出方向性的能量
Power per unit solid angle (每个单位立体角上的Power
立体角:单位面积/半径平方 ->
Irradiance
物体表面接收多少光 Power Per Unit Area (总能量
Power/面积
Radiance
度量光传播中的能量
某个方向进来,A接收到的能量。所以把所有方向积起来就是Irradiance
BRDF
描述一个微小面积,如何收集一个方向的能量(Radiance)-> Irradiance ,再反射到其他地方去(Radiance)
收集一个方向的能量,按照一定的比例再发射出去
比如漫反射,就是均等的向各个角度分配能量。
把每一个可能的入射方向对一个出射方向(视角)分配的能量积起来,就是我们看到这个点的光线效果 反射方程:
渲染方程:把自己发的光再加上反射方程(自己的光+别人来的光 引用Games101闫神的课件 ![[Pasted image 20251212194202.png]]
这就变成一个递归程序
写成 ——
可以得到
然后展开,分解成—— 看到光源,光源经过一次反射到达surface,经过两次,经过三次……