Skip to content

Week7

渲染

图形管线

  • GPU管线(光栅化管线)
  • 光线追踪管线

工作原理:

  • 顶点着色器:将顶点坐标从模型空间转换到裁剪空间
  • 细分着色器:将顶点细分为更多的顶点
  • 几何着色器:将顶点转换为图元
  • 投影:将图元投影到屏幕空间,分为正交投影和透视投影
  • 裁剪:将超出视锥体的部分裁剪掉
  • 屏幕映射:将图元映射到屏幕上
  • 光栅化:将图元转换为像素
  • 片段着色器:计算像素的颜色
  • 像素操作:深度测试、模板测试、混合等

GPU硬件

NVIDIA Fermi架构是NVIDIA公司推出的一种GPU架构。架构包含:

  • 多处理器:每个多处理器包含多个CUDA核心
  • 共享内存:每个多处理器包含共享内存
  • 寄存器文件:每个多处理器包含寄存器文件

移动端硬件特殊性:

  • Tile Based Rendering:先将图元渲染到Tile中,再将Tile渲染到屏幕,减少内存的访问带宽
  • Dual-pass Vertex Shading:做两遍顶点着色,尽量减少不可见的顶点的计算

模型和纹理

模型

模型是由顶点和索引组成的。顶点包含位置、法线、纹理坐标等信息。索引是顶点的索引。

纹理

纹理是一种二维数组,包含颜色信息。纹理坐标是纹理上的坐标。

LOD(level of detail):距离越远,模型越粗略

SDF:根据与边缘距离来确定,存储每个点到图形的最近距离,即将模型划出一个表面,在模型表面外侧的点数值大于0,在模型表面内侧的点数值小于0

Nanite:虚拟化几何体、Cluster(group、VBH)、Sub-linear scaling、软光栅小三角形(VisBuffer)

光照

  • 环境光:所有方向的光照
  • 漫反射光:光线与表面法线的夹角越大,光照越弱
  • 镜面反射光:光线与视线的夹角越小,光照越强

阴影

Shadow Map:将场景从光源视角渲染到纹理中,然后在渲染场景时,将纹理中的深度值与当前像素的深度值进行比较,判断当前像素是否在阴影中

后处理

  • bloom:高亮部分扩散
  • Gaussian Kernel:高斯核
  • Tone Mapping:色调映射
  • Gamma Correction:伽马校正

渲染调试

  • 可视化:显示法线、深度、纹理坐标等信息
  • 统计命令:显示帧率、三角形数量等信息