目录
总览
首先,需要说明的是,<Shader入门精要>是一本十分十分优秀的UnityShader入门书籍,数学基础较为薄弱的也可以阅读。
但阅读前,我们要不得不承认两个问题。
- 该书版本比较老旧了,很多知识点,“学完等于过时”。由于该书出版于Unity5的时代,很多新的技术点没有介绍或一笔带过,比如表面着色器。
- 虽然该书曲线很平滑,但是如果你完全没有数学基础(或只有高中基础),阅读数学篇和基础篇时会遇到很多障碍。
那为什么还是推荐诸位使用该书Shader入门呢?
- 首先,因为现在哪怕是2020年了,市面上依然没有成熟的全面的Shader入门教材或教程(有发现的可以安利我,提前谢谢老板。),该书依然是最佳的入门教材。
- 该书花了很多篇章介绍了基础数学,特别是几何和矩阵那一块,适合数学基础较为薄弱的同学。
- 整本书分为:基础,初级,高级,拓展四个大篇章,曲线十分平缓,不会让人在某个地方卡很久。而且从开发环境,到debug环境,和优化思路都有涉猎。特别是一些拓展部分,细细阅读,裨益良多。
- 虽然前面说了,“学完等于过时”。但是学习技术,从来不是空中楼阁。从原理到思路,从尝试编写到debug,再到成品出来,这才是入门的合理历程。有了这些根基,再考虑迭代更新的事情,适应起来也快。
如果真的数学0基础如何开始阅读呢?
以我个人为例,推荐一个快速数学复习路线。
介绍下本人情况,供参考。高中数学基本忘完,大学数学基本划水。因工作需要,复习了一些3D几何相关的知识。学习Shader之前,自觉数学薄弱,便花了两周补习了一下数学,回顾一下感觉还是花了太久时间,有些浪费。(PS:甚至高中数学必修6本都买回来翻了一下,挺傻的)
每部分花个半天或者两三个小时复习一下即可,也不要花太多时间。
->复数与复变函数
Tips:书上没介绍这一部分,但是推荐这个要看,不然没办法理解极坐标怎么来的。
推荐链接:看百度百科就好
->向量加减法与极坐标
Tips:极坐标主要与旋转有关系,看了有助于理解后面的旋转
推荐链接:看百度百科就好
->基础三角函数公式
Tips:比如余切,正切,反余切,和差公式这些概念,都是基础中的基础。忘记了可以简单回顾一下。
推荐链接:看百度百科就好 。
->向量的乘法(点乘叉乘)
Tips:这个很重要,法线向量,角度计算都需要。
推荐链接:向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读_牧野的博客-CSDN博客_向量点乘
->欧拉角旋转或者四元数旋转
Tips:看欧拉角旋转主要是有个旋转的概念,别到矩阵后面一头雾水,时间不充裕可以不看万向锁,这里用不到。
Tips:四元数也是个难度比较高的部分,但是其中四元数的乘法和0方向四元数和四元数旋转的思路,与矩阵十分相似,如果精力较多,建议看看。
推荐链接:【Unity编程】Unity中的欧拉旋转_Andrew的游戏世界-CSDN博客
【Unity编程】四元数(Quaternion)与欧拉角_Andrew的游戏世界-CSDN博客
->线性代数(矩阵)
Tips:矩阵这部分,也建议提前过一边,书上虽然也有比较详细的介绍,但是如果自己没有提前了解,还是会遇到很多坑理解不了。
推荐链接:https://www.bilibili.com/video/BV1yE411u7kj
比较粗略的阅读建议。
阅读该书时,有个最大的障碍是,看着后面的,忘着前面的(问了很多朋友也是这样)。
所以,所有的代码一定要仔细跟着敲,敲的过程中要思考每行代码的作用,遇到无法理解的,最好翻回去看看,不要得过且过。
第二章,如果你对渲染流程没有了解,这一章建议仔细阅读,特别是2.3节,GPU流水线,后面会反复用到。看不懂没事,硬着头皮看下去,先有个基础概念。
第三章,3.1-3.3大概过一下那些表格和代码格式即可,后面实际编写时会反复锤炼这些格式,总会记住的。仔细阅读下3.4-3.6,另外注意3.4.1节中的表面着色器书上放到最后才讲,而且讲的也比较粗,不在这里纠结(虽然后面实际开发还是用着比较多)。
第四章,如果你数学比较差,这里将会是你的入门的第一关。4.4-4.9都是重点,一定要啃下来。先记住一句话,矩阵就是向量的集合(一位前辈告诉我的,很多想不通的问题迎刃而解)。
第五-十五章,这里要实际编写代码了,没什么好说的,一重山水一重关。跟着敲,不要偷懒。遇到无法理解的,最好翻回去看看,不要得过且过。
第十六章,该章介绍了很多优化思路,即使不学shader也会用得上。但是因为该书主要是介绍shader,所以这里介绍的有些泛。
后续博客or笔记
接下来几天会对该书按章节进行进行复习,将遇到的坑总结一下分享出来。
更重要是分享随书编写的代码,这些代码中写了很多琐碎的注释,都是一些想不通的地方的思考与感悟。如果有缘人看书时遇到哪里看不懂,可以尝试看看我写的内容。
同时最后应该还会有一些对自己的问答篇章,这些篇幅也会作为面试题库不断的积累和更新。
最后
看书的过程中,不断地了解渲染的知识体系。渲染是一个庞大的,复杂的,深邃的知识体系。这本书讲的确实只是一些很重要的"三脚猫"人门功夫。
不过,我学习此书的目的,也只是了解一下渲染知识。读完此书,耗时近两个月,至此目的已基本达成,系统性的渲染学习应该会告一段落。
接下来会跟朋友开发一款新的独立游戏,不多说,星辰大海,我又来啦,冲!
PS:乐乐女神啥时候出第二版啊!
文章对你有帮助么,点个赞可以嘛。攒攒人气,谢谢啦。