首页 > 计算机图形学 > TA百人计划 > TA之路01-渲染管线初探
2021
12-13

TA之路01-渲染管线初探

PPT:https://docs.qq.com/pdf/DRW9rTUhpbGRpZ3Vt

作用

通过一系列处理,将3D模型元素转化成屏幕上的2D图像

整体流程

TA之路01-渲染管线初探 - 第1张  | u3d8技术分享

应用阶段(CPU)

  • 粗粒度剔除
  • 进行渲染设置
  • 准备基本数据
  • 输出到几何阶段

应用阶段准备的数据包括

场景物体:变换数据(位置、旋转、缩放)网格数据(顶点位置、UV贴图、法线、切线等)

光源信息:点光源、平行光等的(位置、方向、角度、阴影参数等)

摄像机参数:正交or透视、视口比例/尺寸(位置、方向、裁剪平面)

几何阶段(GPU)

  • 顶点着色器(可编程)。顶点光照需要知道光源的位置、朝向以及摄像机的位置、朝向还有当前顶点的世界位置,当前顶点的世界位置又需要知道顶点在模型空间里的位置,以及模型本身的位置、旋转、缩放等等
  • 曲面细分(可选步骤)。将现有的顶点来生成更多的顶点,使模型更加平滑。需要知道现有顶点在模型里的信息
  • 几何着色器(可选步骤)。需要通过现有的图元来做一些几何方面的操作,生成更多的顶点和图元。比如对现有图元所在的平面生成法线, 那么同样需要知道现有图元的顶点位置
  • 顶点裁剪(可配置)。干掉看不见的屏幕以外的顶点
  • 屏幕映射。把顶点位置从3D坐标空间转换到2D坐标空间

几何阶段要为光栅化阶段准备数据

光栅化阶段(GPU)

  • 三角形(点/线)设置。拿到映射到2D空间里的顶点位置,我们要把它组装成三角形
  • 三角形(点/线)遍历。获取三角形包含了哪些2D空间的像素点
  • 片段着色器。对像素点使用它们包含的数据来着色,并且为后面的逐片元着色准备数据

抗锯齿MSAA是属于光栅化阶段

逐片元操作(GPU)

  • 片元着色(可编程)
  • 裁剪测试
  • 透明度测试
  • 颜色混合-深度测试/模板测试
  • 目标缓冲区(FrameBuffer、RenderTexture)

逐片元操作对象是光栅化阶段输出的片元数据,片元可以理解为屏幕上的一个个像素点,对于这些片元我们需要进行一系列的测试,比如透明度测试、深度测试、模板测试,通过测试的我们就保存起来,不通过的丢弃。在2D屏幕坐标系中,同一个位置的像素点可能会对应于多个不同的片元,这时就需要将通过测试的片元的颜色进行混合操作,从而得到该像素点的最终输出颜色

后处理

逐片元操作后,我们就得到一个类似于贴图的数据保存在内存里,然后我们可以对这个数据进行后处理操作,可以理解为图像处理

常见后处理:模糊、景深、高光、边缘检测、径向模糊等

抗锯齿FXAA是属于后处理阶段

最后编辑:
作者:网虫虫
网虫虫
分享是一种快乐; 分享是一种美德; 分享是一种幸福!

0 0 votes
Article Rating
Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments