渲染流水线
渲染流水线
渲染阶段
-
应用阶段(Application Stage):应用阶段由cpu负责。决定传递给gpu的数据
-
几何阶段(Geometry Stage): 上个阶段传递过来的图元进行逐顶点、逐多边形的操作。把顶点坐标转换到屏幕空间,并决定传给光栅器处理的数据
-
光栅化阶段(Rasterizer Stage):光栅化阶段由gpu负责。决定哪些像素应该被绘制在屏幕上并计算对应像素的颜色。
CPU与GPU的通信
cpu在与gpu的通信中,需要把数据加载到显存,设置好渲染状态,然后调用DrawCall。
加载数据:这些数据包括网格纹理、顶点颜色法线纹理等。
渲染状态:决定使用哪个着色器、光源属性、材质来渲染,所有的网格使用一种渲染状态。
DrawCall:一个发起绘制命令的函数,由cpu发出。它指向一个即将被渲染的图元列表,通知gpu按照设置进行图元渲染。
——不要频繁的调用DrawCall。在实际的渲染中,GPU的渲染速度往往超过了CPU提交命令的速度,这导致渲染中大部分时间都消耗在了CPU提交Draw Call上。我们需要尽可能用多准备数据给cpu而更少的调用DrawCall,从而通知gpu快速渲染。
渲染流水线概述
- 应用阶段
- 粗粒度剔除
- 进行渲染设置
- 准备基本数据
- 输出到几何阶段
- 几何阶段
- 顶点着色器
- 曲面细分
- 几何着色器
- 顶点裁剪
- 屏幕映射
- 光栅化阶段
- 三角形(点/线)设置
- 三角形(点/线)遍历
- 片元着色器
- 逐片元操作
- 裁剪测试
- 透明度测试
- 深度测试
- 模板测试
- 混合
应用阶段
- GAMES101-现代计算机图形学入门-闫令琪-Lecture 08 Shading 2 (Shading, Pipeline and Texture Mapping)
- 【技术美术百人计划】图形 1.1 渲染流水线-TA100-renderpipeline-v2.1
跳转回百人合集