Unity渲染流水线

今天过年回家了,不过要准备面试,认真学习下《Shader入门精要》因为里面不单涉及到shader的知识,还有一些渲染的知识,对我来说很有帮助。

渲染流水线:

    渲染流水线的目的是把场景从3维空间转化到2维空间,并最终在屏幕上显示的过程。之所以称之为流水线,是因为渲染有并行性,每个渲染图元可以并行处理,相互之间没有必然的前后顺序。渲染流水线的过程分为:应用阶段,几何阶段,光栅化阶段。

应用阶段:

    应用阶段是由CPU负责处理的,主要目的是得到模型,光源,摄像机位置和视锥体,材质,纹理,shader等,最终输出渲染图元。

几何阶段:

    主要目的是把模型的游戏坐标空间转化为屏幕空间坐标。几何阶段细分为:

1 顶点着色器:游戏坐标转化为齐次裁剪坐标,顶点着色,以及纹理坐标。

2 曲面细分着色器:细分图元。

3 几何着色器:执行逐片元的着色操作。

4 裁剪:将不在摄像机范围的顶点裁剪掉,部分在视野范围内的进行裁剪得到新的顶点。

5 屏幕映射:图元从裁剪坐标变换到屏幕坐标。

光栅化阶段:

    主要目的是决定哪些渲染图会被绘制在屏幕上,并对这些顶点进行坐标,颜色插值,最终得到要在屏幕上绘制的每个像素的信息。光栅化阶段细分为:

1 三角形设置:光栅化一个三角形网格,得到它的3条边的边界像素坐标信息,为下一步做准备。

2 三角形遍历:遍历每一个像素被哪些图元所覆盖,被覆盖就生成一个片元。

3 片元着色器:片元着色器的输入是从顶点着色器输出插值得到的数据,它的最重要操作是纹理采样。

4 逐片元操作:进行深度测试,模板测试等决定片元的可见性。对片元和已存在的颜色进行混合。

Draw Call:

    Draw Call其实是一个命令,是CPU通知GPU执行渲染的命令,这个命令包含了一个渲染图元列表。GPU收到这个图元列表后从显卡缓存中找到数据,并传入渲染流水线。

渲染图元:

    最基本的图形渲染元素,比如点,线段,三角网格这些。

片元:

    光栅化后的产物,它包含了像素位置,深度,颜色,法线信息,纹理坐标等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值