跳转至

设计模式

图形学

1.前向渲染管线流程

  • 应用阶段:CPU准备提交到GPU
  • 几何阶段:顶点、曲面细分、几何、裁剪、屏幕映射
  • 光栅化阶段:三角形设定(图元装配)和三角形遍历阶段
  • 像素处理阶段:片元着色器,透明、模板、深度、抖动(色彩混合)阶段,帧缓冲 其他的还有
  • 视口变换的作用是什么,空间的维度是如何变化的
  • 视口变换时深度值如何处理?(存入深度缓冲
  • NDC是什么?
  • 光栅化的定义与作用
  • 法线矩阵有什么用
  • 如果对一个模型仅沿X轴缩放,如何利用M矩阵计算光照?法线乘逆转置矩阵

2.光照模型

  • Lambert
  • half-Lambert
  • Gourand
  • phong
  • Blinn-Phong
  • Cook-Torrance
  • BRDF
  • bsdf和brdf的区别?各自的应用场景?

3.阴影处理

  • ShadowMap:
    • 原理
    • 采样方法
    • Shadow Acen
    • PeterPanning
  • 软阴影
    • PCF
    • PCSS
    • ESM理论:预滤波,到e指数的公式
    • VSM:
      • 深度纹理(平方)?
      • 计算平方和方差
      • 漏光?
    • SDF:Ray Marching
  • CSM级联阴影:
    • 分割视锥体
    • 球型优化
    • 阴影过渡问题:深度,抖动,线性插值,球距

4.后处理

  • bloom
  • 边缘检测:拉普拉斯算子

5.PBR

  • 渲染方程及其意义
  • lambertion
  • cook-torrance的BRDF:
    • D:法线分布,算和半程向量一致的朝向,决定高光大小
    • G:几何函数,、挡住其他微平面反射出的光纤,决定粗糙度
    • F项,菲涅尔:不同表面角反射光线占比,F0(平面基础反射率),F99。决定金属度
  • 金属度,粗糙度的实现
  • IBL
    • 片段的法线
    • 卷积的假设?epic Game预计算镜面部分的卷积(分割近似求和法)
    • 预滤波环境贴图:根据环境采样,CubeMap,等距柱状投影图,各个角度六张图合一张大图
    • 如何让卷积加速、更高效?蒙特卡洛,重要性采样

6.光线追踪

  • whitted-style光追停止反射的问题(直接光照,间接光照)这就会导致射线爆炸
  • 单像素多射线(蒙特卡洛求均值解直接光照
  • 俄罗斯轮盘赌(RR,设定概率p继续递归,返回的值是L/p,最终得到的期望仍然是L)
  • 重要性采样
  • AABB
  • BVH
  • 光源

7.粒子模拟

  • ECS
  • 局部缓存
  • GPU Instancing优化

8.弹簧布料模拟

  • 显式欧拉,隐式欧拉,半程欧拉
  • 弹簧质点模型
  • 布料结构,剪切力
  • 布料碰撞

9.水面模拟

  • LOD
  • Flow Map(滚动法线),FFT
  • 波动方程:正弦,Gerstner
  • 光照:切线、副切线、法线,Fresnel和光照模型
  • 反射:摄像机RT,SSR,Fresnel(夹角越小反射越明显)
  • 折射:通透感-SSS,深度查找
  • 颜色:关闭深度写入,结合SSR(颜色和深度),根据背景进行混合采样。
  • 浮沫:高度(贴图),topdown相机+噪声(岸边白沫)

11.IK

  • 分析可达(骨链总长)
  • 终止条件(迭代,终止条件)
  • 解析法
  • 数值法:
  • CCD:循环坐标下降
  • FABRIK:前向和后向到达
    • Forward:末端关节移动到目标点,其余节点以此平移
    • Backward:前端移动回去,和子关节做连线,取长度的位置
    • 多次迭代
  • Untiy创建足部ik
    • 权重:抬起的脚为0,放下的脚为1,中间时ik的过渡混合
    • 射线记录y值,计算法线加角
    • 盆骨(根节点)偏移,不然ik可能达不到对应位置

11.图形API(如OpenGL)

  • VAO
  • VBO
  • EBO
  • FBO
  • GLFW的作用?

12.ComputeShader

  • 设定步长,传入数据
  • 设置索引方式,ID
  • 优化:合理设置32的2次幂为倍数
  • 根据数据布局选择2D/3D分发
  • step()代替if
  • CPU计算常量,减少重复运算

13.JobSystem

14.草地模拟

15.集群模拟

16.Lua

17.MVVM与MVC--UI架构

18.批处理

19.ECS

20.单例模式

21.引擎

渲染、物理、资源系统、

22.玩法与特效

  • 事件与消息系统
  • 消融,模糊,2d动态及反射水,雾,bloom
  • 单例、观察者、有限状态机
  • 粒子系统、
  • 数据镜像世界玩法扩展
  • 怪物和图块组合玩法