Skip to content

Commit a9c9573

Browse files
committed
add notes 19
1 parent bf25cc2 commit a9c9573

20 files changed

+260
-2
lines changed

.DS_Store

8 KB
Binary file not shown.

2-3平面方程式.pdf

260 KB
Binary file not shown.

GAMES101_Lecture_19.pdf

9.96 MB
Binary file not shown.

GAMES101_Lecture_20.pdf

15.2 MB
Binary file not shown.

Notes12.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ regularization 正规化 使用相同的三角形来表达
99
## Sub division 方法
1010
### Loop (并不是循环 只是提出人的名字是loop)
1111

12-
Loop 细分: 先细分, 再调整 (但是 Loop 细分至适用于三角形网格)
12+
Loop 细分: 先细分, 再调整 (但是 Loop 细分仅适用于三角形网格)
1313

1414
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/mesh2.png)
1515

@@ -65,10 +65,18 @@ u 是和顶点的度有关的一个数
6565

6666
经典的shadow mapping 只能处理点光源
6767

68-
1. 从光源看向场景, 记录深度(光源到物体的距离, 考虑被遮挡的情况, 一些光根本照不到物体.)
68+
1. 从光源看向场景, 记录深度(光源到物体的距离, 考虑被遮挡的情况, 一些光根本照不到物体. 所以很多物体不能从光源处看到)
6969
2. 从摄像机出发, 看到的场景再投射回光源, 计算深度(点到光源的距离, 不考虑被遮挡)
7070
3. 对比两个距离, 如果不一样, 表示存在遮挡(阴影).
7171

72+
73+
[Unity实时阴影实现图解](https://gameinstitute.qq.com/community/detail/112131) 这里对阴影也有一些说明
74+
75+
```
76+
第一次渲染中以光源位置作为视点,基于 Z-buffering 算法,将每个像素点的深度值(z-depth)也就是距离光源最近的对象距离记录在 Z-buffer 中,输出到 FBO(Framebuffer Object) 关联的 texture 中,生成 Shadow Map。
77+
第二次场景渲染时,以正常摄像机作为视点,将每个 fragment 到光源的距离和 Shadow Map 中保存的深度值进行比较,如果大于后者则说明被其他物体遮挡处于阴影之中。
78+
```
79+
7280
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/shadow.png)
7381

7482
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/shadow2.png)

Notes13.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Lecture 13 Ray tracing 1
22

