GAMES 101 Quick Review

0. 重要推导

  • 点积、叉积
  • 四元数
  • Rodrigues公式
  • ModeView矩阵,先R先T
  • forward、up、left
  • Projection矩阵
  • Bling-Phong公式
  • BRDF公式
  • radiance & irradiance

1. 计算机图形学概述

  1. 光栅化渲染管线 & 光线追踪渲染管线

2. 向量和线性代数

  1. 向量点积,乘积是数量
    几何意义:判断向量的接近程度;求夹角(判断同向反向);分解向量;投影相关;


  2. 向量叉积,乘积是向量,右手规则
    几何意义:求垂直;判断向量or点在平面的哪一侧;


  3. 正交矩阵的逆和转置相同,旋转矩阵是正交矩阵

  4. 点积和叉积的矩阵表示


3. 变换(二维与三维)

  1. 齐次坐标:为了将平移引入变换矩阵,增加一个维度,(x, y, 1)表示点,(x, y, 0)表示向量

  2. 变换顺序影响结果,先旋转or先平移

  3. 绕固定点旋转:先平移到该点,旋转,再平移回来

4. 变换(模型、视图、投影)

  1. 旋转表示:旋转矩阵、欧拉角、轴角(Rodrigues公式推导)、四元数

  2. View矩阵的三行分别代表三个轴的向量,可用于获取forward、up、left


  3. 投影矩阵,正交&透视

5. 光栅化(三角形的离散化)

  1. fov/aspect和near/far/left/right/top/bottom转换

  2. 四边形or三角形网格?:渲染几乎都用三角形,四边形多用于某些算法处理

6. 光栅化(深度测试与抗锯齿)

  1. 采样的Artifacts:空间采样、下采样、时间采样

  2. 反走样技术:或先blur再采样、采样时卷积、选择靠近的,等等乱七八糟的方式

  3. 提高采样率:超采样技术,先超采样,再下采样

  4. 原理:高通滤波(增强边缘)、低通滤波(模糊边缘)

7. 着色(光照与基本着色模型)

  1. 画家算法:以物体为单位做预先排序(常在CPU上),存在排序冲突问题,比如threejs会对非透明物体和透明物体分别排序

  2. zbuffer:硬件实现,根据管线中存的深度值

  3. 先画透明物体(由近到远画),再画不透明物体(由远到近画),画不透明物体时关闭深度写入(防止遮挡不透明物体)、保留深度测试(适当舍弃)

8. 着色(着色频率、图形管线、纹理映射)

  1. Phong模型:diffuse漫反射、specular镜面反射、ambient环境光

  2. 着色单位:三角形、顶点、片段

  3. (经典)渲染管线:


9. 着色(插值、高级纹理映射)

  1. 重心坐标,用于插值(坐标、颜色、法向等)

  2. 双线性插值(二维纹理)、三线性插值(三维纹理,或不同mipmap的二维纹理以增强连续性)


  3. Mipmap,根据大小远近,使用不同尺寸的纹理

  4. 纹理的各项异性(Anisotropic):沿着纹理坐标轴采样,而非上下左右均匀


10. 几何(基本表示方法)

  1. 纹理的应用:环境光、全景图、球面光、存储法向和高度等非几何信息、噪声、烘焙、体数据等

  2. 几何的隐式表示:几何曲面函数、水平集函数、距离函数

  3. 几何的显示表示:多边形、三角形、点云、分形

11. 几何(曲线与曲面)

  1. 贝塞尔曲线:一阶、二阶、三阶,若干个等比例控制点的集合组成的曲线


  2. 贝塞尔曲面:由贝塞尔曲线移动得到

12. 几何(网格处理)、阴影图

  1. 几何处理:简化、细分、正规化

  2. 细分算法:Catmull-Clark Vertex Update Rules


  3. 简化算法:顶点合并,使新顶点和原有顶点的二次误差最小

  4. 阴影映射,用于生成硬阴影:1. 从光源画一次,得到深度图;2. 从相机画一次,得到rgb+深度;3. 反投影可见点和光源深度图比较,匹配则保留,不匹配则删除

