【NO.2】GPU渲染管线

本文介绍了GPU渲染管线的工作原理,从CPU如何将数据加载到显存,设置渲染状态,调用DrawCall,到GPU的流水线处理,包括顶点数据、顶点着色器等阶段。GPU通过流水线化加速渲染,各个阶段如顶点着色、几何着色、光栅化和像素着色等都在GPU中并行处理,实现高效实时渲染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《real-time提炼总结 第三章》《unity shader 入门精要  第二章》

#CPU与GPU之间

渲染流水线的起点是CPU,即应用阶段

应用阶段大致分为三个阶段:

  1. 把数据加载到显存中 
  2. 设置渲染状态 
  3. 调用DrawCall

     


把数据加载到显存中

硬盘(HDD)----------------->内存(RAM)--------------->显存(VRAM)

|____________CPU____________|                         |_____GPU_____|

  • 显卡对于显存的访问速度更快,而且大多数显卡对于RAM没有访问权

设置渲染状态

  • 渲染状态:定义了场景网格是怎样被渲染的
  • 通过对渲染状态的改变,可以得到诸如明暗处理的应用,雾化效果的使用等光栅化操作
  • 渲染状态同时控制纹理的类型和纹理过滤器如何工作

 

 


调用DrawCall

  • DrawCall:实际上就是一个命令,CPU发出,GPU接收,仅仅指向一个需要被渲染的图元列表
  • 当给定了一个DrawCall,GPU就会根据渲染状态和所有输入的顶点数据来进行计算,最终输出成屏幕上的像素,这个计算过程就是GPU流水线

 

#GPU流水线

  • NVIDIA提出了图形处理单元(Graphics Processing Unit,GPU)这一术语。
  • GPU实现了几何和光栅化概念管线阶段
  • GPU通过实现流水线化大大加快了渲染速度

绿色:完全可编程      黄色:可配置但不可编程        蓝色:由GPU固定实现    

实线:该shader必须由开发者编程实现         虚线:该shader是可选的

^《Unity shader 入门精要》

^《Real-Time Rendering》

跟上一章的流水线略有不同……

 

顶点数据

  • 由应用阶段加载到显存中,再由DrawCall指定。随后被传递给顶点着色器。

顶点着色器

  • 在顶点着色器之前,发生了一些数据操作,在DirectX中叫输入装配(InputAssembler)的阶段 ,会将一些数据流组织在一起,以形成顶点和基元的集合,发送到管线
    • 完全可编译,由开发者编程实现,
    • Vertex Shade
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值