美文网首页
GAMES 101 Quick Review

GAMES 101 Quick Review

作者: 狗子孙 | 来源:发表于2023-10-21 22:20 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/asljvdtx.html