Unity Shader精要 渲染流水线

本文详细介绍了Unity的渲染流水线,包括应用阶段、几何阶段、光栅化阶段,以及DrawCall的相关知识。应用阶段由CPU负责,涉及数据加载、渲染状态设置和DrawCall调用。几何阶段在GPU上处理几何相关任务,如顶点着色器、几何着色器和裁剪。光栅化阶段决定像素渲染,片元着色器执行纹理采样等。DrawCall过多会影响帧率,通过批处理等方法可以进行优化。
摘要由CSDN通过智能技术生成

什么是渲染流水线

渲染流水线的工作任务在于由一个三维场景出发、生成(或者说渲染)一张二维图像。

输出渲染单元
输出屏幕空间的顶点信息
应用阶段
几何阶段
光栅化阶段

应用阶段

这一阶段由CPU负责。开发者拥有绝对控制权。
这一阶段,开发者有3个主要任务:

  1. 首先准备好场景数据,例如摄像机的位置,视锥体,场景中的模型等
  2. 为了提高渲染性能,需要进行粗粒度剔除,把那些不可见的物体剔除出去
  3. 设置每个模型的渲染状态,包括但不限于材质(漫反射颜色、高光反射颜色)、使用的纹理、使用的Shader。

这一阶段最重要的是输出渲染所需的几何信息,即渲染图元。
应用阶段大致可以分为下面三个阶段:

  1. 把数据加载到显存
    所有渲染所需的数据都需要从硬盘加载到系统内存中。然后网格和纹理等数据又被加载到显卡上的存储空间——显存。这是因为显卡对显存的访问更快,且大多数显卡没有访问内存的权限
  2. 设置渲染状态
    渲染状态定义了场景中的网格如何被渲染的。例如使用哪个顶点着色器/片元着色器、光源属性、材质等。
  3. 调用DrawCall
    DrawCall是一个命令,由CPU发起,GPU接收。这个命令仅仅指向一个需要被渲染的图元。当给定一个DrawCall时,GPU会根据渲染状态和给定的顶点数据进行计算,最终输出成屏幕上显示的像素。

几何阶段

几何阶段用于处理所有和我们要绘制的几何相关的事情。例如:决定绘制的图元是什么,怎么绘制,在哪里绘制。这一阶段通常在GPU上进行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值