usuiforhe 3 lat temu
rodzic
commit
b266617e58
3 zmienionych plików z 34 dodań i 1 usunięć
  1. BIN
      图形学/Image/121.png
  2. BIN
      图形学/Image/122.png
  3. 34 1
      图形学/图形学.md

BIN
图形学/Image/121.png


BIN
图形学/Image/122.png


+ 34 - 1
图形学/图形学.md

@@ -2044,11 +2044,44 @@ Shadow Mapping可以处理硬阴影的情况:即一个点要么在阴影中,
 
 ### 加速计算光线与物体表面的求交 (Accelerating Ray-Surface Intersection)
 
-最暴力的做法,每个像素打出的光线都要与所有的物体,所有的三角形计算交点,并且光线每经过一次 反射/折射 都要计算新的光线与每个物体的三角形的交点
+计算光照最暴力的做法,每个像素打出的光线都要与所有的物体,所有的三角形计算交点,并且光线每经过一次 反射/折射 都要计算新的光线与每个物体的三角形的交点
 
 如果真的是上面这种暴力做法,计算效率就特别低
 
 所以必须想办法提高渲染的效率
 
+使用 **包围盒** / **包围体积** / `Bounding Volumes`
+
+![](./Image/121.png)
+
+保证复杂物体一定在某个简单体积内
+
+如果光线碰不到包围盒,那么盒子内的物体更不可能碰到
+
+> 对应的表示方法可以是AABB表示
+
+依旧以 $(o + td - c)^2 - R^2 = 0$ 为例
+
+![](./Image/122.png)
+
+以二维平面为例
+
+- 上图中间得到 $t_{y_{min}}$ 和 $t_{y_{max}}$ 两个点,表示光线与包围盒y轴交点是t的值
+- 上图左边得到 $t_{x_{min}}$ 和 $t_{x_{max}}$ 两个点,表示光线与包围盒x轴交点是t的值
+- 那么在包围盒中的t值为 $t_{x_{min}}$ 和 $t_{y_{max}}$ 
+
+通过求出 光线 与 x、y 平面相交的的时间,得出 $t_{enter} = min(t_{y_{min}}, t_{x_{min}})$ 和 $t_{quit} = max(t_{y_{max}}, t_{x_{max}})$
+
+> $t_{quit}$  表示 光线 离开碰撞盒的t值
+> $t_{enter}$ 表示 光线 进入碰撞和的t值
+
+于是将该理论发展到三维空间
+
+$t_{enter} = min(t_{x_{min}}, t_{y_{min}}, t_{z_{min}})$ 
+$t_{quit} = max(t_{x_{max}}, t_{y_{max}}, t_{z_{max}})$
+
+- 如果 ${t_{quit}}$ 小于 0,则表示 光线 与 碰撞体 不相交,因为 光线 离开碰撞盒子的 t 小于0, 则表示 碰撞盒 在光线的反方向
+- $t_{enter}$ 小于0, ${t_{quit}} 大于0,则表示 光源 在碰撞盒 内部 
+- 如果 $t_{enter}$ 小于 ${t_{quit}},并且 $t_{quit}$ 大于 0, 则表示 光线 与 碰撞盒 相交
 
 # 动画模拟、仿真