13. 光线追踪(基本原理)

  1. Ray Casting:一次光线,不反射


  2. Ray Tracing:递归的多次反射


  3. 射线和球面求交,球面方程可被拓展到任意曲面


  4. 射线和三角型求交:先和面求交,再和判断交点是否在面内


14. 光线追踪(加速结构)

  1. 均匀的空间剖分:划分AABB包围盒网格,快速筛选空的区域,适合均匀分布的场景

  2. 不均匀的空间剖分:适合不均匀分布的场景
    八叉树:在三个维度严格进行二分,一个物体可以被分在多个叶子节点
    KD树:根据物体本身分布进行划分,一个物体只能存在于一个叶子节点中
    BSP树:非AABB的KD树


  3. 包围盒层级(Bounding Volume Hierarchy (BVH))


  4. 空间剖分和物体剖分


15. 光线追踪(辐射度量学、渲染方程与全局光照)

  1. 相关变量


  2. 辐射强度(Radiant Intensity):单位立体角(三维radian 4π)发出的能量,用来衡量点光源

  3. 辐照度(Irradiance):单位面积射到表面点上的能量,用来衡量表面,和曲面与光线的夹角成比例
    点光源从内向外球面的辐照度会衰减

  4. 辐射(Radiance):单位光线的功率,用于衡量一条光线(发射、接受等各阶段通用)

  5. 辐照度无关方向,辐射仅考虑一个ray

  6. 一个点的反射情况:从一个光线方向ωi发出的辐射,即相当于单位面积接收到的能量,这个能量也就是反射到其它任意方向的辐射


  7. (???)BRDF(双向反射分布函数),用来描述给定入射方向反射到给定出射方向的能量


  8. (???)反射方程,求给定入射方向和出射方向的能量


  9. (???)渲染方程,由反射方程加一项自身发射的光得到



  10. 渲染方程进行多次迭代(多次递归求解反射),得到更接近真实的渲染结果

16. 光线追踪(蒙特卡洛积分与路径追踪)

  1. 蒙特卡洛积分

  2. 理想的全局光照流程


  3. 路径追踪(仅考虑1条光线的全局光照),对一个像素点进行多次随机的路径追踪取平均以避免噪声,加入随机概率俄罗斯轮盘作为终止条件


  4. 最终版:区分直接来自光线的部分(无需递归),和来自反射的部分(需要递归),对来自光线的部分进行蒙特卡洛积分


17. 材质和外观

  1. 折射定律,n表示介质的折射率


  2. 微表面模型:考虑法向分布和光滑程度

  3. 测量BRDF参数:大致方向是基于尽可能多的光线方向进行拍摄采样,反向推测

18. 高级光线传播与复杂外观建模

  1. 有偏(biased)和无偏(unbiased):数学期望是否与真实一致;一致与非一致:是否随着样本增多而收敛

  2. BDPT:适合光源侧反射情况复杂的场景,缺点是实现复杂,有性能问题,无偏


  3. MLT (Metropolis Light Transport):在采样点之间使用概率密度函数做跳跃,无偏但不一致,通常用于复杂光效和动画之类的效果


  4. Photon Mapping (光子映射):适合SDS光路或散焦,有偏差但一致


  5. VCM (Vertex Connection and Merging):BDPT和Photon Mapping的结合,不舍弃被遮挡的光路,对被遮挡的点进行合并


  6. Instant Radiosity (IR, 有时又叫many-light approaches): 将反光表面作为光源,发射子光路到表面即可,较快,不适合光滑表面,易出现局部峰值

  7. 非表面模型 - 参与介质:云雾等,用辐射传输方程来描述(可理解为一种特殊的体绘制方法)


  8. 头发渲染:可基于面片或引导线建模,有一些常用的渲染模型(Kajiya-Kay Model,Marschner Model,Scheuermann Model等)

  9. 颗粒材质:避免对所有颗粒本身建模,通过对整体到局部不同层级进行建模来处理

  10. 次表面模型:在表面内部进行折射反射的效果(光学属性)不一致,光线的出射位置和入射位置不一样,引入BSSRDF进行快速近似计算,将入射点和出射点用距离函数模拟,近似BRDF

  11. 布料:普通表面模型、次表面模型、显式的没一根纤维等多种方式渲染

  12. 细节模型:微表面BRDF,增加真实的法向分布函数


  13. 程序化外观:在运行时通过定义的(噪声)函数生成纹理

