Unity Shader 进化之路(一) 渲染流水线与Shader的形象化理解

【原创文章 转载和商业用途请与作者联系】

什么是Shader呢?

Shader就是让一些点被看见,就好像是为三角形网格这个骨架,披上了一层有颜色的衣服,这个衣服有它的材质,比如透明性、反光性、粗糙度、纹理等等。然后这个场景里的物体,我们能看见什么,不能看见什么,还需要看我们的眼镜是如何设置的,比如红外波段啊,筛选物体啊,排序啊,近大远小透视啊等等这些。

渲染流水线是什么?

艺术家在头脑中想象了一个房间,数学家用解析几何描述了这个房间,计算机科学家用数据结构把离散的信息集合起来,接下来,通过一个叫做计算机图形学的学科所积累的方法,我们可以通过一个渲染流程,将这个房间,这个原来只存在于艺术家想象中的房间,呈现到电脑屏幕上。这个过程,就是渲染。
那么,它是如何具体实现的呢?这好比做一道菜,有原料,有菜谱,然后要炒一炒,入锅的顺序还要排好。原料就是我们的顶点数据,这些数据里有顶点的位置信息,就好像素描时画的轮廓、透视等,数据里有顶点的颜色信息,就好像上水粉时调的色板;菜谱就是我们的Shader,它告诉计算机要如何做菜——渲染,比如先放什么菜,然后多大的火,加什么调料,需要添水还是蒸干;谁来炒菜呢?GPU掌勺,CPU是帮厨,负责准备前面的工作,买菜,和客户聊天什么的,然后GPU就把菜煮熟了,把原料入味了。然后菜被端上桌,给来宾品尝。我们的图像也就被渲染到了显示屏上,供应用程序呈现给用户。

Unity Shader的作用是什么呢?

Unity Shader就是提供了调色板和眼镜的编辑器,让我们在计算机世界中,可以按照想要的艺术效果,看到一个绘声绘色的世界;也可以说,Unity Shader是一个菜谱的模板,通过它我们可以更清晰方便地和掌勺的大厨GPU交流,我们好像是写了一个调料盒,或者是写了一个炖煮方式表,或者是告诉帮厨菜要切多大块。它们(菜谱)就是Tags, Render Set Up, 以及 Pass里的 Vertex Shader, Fragment Shader。
从计算机图形学的知识来看,Tags是设置针对于物体的渲染方式,比如是否透明、顶点批处理、是否为精灵对象,材质面板形状等 —— 这就像是切菜。Render Set Up是针对整个渲染流程,比如剔除、深度测试和写入、混合等 ——这是炖煮。Shader里的Pass是具体的渲染流程,里面可以写 Vertex/Fragment Shader —— 这是炒菜步骤的详细讲解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值