Unity5.0 Shader 极简入门 (二)

UnityShader的两种写法

如果想修一张照片
可以用很专业的软件例如“Photoshop”,
当然如果你不会,也可用傻瓜式软件“美图秀秀”,用大神已经做好的特效,简单点一点,照样能修的很棒。

其实,unity的shader也是一样的。你可以使用两种语法编写:

  1. 复杂而详细的“顶点片元着色”,pass写法。
  2. 简单而易用的“表面着色”,Surface Shader写法。

这两个写法思路相同只是写法不同,
实际上是先有1 ,然后人们发现1能改进,于是在1基础上提炼、合并同类项(业内叫封装),制作出了2。
所以通常情况下,你会看到同一个效果,用1来写就要好长好长,用2,也许就是简短的半页代码。
但是在显存里面,他俩的效率是一样滴。所以不用纠结用哪种方法编写好。
我推荐大家,如果想学,就从复杂的学,学完再看简单的就很容易了。


扩展阅读 详细介绍2 是怎么从 1 过来的

看问题:如果你有两个菜谱A,B,当然其中有部分是重复的内容
A : 买菜洗菜切菜
B : 买菜洗菜切菜

那么用程序思维我们就可以把“买菜、洗菜、切菜”合并同类项,称为“准备工作”,然后这么介绍:

做菜前要有“准备工作 ”具体要做 “买菜,洗菜,切菜”,然后:
A 菜做法是 准备工作 + 炒
B 菜做法是 准备工作 + 炖

所以以后,你作为厨师长带徒弟了,就可以直接跟他说“准备工作做的怎么样了?”意思就是“买菜,洗菜,切菜”了吗?

shader 也是一样的 把成大段的相同的代码合并同类项,下次用的时候不用说太多,直接说“准备工作”。
计算机就明白了:“啊!原来你要做这个事儿!”

于是就有了上文说的从 1 到 2 的简化 。
那么shader 到底把哪些内容合并同类项了呢?
我不了解它合并了啥,就没法编写呀!
这个问题我们留给以后探讨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值