Explorar o código

修改Latex的写法

usuiforhe %!s(int64=3) %!d(string=hai) anos
pai
achega
0da903fac3
Modificáronse 1 ficheiros con 54 adicións e 54 borrados
  1. 54 54
      图形学/图形学.md

+ 54 - 54
图形学/图形学.md

@@ -50,8 +50,8 @@ $$
 
 点乘的运算
 
-- 2D:  $\vec{a} \cdot \vec{b} = (^{x_a} _{y_a}) \cdot (^{x_b} _{y_b}) = x_a*x_b + y_a*y_b  $
-- 3D:  $\vec{a} \cdot \vec{b} = \begin{pmatrix}x_a \\ y_a \\ z_a\end{pmatrix} \cdot \begin{pmatrix} x_b \\ y_b \\ y_c \end{pmatrix} = x_a * x_b + y_a * y_b + z_a * z_b $
+- 2D: $\vec{a} \cdot \vec{b} = (^{x_a} _{y_a}) \cdot (^{x_b} _{y_b}) = x_a*x_b + y_a*y_b $
+- 3D: $\vec{a} \cdot \vec{b} = \begin{pmatrix}x_a \\ y_a \\ z_a\end{pmatrix} \cdot \begin{pmatrix} x_b \\ y_b \\ y_c \end{pmatrix} = x_a * x_b + y_a * y_b + z_a * z_b $
 
 ![](./Image/001.png)
 
@@ -241,7 +241,7 @@ $$
 \end{bmatrix}
 $$
 
->  $A^* $是 $\vec{a} $的dual matrix
+> $A^* $是 $\vec{a} $的dual matrix
 
 ## 变换
 
@@ -337,8 +337,8 @@ $$
 
 ![平移](./Image/008.png)
 
--  $x' = x + t_x $
--  $y' = y + t_y $
+- $x' = x + t_x $
+- $y' = y + t_y $
 
 $$
 \begin{bmatrix}
@@ -512,10 +512,10 @@ $$
 
 三维与二维无非就是多了一个维度,其他的变换相似,原理相同
 
-point :  $\begin{pmatrix}
+point : $\begin{pmatrix}
     x & y & z & 1
 \end{pmatrix}^T $  
-vector :  $\begin{pmatrix}
+vector : $\begin{pmatrix}
     x & y & z & 0
 \end{pmatrix}^T $
 
@@ -706,7 +706,7 @@ $$
 
 > 因为相机朝向是-Z轴,所以f值一般小于r值
 
-在定义完一个矩形之后,需要将其通过一系列变换转换成图片中最右边的标准立方体(canonical cub  $[-1 ,1]^3 $)
+在定义完一个矩形之后,需要将其通过一系列变换转换成图片中最右边的标准立方体(canonical cub $[-1 ,1]^3 $)
 
 - 一系列变换指的是
   - 矩形移动到原点
@@ -739,7 +739,7 @@ $$
 
 ![](./Image/017.png)
 
-前置知识:点(x, y, z, 1)乘以k,得到(kx, ky, kz, k != 0)表示其实也是点(x, y, z, 1),将k换成z,可以得到(xz, yz,  $z^2 $,z != 0),也表示(x, y, z, 1)这个点  
+前置知识:点(x, y, z, 1)乘以k,得到(kx, ky, kz, k != 0)表示其实也是点(x, y, z, 1),将k换成z,可以得到(xz, yz, $z^2 $,z != 0),也表示(x, y, z, 1)这个点  
 
 > (1, 0, 0, 1)与(2, 0, 0, 2)表示同一个点
 
@@ -962,7 +962,7 @@ $$
 
 **傅里叶变换**:给定任意函数可以通过一系列变换变成另一个函数,还可以把变换后的函数通过逆变换再变回去
 
