VFShader总结--渲染流程

要谈Unity shader我们首先要了解下整个的渲染流水线其实我们现在写的unityshader并等于shader只是整个渲染过程的一部分渲染可以概念性的分为3个部分应用阶段,几何阶段,光栅化阶段类似这个图每个阶段又可以分出很多小的阶段其中 应用阶段是CPU 几何阶段和光栅化阶段载体则是GPU一.应用阶段 顾名思义 由我们开发者控制它主要作用有 1.将渲染需要的数据加载至显存...
摘要由CSDN通过智能技术生成

要谈Unity shader我们首先要了解下整个的渲染流水线
其实我们现在写的unityshader并等于shader只是整个渲染过程的一部分
渲染可以概念性的分为3个部分
应用阶段,几何阶段,光栅化阶段
类似这个图
在这里插入图片描述
每个阶段又可以分出很多小的阶段
其中 应用阶段是CPU 几何阶段和光栅化阶段载体则是GPU

一.应用阶段 顾名思义 由我们开发者控制

它主要作用有 1.将渲染需要的数据加载至显存中, 2.设置渲染状态, 3.以及调用draw call

1.将渲染需要的数据加载至显存中;

所需要渲染的数据都有哪些?

有场景的数据,比如摄像机位置,视锥体,场景中包含哪些模型,哪些光源等等, 网格,纹理,顶点的所携带的信息(颜色,uv坐标,法线等);

如何加载至显存?

所有渲染所需的数据都需要从硬盘( Hard Disk Drive, HDD )中加载到系统内存( Random Access Memory, RAM )中。然后,网格和纹理等数据又被加载到显卡上的存储空间一一显存( Video Random Access Memory, VRAM)中。这是因为,显卡对于显存的访问速度更快,而且大多数显卡对于RAM 没有直接的访问权利

2.设置渲染状态

什么是渲染状态呢? 一个通俗的解释就是,这些状态定义了场景中的网格是怎样被渲染的。
使用哪个顶点着色器(Vertex Shader) /片元着色器(Fragment Shader)、光源属性、材质等
使用哪个shader,光照的模式,材质球这些
比如一个cube 一个sphere两个都受光源一样,材质球一样渲染状态就一样的.

3.指导GPU如何工作,即调用Drawcall

发起方就是CPU,接收方是CPU,实现两者之间的通信.
CPU作用:发送一个命令,这个命令仅仅指向一个显存中的被渲染的图元列表,告诉GPU需要渲染这个.不需要包含材质信息,在设置渲染状态已经做了,
GPU作用:接到命令后根据渲染状态和顶点数据进行计算,这个计算过程就是重要的GPU流水线

几何阶段和光栅化阶段就是在GPU流水线上完成的;

二.几何阶段 光栅化阶段

在这里插入图片描述

这里就只讲uniyshader包括的

几何阶段

顶点着色器,裁剪,屏幕映射

  • 顶点着色器(完全可编程)
    作用:把接收的顶点数据进行一系列操作传给下一阶段
    在vfshader中主要这一部分

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值