3+
Read More
4+
5+
[解密NVIDIA光线追踪技术](https://zhuanlan.zhihu.com/p/35745255)
6+
7+
想了解光线追踪,你可以环顾四周,找到被光线照亮的物体,沿着到达视点的光线反方向进行追踪,就是光线追踪。
8+
9+
310
## why
411

512
光线追踪能解决全局效果的场景 (尤其是间接光照很合适, 当然并不是说光栅化就不能做全局光照)

Notes17.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Lecture 17 Material
2+
3+
4+
# BRDF (R:Reflection)
5+
6+
BRDF 就是两个方向的函数 (一个入射方向 一个出射方向)
7+
入射方向决定以后, BRDF 可以得到出射方向的分布.
8+
9+
10+
# 散射 Scatter
11+
散射包括反射和折射
12+
13+
# 反射
14+
15+
# 折射
16+
17+
## 焦散
18+
由于光线的聚焦产生的明显图案
19+
20+
海底的这幅图 (老师本人设为焦散这个翻译不合适 因为实际上是聚焦 并没有发散)
21+
22+
因为海水不平整 肯定会形成多个光线聚在一块的情况
23+
24+
## 斯涅耳定律 Snell Law
25+
26+
当这个根号下的内容 < 0 的时候 也就是 1 - xxx < 0 这个 xxx 的部分 > 0 也就是 N1/N2 > 1 此刻全反射
27+
28+
也即是入射介质的折射率大于折射介质的折射率 比如从水中看向水面
29+
30+
## 非涅耳项
31+
32+
决定多少能量发射了反射 多少能量发生了折射
33+
34+
较为平视物体的时候 能看到能多反射
35+
俯角看物体的时候 反射最少
36+
37+
# 微表面 MircoFacet
38+
近处看 是不同的几何
39+
远处看 是材质
40+
41+
漫反射的粗糙表面 在很近的地方看, 可以理解为是很多很小的镜面
42+
43+
每一个微表面 就是很小很小的镜面
44+
45+
46+
## PBR
47+
PBR 就会使用微表面模型
48+
49+
## 各向异性材质 各项同性材质
50+
各向同性: 微表面不存在方向性 OR 方向性很弱 发生漫反射的物体
51+
52+
各项异性: 微表面存在明确的方向性 (比如金属水壶, 不锈钢杯子等)
53+
54+
## BRDF 的性质
55+
入射方向和出射方向调换 得到的出射方向就是之前的入射方向
56+
57+
能量守恒 (能量不会增多)

Notes18.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Lecture 18 Advanced Light Transport
2+
3+
4+
无偏光线传播
5+
6+
## 双向路径追踪 BDPT
7+
8+
当光线传播在光源这半边容易计算时 BDPT 效果更好 emmm 不理解
9+
10+
## Metropolis light transport
11+
12+
这里 Metropolis 不是大都市的意思, 而是人名
13+
14+
马尔科夫链蒙特卡洛方法
15+
16+
马尔科夫链: 根据当前的样本, 推断出和这个样本靠近的下一个样本.
17+
18+
和之前的均匀采样的蒙特卡洛不一样, 之前是各自相互独立的随机生成光线.
19+
马尔科夫则是当前有一个样本, 然后再周围生成一个新样本, 然后用这些样本去估计函数的值.
20+
21+
22+
23+
PS: 这里的PDF 是概率密度函数.
24+
25+
26+
## Photon Mapping 光子映射
27+
28+
适合 caustics 场景 (由于光线的聚焦产生的明显图案)
29+
30+
假设: 光子打到漫反射物体上就停下来
31+
32+
近邻算法, 找到最近的几个光子, 然后计算密度.
33+
34+
光子密度太少, 很多噪点
35+
光子密度太大, 画面就很模糊.
36+
37+
### 局部密度估计
38+
39+
有偏估计 biased 但是是一致的.
40+
光子数量有限, 最后得到的结果一定有一点模糊.
41+
42+
和真实正确的结果相比, 只要存在一点模糊, 就是有偏的.
43+
一致的则是表示, 当光子足够多, 达到无限的时候, 最后得到的结果收敛到不模糊的结果.
44+
45+
46+
## VCM
47+
双向路径追从和光子映射的结合
48+
49+
50+
## 实时辐射度 IR (又称为 很多光线算法)
51+
将被照亮的物体当做光源 所以每次都只计算直接光照.
52+
53+
缺点: 缝隙处可能存在高亮 另外不能处理glossy 物体
54+
55+
# Advanced Appearance Modeling
56+
外观建模
57+
58+
## 散射介质: 不在一个表面上而是散布在空间中. (比如云, 雾, 烟 等)
59+
60+
## 头发:
61+
Marshner Model 效果比 Kajiya model 好
62+
在头发内部又发生反射, 头发在处理的时候被认为是一根玻璃柱.
63+
64+
人的头发模型和动物的毛发存在差别.
65+
66+
动物毛发更容易发生散射. 对于动物的毛发适用双圆柱模型(新版狮子王).
67+
68+
## 颗粒材质
69+
70+
## Translucent 材质 (可穿透的材质)
71+
72+
比如玉, 水母等.
73+
74+
次表面散射BSSRDF. 在物体内部发生很多次反射最后出去.
75+
76+
## 布料材质
77+
从 Fiber 缠绕形成 Ply, Ply 缠绕形成 Yarn.
78+
79+
不同的编织方式会得到不同的结果.
80+
81+
## 波动光学
82+
当物体很小, 和光波相近的时候, 就会发生很多衍射和干涉的情况.
83+
尤其是铝材质, 放大看是五颜六色.
84+
85+
# 噪声函数 Noise
86+
可以利用噪声函数, 得到空间中的点来模拟立体物体. (这样处理速度快)
87+
88+
比如山脉, 水面的波纹.
89+
90+
程序化材质, Houdini 就专门做这个的.

Notes19.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Lecture 19 Camera & Lens & Light Fields
2+
3+
Sensor 记录的是 irradiance.
4+
5+
针孔相机无法得到景深效果, 不论远近都是一样清晰.
6+
7+
8+
# FOV 视场
9+
10+
和广角有关
11+
12+
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/fov.jpg)
13+
14+
从上图可知, 视场和焦距, 传感器大小有关
15+
16+
17+
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/fov2.jpg)
18+
19+
视场越窄, 到的东西就越远.
20+
21+
## 曝光
22+
23+
T ✖️ E 时间乘以 irradiance. (irradiance 辐照度 简化的理解可以是流明, 光的强度)
24+
25+
瞳孔可以理解为光圈, 因此在暗光的环境下, 瞳孔会放大.
26+
27+
## ISO
28+
ISO 是后期处理, 一张图 ✖️ 一个数 得到的结果. 因此原来的噪声也会成倍的放大.
29+
30+
## 机械快门
31+
32+
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/shutter.jpg)
33+
34+
由于是像闸门一样打开快门, 因此对于螺旋桨这样的高速运转的物体拍摄存在问题.
35+
36+
# 镜头
37+
38+
一般来说透镜是将平行光聚集到一个点. 不过下面这个另一面是平的透镜则不能这样
39+
40+
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/len.jpg)
41+
42+
现在手机通过透镜组, 实现动态改变焦距.
43+
44+
光线通过透镜的中心, 方向不会改变.
45+
46+
焦距和物距相距的关系
47+
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/len2.jpg)
48+
49+
# 景深
50+
51+
## Defocus Blur
52+
53+
## COC 弥散圆
54+
55+
近视的原理
56+
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/coc.jpg)
57+
58+
大光圈和小光圈会影响到模糊的范围, 大光圈是远处的物体模糊.
59+
60+
所谓远处的物体模糊, 就是说清晰的范围很小. 而小光圈之所以整个物体不论远近都很清晰, 实际上是因为清晰的范围大.
61+
62+
63+
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/dof.jpg)
64+
DF 是最远的深度, DN 是最近的深度
65+
66+
关于上面说到的清晰的范围, 可以在 [这里](http://graphics.stanford.edu/courses/cs178/applets/dof.html) 体验各个参数对DOF的影响
67+
68+
DOF = DF - DN
69+
70+
这里左边红色的区域就是 DOF 的范围
71+
72+
73+
当光圈很大的时候, DOF范围很有限.
74+
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/dof1.jpg)
75+
76+
77+
当光圈很小的时候, DOF 很大(很远)
78+
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/dof2.jpg)

Notes20.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Lecture20
2+
3+
# Ligth Of Field 光场
4+
5+
## Plenotic Function
6+
7+
VR 的原理: 全光函数
8+
![image](https://raw.githubusercontent.com/lumixraku/NotesForGraphics/master/images/plenotic.jpg)
9+
10+
11+
t 表示时间, 用一个7 个维度的函数来描述的场景.
12+
θ 表示眼睛所在点
13+
φ 表示看向物体的方向
14+
λ 波长 (颜色)
15+
Vx Vy Vz 人的位置
16+
17+
18+
光场就是任何一个位置往任何一个方向光的强度.

0 commit comments

Comments
 (0)