-- 傅里叶变换:  $F(w) = \int_{-\infty}^{\infty}f(x)e^{-2\pi iwx}dx $
+- 傅里叶变换: $F(w) = \int_{-\infty}^{\infty}f(x)e^{-2\pi iwx}dx $
 - 逆傅里叶变换: $f(x) = \int_{-\infty}^{\infty}F(w)e^{2\pi iwx}dw $
 
 ![](./Image/025.png)
@@ -1049,11 +1049,11 @@ $$
 
 ![](./Image/033.png)
 
-- 图(a) :  $X_a(t) $为原函数图像
-- 图(c) :  $P_\delta(t) $为冲击函数
-- 图(e) :  $S(t) $为原函数与冲击函数乘积的结果,就是 $X_a(t) $函数上离散的点
-- 图(b) :  $X_a(t) $函数傅里叶变换之后的函数
-- 图(d) :  $P_\delta(t) $冲击函数傅里叶变换之后的新的冲击函数
+- 图(a) : $X_a(t) $为原函数图像
+- 图(c) : $P_\delta(t) $为冲击函数
+- 图(e) : $S(t) $为原函数与冲击函数乘积的结果,就是 $X_a(t) $函数上离散的点
+- 图(b) : $X_a(t) $函数傅里叶变换之后的函数
+- 图(d) : $P_\delta(t) $冲击函数傅里叶变换之后的新的冲击函数
 - 图(f) : 图(b)与图(d)的卷积的结果
 
 图(c)的冲击函数,就是只有在竖线上才有值,也就是说图(a)与图(c)的乘积就是在图(a)上周期行的取一些点,就跟之前的取样一样的
@@ -1134,7 +1134,7 @@ MSAA解决的对信号的模糊操作,只不过MSAA最后的出来的值也可
 
 先画远处的面,再画近处的面,一层一层的覆盖
 
-需要先对所有的三角形面片进行排序,时间复杂度  $O(n\log _2n) $
+需要先对所有的三角形面片进行排序,时间复杂度 $O(n\log _2n) $
 
 ![](./Image/039.png)
 
@@ -1189,7 +1189,7 @@ shading,引入物体的明暗的不同,颜色的不同,**对不同的物
 
 同一束光照,当紫色物体旋转时,其单位面积接收到的光变少,导致其变暗
 
-任何一个着色点周围单位面积能接受到多少光照,与光线的角度成一定关系,从而引出Lambert's定律:接受到的光照与l和n的余弦(上图中的  $\cos \theta $)成正比
+任何一个着色点周围单位面积能接受到多少光照,与光线的角度成一定关系,从而引出Lambert's定律:接受到的光照与l和n的余弦(上图中的 $\cos \theta $)成正比
 
 > 带入现实,一个是太阳能板,被照射面积越大热得越快;一个是四季,夏天是被太阳光直射
 
@@ -1197,7 +1197,7 @@ shading,引入物体的明暗的不同,颜色的不同,**对不同的物
 
 对于一个光源,某一瞬间,其发出的能量是固定的,而伴随着光线的传递,其蕴含的能量也逐渐分散(球壳,而不是圆形)
 
-此时定义距离为1是,光线强度为**I**,当距离为r,则光纤强度为  $\frac{I}{r^2} $,通过这个式子可以算出当前传播到着色点的光照强度
+此时定义距离为1是,光线强度为**I**,当距离为r,则光纤强度为 $\frac{I}{r^2} $,通过这个式子可以算出当前传播到着色点的光照强度
 
 通过上面两个公式,可以得到着色点(Shading Point)的光照强度、多少光会打在着色点上,得到计算式子
 
@@ -1206,9 +1206,9 @@ L_d = k_d(I/r^2)max(0, n \cdot l)
 $$
 
 - 上面的数学表达式就是**漫反射**的表示方法
