Games101计算机图形学入门基础之四:Unity图形渲染管线介绍

Unity图形渲染管线

Unity 中的渲染管线介绍

想要在屏幕上渲染出效果惊人的画面,那就必须了解将一个3D场景渲染到2D屏幕的过程,即使是3D游戏最终也是以2D的方式呈现在玩家的眼前,而这个过程就是 渲染管线。可以将它类比成一个工厂的流水线,在工厂的流水线中,原材料经过各个环节的处理最终成为一个产品。而在渲染管线中,原材料就是3D场景的坐标和一些其他数据,然后经过一系列处理变成屏幕上的有色2D像素。
图形渲染管线定义:一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程。

想学习Unity中的图形渲染管线需要了解UnityShader编程这方面的知识
Unity Shader 中对渲染的整个流程概述图:
在这里插入图片描述
其中Unity 图形渲染的整个过程分成三个部分:
应用阶段:
该阶段具有绝对控制权,可以利用代码进行修改。
该阶段处理的事情有:
1、 准备场景数据(视景体位置、视椎体、物体变换数据(位置、旋转、缩放)、物体网格数据(顶点位置、UV贴图)、光源数据:方向光、点光源、聚光源)
2、 设置渲染状态(材质(漫反射颜色、高光反射颜色)、使用的纹理、使用的Shader等)
3、 不可见剔除(把不可见的物体剔除出去)
4、 DrawCall (DrawCall就是一个命令,从CPU发起,GPU接收。这个命令指向一个需要被渲染的图元(primitives)列表,告诉GPU开始进行一个渲染过程。相当与OpenGL中的glDrawElements命令,DirectX中的DrawIndexedPrimitive命令。)
就是打个比方说:我是一个人A代表Cpu,你是一个人B代表Gpu,我叫你去打一堆人(代表需要被渲染的图元列表)然后还告诉你怎么打,是踩脚趾头还是甩他一个大比斗呢?这样我叫你去打人的一个过程就叫做 “Draw Call”。注:本人爱好和平不爱暴力,举例子是为了方便大家理解,狗头保命…
几何阶段:上面的应用阶段完成了后就会输出一系列渲染图元,然后需要经过顶点着色器、曲面细分着色器、几何着色器、裁剪、屏幕映射的步骤显示在用户面前。
光栅化阶段:三角形设置遍历,片元着色器、逐片元操作;
几何阶段和光栅化阶段,开发者无法拥有绝对的控制权,其实现的载体是GPU。GPU通过实现流水线化来加快渲染速度。虽然无法掌握绝对的控制权,但是GPU仍然向我们提供了许多控制权,如下图:
在这里插入图片描述
这两个阶段又被分成更小的阶段。有的阶段完全由GPU固定实现,有的阶段则具有高度可配置性或可编程性。上图中蓝色表示GPU固定实现,黄色表示不可编程但是可配置,绿色表示可编程控制。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT学徒.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值