19. 相机与透镜

  1. 针孔模型和透镜:针孔直径只允许一个光线通过最清晰,针孔直径无限大最模糊,为了使同一个物体(距离)显示的最清楚,引入透镜

  2. fov和焦距:相同传感器尺寸,焦距越大,fov越小,画面中的物体相对越大


  3. 曝光三要素:快门、光圈、ISO


  4. 透镜:平行光相交于一点(焦点);过焦点的光都平行;焦距可变;

  5. 高斯透镜等式:透镜基本属性+相似原理



  6. 弥散圆(Circle of Confusion):相似原理计算,与光圈大小相关


  7. 透镜的渲染实现:对每个像素点,随机采样透镜上的点,对光线进行追踪或走管线


  8. 景深:能清晰成像的距离范围,大光圈小景深,小光圈大景深



    距离合焦平面越近的平面,产生的弥散圆越大,反之越小,合焦平面上的点恰好为一个点



    弥散圆小于传感器精度的前后脚平面距离,就是景深,可根据相似原理计算:

20. 光场、颜色与感知

  1. 全光函数(Plenoptic Function): 用极坐标、波长、时间、空间坐标7个参数表示一个场景的函数


  2. 光场(Light Field / Lumigraph):任何位置向任何方向产生的光的信息,是全光函数的子集,位置和方向可以用三维表示,也可以用二维表示(贴图映射)

  3. 光场的参数化:1. 用包围盒上的点来取代物体真实几何表面的点;2. 用一个平面加方向来参数化;3. 用两个平面来参数化(uv/st坐标,类似两点定义直线的思路)


  4. 光场相机:每个“像素”记录通过透镜的全部光线值,即一个光场,可以恢复不同视角,不同焦平面的二维图像


  5. 光谱图:横轴为波长的分布图(连续的直方图)

  6. 颜色空间:RGB / sRGB

  7. 色域:在二维空间可视化颜色,两个轴是两个通道的值,显示为颜色结果,靠边界是纯色,内部为混合颜色;不同颜色空间在色域图中的区域不一样


21. 动画与模拟(基本概念、质点弹簧系统、运动学)

  1. 关键帧动画:确定关键帧的参数,插值中间参数

  2. 质点弹簧系统:胡可定律向量版



    质点弹簧系统内部阻力(摩擦力)


  3. 质点弹簧系统模拟布料(简化例子)


  4. 运动学:用参数随时间变化来表示任意点的运动,易于实现,难于建模



    逆运动学:用点的位置求解系统的参数,易于建模,难于实现,有多解或无解,通常依赖优化方法求解

  5. Rigging、Blend Shape、Motion Capture(动捕):骨骼驱动、关键点驱动顶点、现实关键点捕捉和驱动

22. 动画与模拟(求解常微分方程,刚体与流体)

  1. 求解常微分方程,以速度场中的粒子运动为例:欧拉法、中点欧拉法、自适应步长、隐式法、基于点的方法,可直接用于刚体模拟


  2. 流体模拟:质点法(拉格朗日法)、网格法(欧拉法)



你可能感兴趣的:(GAMES 101 Quick Review)