-  -  $k_d $漫反射的系数,表示这个点吸收多少能量(类似物体吸收所有颜色就是黑色,不吸收所有颜色就是白色的物理规律)
-  -  $I/r^2 $ 到达着色点的能量
-  -  $max(0, n \cdot l) $ 接收了多少能量
+  - $k_d $漫反射的系数,表示这个点吸收多少能量(类似物体吸收所有颜色就是黑色,不吸收所有颜色就是白色的物理规律)
+  - $I/r^2 $ 到达着色点的能量
+  - $max(0, n \cdot l) $ 接收了多少能量
 
 > 为什么是 $max(0, n \cdot l) $ , $n \cdot l $也就是 $\cos \theta $可能为负数,因为光线可能从物体下面往上发射,而这种光不具备物理意义(这里只讨论发射,不讨论折射) 
 
@@ -1244,21 +1244,21 @@ L_s = k_s(I / r^2)max(0, \cos \alpha)^p
 k_s(I / r^2)max(0, n \cdot h)^p
 $$
 
-- 高光的计算公式  $L_s $
-  -  $k_s $高光系数,颜色之类的,跟漫反射系数类似
-  -  $(I / r^2) $跟漫反射中的一样,高达此处的光的强度
-  -  $max(0, \vec{n} \cdot \vec{h})^p $根据观察角度能得到多少光
+- 高光的计算公式 $L_s $
+  - $k_s $高光系数,颜色之类的,跟漫反射系数类似
+  - $(I / r^2) $跟漫反射中的一样,高达此处的光的强度
+  - $max(0, \vec{n} \cdot \vec{h})^p $根据观察角度能得到多少光
 
 1. 为啥使用半程向量:半程向量的计算比直接计算光的镜面反射向量简单
-2.  $\cos \alpha $,在 $0~\pi $是单调递减的,复合这里 $\alpha $越小高光越多的情况
+2. $\cos \alpha $,在 $0~\pi $是单调递减的,复合这里 $\alpha $越小高光越多的情况
 3. 不考虑从 $\cos \alpha $为负数的情况,此时光从下面照射
-4.   $max(0, \vec{n} \cdot \vec{h})^p $中指数p的作用如图下所示,通过参数p可以指定高光范围的大小(p越大,高光范围越小,对应下图p越大,数据变小越快,一般100~200)
+4.  $max(0, \vec{n} \cdot \vec{h})^p $中指数p的作用如图下所示,通过参数p可以指定高光范围的大小(p越大,高光范围越小,对应下图p越大,数据变小越快,一般100~200)
 
 ![](./Image/050.png)
 
 ![](./Image/051.png)
 
-从上到下 高光系数  $k_s $ 逐渐变大,可以发现越来越亮;从左到右 指数p 逐渐变大,高光范围逐渐变小
+从上到下 高光系数 $k_s $ 逐渐变大,可以发现越来越亮;从左到右 指数p 逐渐变大,高光范围逐渐变小
 
 #### 环境光照
 
@@ -1276,8 +1276,8 @@ $$
 L_a = k_aI_a
 $$
 
-- 环境光  $L_a $
-  -  $K_a $ 环境光照系数
+- 环境光 $L_a $
+  - $K_a $ 环境光照系数
 
 #### 累加
 
