unity shader入门精要_我是如何学习/入门Shader的?

前言

其实一开始看到Shader我是拒绝的,倒不是因为它的语法看起来很奇怪,而是我知道一旦踏进了这个领域就代表着无穷无尽的学习了。Shader的前设知识有很多,什么高数、物理、渲染引擎等等...林林总总。光是想一想就让人不寒而栗。

但是知识曲线的陡峭其实不是阻碍本身,真正的阻碍在于没有好的指导。所以我在这里又一次要搬出冯女神的《shader入门精要》了。用这本书来入门再适合不过了!好的那么,今天的介绍就到这里,再见!

candycat1992/Unity_Shaders_Book​github.com
80459dc6035be2717688952a3a07d942.png

正文

好吧还是正经分享把。

首先,我在学习一门新语言之前都会先把我需要用的一些基本操作过一遍,包含以下内容:

  1. 定义属性
  2. 给定义属性赋值输出
  3. 计算加减并在控制台输出调试
  4. 在程序之间传递参数

根据我学习的不同目的,以上的操作清单可能会有改变,但大体的尝试方向是不变的,就是要弄懂这个语言编程的基本语法。这也是为什么会有Hello World这个梗吧,我觉得有时候这个梗让我思维变得机械了,后来才意识到培养自己的学习模式是多么很重要。其实很多程序的功能可能一辈子都不会用到,所以也不用带着要懂很多才能写的恐惧去写程序。由于图像渲染的特殊性,因此第三点“在控制台调试”是比较难实现的,幸好unity有提供给渲染的Debugger。但是我当时没有发现这一点,所以跳过了调试的部分。

接下来,我便会找来一个可用的程序版本(建议从入门书籍或者开源教程上找,一般来说教程提供的初级程序都是可经推敲的),然后观察它的整体结构,以理解这种编程语言的特性。不建议找print hello之类的过于简单的版本,尽量找可以完成某个需求的程序。比如我每次学一个新语言都会做一遍Hanoi塔。我学shader的时候则是输出一个颜色。这也是我在“从入门到跑路”系列里面介绍的第一个shader。我觉得这一步主要是培养兴趣,有些功能不明白也没有关系,可以照着教程抄一遍,一是让自己熟悉编程习惯,二来也是让自己有成就感。

如果已经把《shader入门精要》通读了一遍,我觉得shader本身已经没有什么可难倒你的了。这一步应该多查阅底层渲染引擎的知识和数学模型,以加强自己对现有知识的理解。这渲染这一部分我觉得catlike系列就很好,有兴趣可去参观:

https://catlikecoding.com/unity/tutorials/rendering/part-1/​catlikecoding.com

还有就是多多尝试把自己学过的shader应用到自己的游戏里面吧。我相信这也是很多人学习的shader的初衷,就是想让自己的游戏看起来好看一些。或者有些勇士会告诉我其实他们是想写软件渲染器哦,那我就忍不了了, 非得跳起来扇你几巴掌然后跪在地上求你不要做傻事(划掉)。

觉得自己头发多也可以去学openGL,学完回头来看shader你会觉得这是什么小儿科。

欢迎关注我的专栏:

shader从入门到跑路​zhuanlan.zhihu.com
241ed2e066f2b4909053e56e0b985851.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值