渲染流水线


渲染流水线


渲染阶段

  • 应用阶段(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
  • 跳转回百人合集