@@ -1359,7 +1359,7 @@ Shader控制顶点管线(**Vertex Processing**)和着色管线如何运作(**Fra
 
 ![](./Image/059.png)
 
-对于漫反射的计算来说  $L_d = k_d (I / r^2) (\vec{n} \cdot \vec{l}) $,上述图片就是球的每个点的  $k_d $ 是不同的
+对于漫反射的计算来说 $L_d = k_d (I / r^2) (\vec{n} \cdot \vec{l}) $,上述图片就是球的每个点的 $k_d $ 是不同的
 
 那么纹理映射就是定义任何一个点的不同属性
 
@@ -1395,7 +1395,7 @@ Shader控制顶点管线(**Vertex Processing**)和着色管线如何运作(**Fra
 
 ![](./Image/064.png)
 
-三角形所在平面上的任一点(x, y)都可以用  $(x, y) = \alpha A + \beta B + \gamma C $ 且  $\alpha + \gamma + \beta = 1 $
+三角形所在平面上的任一点(x, y)都可以用 $(x, y) = \alpha A + \beta B + \gamma C $ 且 $\alpha + \gamma + \beta = 1 $
 
 ![](./Image/065.png)
 
@@ -1514,7 +1514,7 @@ $$
 
 ![Bump map](./Image/076.png)
 
-以二维平面为例子,计算凹凸贴图影响后的法线方向  $d_p = c * [h(p+1) - h(p)] $
+以二维平面为例子,计算凹凸贴图影响后的法线方向 $d_p = c * [h(p+1) - h(p)] $
 
 1. 求斜率,用下一个点的高度减去当前点的高度可以近似求出当前点的斜率
 2. 常数 **c** 用来做权重设置的,表示当前法线贴图的影响程度
@@ -1630,7 +1630,7 @@ $$
 
 首先控制点有三个 $b_0, b_1, b_2 $  
 
-其次  $t $ 表示时间(或者说百分比),取值范围是0~1
+其次 $t $ 表示时间(或者说百分比),取值范围是0~1
 
 1. 在 $b_0 - b_1 $的线段上,百分比为t的点 $b_0^1 $
 2. 同理在 $b_1 - b_2 $的线段上,找到百分比为t的点 $b_1^1 $
@@ -1647,11 +1647,11 @@ b_0^2(t) = (1-t)*b_0^1 + t*b_1^1\\
 b_0^2(t) = (1-t)^2*b_0 + 2*t*(1-t)*b_1 + t^2*b_2
 $$
 
-上面的计算式子  $b_0,b_1,b_2 $的参数很像是 $[(1-t) + t]^2 = (1-t)^2 + 2*t*(1-t) + t^2 $
+上面的计算式子 $b_0,b_1,b_2 $的参数很像是 $[(1-t) + t]^2 = (1-t)^2 + 2*t*(1-t) + t^2 $
 
 同理,三次贝塞尔曲线中 $b_0,b_1,b_2,b_4 $的参数应该就是 $[(1-t) + t]^3 $分解之后的
 
-通过上面计算式子和  $b_0,b_1,b_2 $的表现效果,推理得出贝塞尔曲线的可能的式子
+通过上面计算式子和 $b_0,b_1,b_2 $的表现效果,推理得出贝塞尔曲线的可能的式子
 
 $$
 b^n(t) = \sum_{j=0}^{n}b_j*B_j^n(t)\\
@@ -2019,13 +2019,13 @@ Shadow Mapping可以处理硬阴影的情况:即一个点要么在阴影中,
 
 数学中的光线就是一个射线,有一个起点,有一个方向
 
-假设起点坐标为 `o`, 方向向量为 `d`, 得到光线任一点的表达式  $ r(t) = o + t*d  $ 其中 t 是 0 到 正无穷、
+假设起点坐标为 `o`, 方向向量为 `d`, 得到光线任一点的表达式 $ r(t) = o + t*d $ 其中 t 是 0 到 正无穷、
 
 对于 **隐式表面**
 
-假设现在要碰撞的是一个球,设球面上任意点的坐标为p,球心坐标为c,球的半径为R,得到球面的表达式  $(p - c)^2 - R^2 = 0 $
+假设现在要碰撞的是一个球,设球面上任意点的坐标为p,球心坐标为c,球的半径为R,得到球面的表达式 $(p - c)^2 - R^2 = 0 $
 
-那么联立光线和球的表达式可以求出交点  $(o + td - c)^2 - R^2 = 0 $
+那么联立光线和球的表达式可以求出交点 $(o + td - c)^2 - R^2 = 0 $
 
 ![](./Image/118.png)
 
@@ -2034,7 +2034,7 @@ Shadow Mapping可以处理硬阴影的情况:即一个点要么在阴影中,
 
 可以将 光线 与 球 交点的计算,推广到其他 隐式表面 的计算上
 
-假设 隐式表面 的数学公式为  $ f(p) = 0  $, 带入 光线 的公式得到交点  $ f (o + t*d) = 0  $
+假设 隐式表面 的数学公式为 $ f(p) = 0 $, 带入 光线 的公式得到交点 $ f (o + t*d) = 0 $
 
 再 带入 上面说明的 t大于 0、 t不能为虚数、 多交点时取t小的点 就可以得到交点坐标
 
@@ -2060,9 +2060,9 @@ Shadow Mapping可以处理硬阴影的情况:即一个点要么在阴影中,
 
 ![](./Image/120.png)
 
-上图中  $P_0 P_1 P_2 $ 分别是是三角形重心到三个顶点的向量
+上图中 $P_0 P_1 P_2 $ 分别是是三角形重心到三个顶点的向量
 
-通过  $ (1 - b_1 - b_2) * P_0 + b_1 * P_1 + b_2 * P_2  $ 可以表示三角形中任意点的坐标
+通过 $ (1 - b_1 - b_2) * P_0 + b_1 * P_1 + b_2 * P_2 $ 可以表示三角形中任意点的坐标
 
 一个物体有很多个三角形,最简单暴力的做法就是交**依次对每个三角形求**,最后得出距离光线起点最近的点 也就是 t 最小的点
 
@@ -2086,32 +2086,32 @@ Shadow Mapping可以处理硬阴影的情况:即一个点要么在阴影中,
 
 > 对应的表示方法可以是AABB表示
 
-依旧以  $(o + td - c)^2 - R^2 = 0 $ 为例
+依旧以 $(o + td - c)^2 - R^2 = 0 $ 为例
 
 ![](./Image/122.png)
 
 以二维平面为例
 
-一般用  $Point_0 = (x_{0}, y_{0}) $ 和  $Point_1 = (x_{1}, y_{1}) $ 就可以表示一个二维平面的包围盒, ${Point_0} $ 表示 矩形 的左下角, ${Point_1} $ 表示矩形的 右上角,通过两点即可表示出一个矩形
+一般用 $Point_0 = (x_{0}, y_{0}) $ 和 $Point_1 = (x_{1}, y_{1}) $ 就可以表示一个二维平面的包围盒, ${Point_0} $ 表示 矩形 的左下角, ${Point_1} $ 表示矩形的 右上角,通过两点即可表示出一个矩形
 
-- 上图中间得到  $t_{y_{min}} $ 和  $t_{y_{max}} $ 两个点,表示光线与包围盒y轴交点是t的值
-- 上图左边得到  $t_{x_{min}} $ 和  $t_{x_{max}} $ 两个点,表示光线与包围盒x轴交点是t的值
-- 那么在包围盒中的t值为  $t_{x_{min}} $ 和  $t_{y_{max}} $ 
+- 上图中间得到 $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}}) $
+通过求出 光线 与 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_{quit} $  表示 光线 离开碰撞盒的t值
+> $t_{enter} $ 表示 光线 进入碰撞和的t值
 
 于是将该理论发展到三维空间
 
- $Point_0 = (x_{min}, y_{min}, z_{min}) $ 和  $Point_1 = (x_{max}, y_{max}, z_{min}) $ 可以表示一个三维空间的矩形范围
+ $Point_0 = (x_{min}, y_{min}, z_{min}) $ 和 $Point_1 = (x_{max}, y_{max}, z_{min}) $ 可以表示一个三维空间的矩形范围
 
  $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, 则表示 光线 与 碰撞盒 相交
+- 如果 ${t_{quit}} $ 小于 0,则表示 光线 与 碰撞体 不相交,因为 光线 离开碰撞盒子的 t 小于0, 则表示 碰撞盒 在光线的反方向
+- $t_{enter} $ 小于0, ${t_{quit}} 大于0,则表示 光源 在碰撞盒 内部 
+- 如果 $t_{enter} $ 小于 ${t_{quit}},并且 $t_{quit} $ 大于 0, 则表示 光线 与 碰撞盒 相交
 
 # 动画模拟、仿真