Skip to content

Commit 4fdd2b5

Browse files
committed
add lecture 14
1 parent 206b725 commit 4fdd2b5

File tree

12 files changed

+100
-3
lines changed

12 files changed

+100
-3
lines changed

Notes14.md

Lines changed: 100 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,115 @@
3939
所以
4040

4141
对于平面来说, 八叉树就变成了四叉树.
42+
4243
对于线段来说, 八叉树就变成了二叉树.
4344

45+
很显然 是n叉树, 和维度有关, 这样不太好.
46+
47+
因此就有了 KD tree 能对空间进行划分, 同时又和维度没有关系.
48+
4449
### KD-tree
50+
51+
在每一个格子中, 按照水平/垂直 方向只砍一刀
4552
每次都是 水平 --- 竖直 --- 水平 --- 竖直 这样交替的划分.
4653

4754
### BSP-tree
48-
不好计算
55+
和 KD tree 的区别是并不是横屏竖直的砍开
56+
57+
但是因为不是水平或者竖直, 不好计算
4958

5059
## KD-tree
60+
5161
从空间开始划分
62+
5263
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/kdtree.png)
5364

5465

55-
## BVH
56-
从物体开始划分
66+
如果光线和最外面的盒子有交点, 那么可能和子盒子有交点. 需要继续判断一下. 递归直到叶子节点.
67+
68+
如果一个子盒子是叶子节点, 光线就需要和这个叶子节点中的所有物体求交.
69+
70+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/kdtree1.png)
71+
72+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/kdtreeA.png)
73+
74+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/kdtreeB.png)
75+
76+
那么如何知道一个盒子和空间中的三角形面有交集呢?
77+
78+
有可能三角形的三个顶点都不在盒子里, 但是三角形却和盒子相交 (当盒子很小, 三角形很大的时候 )
79+
80+
81+
同时 KD tree 还有另一个问题, 一个物体有可能和多个叶子节点相交
82+
83+
例如 t hit 这个位置的物体 和3个叶子节点相交
84+
85+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/kdtree3.png)
86+
87+
88+
89+
90+
## BVH Bounding Volume Hierarchy
91+
92+
现代图形学中, 不论离线还是实时渲染, AABB 加速基本上都使用的这种算法
93+
94+
从物体开始划分, 而不是从空间开始划分.
95+
96+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/bvh1.png)
97+
98+
一堆三角形分为两堆, 左边的那一堆三角形又再次划分.
99+
100+
实际的物体都记录在叶子节点里
101+
102+
一个好处: 一个三角形只可能在一个包围盒中.
103+
104+
105+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/bvh2.png)
106+
107+
这里的median 怎么理解呢? 就是不管按照何种方式去划分三角形, 最后划分出的两堆三角形数量差不多.
108+
(平衡树的概念, 避免树的深度过高, 这样查找起来才效率才高. )
109+
110+
111+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/bvh3.png)
112+
113+
KD tree 是对空间划分, 物体可能即在左边又在右边
114+
115+
BVH 是对物体划分(更形象点说是分组) 但是空间上组与组之间可能有交集. 不需要计算三角形和包围盒如何相交
116+
117+
118+
## 辐射度量学
119+
120+
辐射度量学 在物理上准确定义光线的方法
121+
122+
123+
辐射能是电磁辐射的能量。它以焦耳为单位进行测量.
124+
125+
辐射通量是每单位时间发出,反射,传输或接收的能量 (也就是功率) 单位是w
126+
127+
描述光的功率: 流明 lm
128+
129+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/radiance.png)
130+
131+
- Radiant flux 辐射通量 (又称为 power)
132+
- Radiant intensity 辐射强度 (和方向有关)
133+
- irrediance 辐照度 (一个物体表面接收到的光的能量)
134+
- rediance 辐射 (光线在传播过程中度量能量)
135+
136+
137+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/radiance2.png)
138+
139+
Radiant Intensity 是单位立体角上的power
140+
141+
142+
### 立体角的定义
143+
144+
一般科学上, 针对平面 对于角的定义是用弧长来表示的.
145+
146+
那么对于立体情况, 就是用这个角对应的球的表面积来定义. (这里 A 是立体角对应的球面积) (也就是对弧度制的延伸)
147+
148+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/radiance3.png)
149+
150+
单位立体角可以理解为 半径为1的二维球面上的一小块面积
151+
152+
![image](https://github.com/lumixraku/NotesForGraphics/raw/master/images/radiance3.png)
153+
所有单位立体角的积分是 4π

images/bvh1.png

168 KB
Loading

images/bvh2.png

156 KB
Loading

images/bvh3.png

315 KB
Loading

images/kdtree1.png

167 KB
Loading

images/kdtree3.png

158 KB
Loading

images/kdtreeA.png

183 KB
Loading

images/kdtreeB.png

167 KB
Loading

images/radiace4.png

227 KB
Loading

images/radiance.png

200 KB
Loading

0 commit comments

Comments
 (0)