作为初学者,断断续续学习Unity Shader半年了,感觉这坑很大啊。一开始学习的时候遇到很多问题,不知道去哪里学,从什么地方开始,关于CG有很多书选哪些看,看看别人写的Shader又总是看不懂,很苦恼

。
之所以想要学Shader,我会告诉你是因为一个主程姐姐告诉我这方面工资很高吗。。。当然,学了才知道,要学好不容易,学到能靠这个赚钱的地步更不容易。。。
不过呢,我一直相信,手机硬件会越来越好,学一点这个不管对游戏开发还是相关的图像处理都是有帮助滴。最近,我也发现不管是群里还是邮件,也有很多小伙伴们开始关注这个领域,搜索这部分资源,呜,CSDN8月份也举办了一个相关培训,因此,贡献贴第二章就是Unity Shader了。
当然,由于能力有限,如有不对之处还望指出

。
以下的Shader没有特殊说明的话是指Unity中的Shader。
========== 什么是Shader ==========
Shader,也就是着色器,它的工作就是读取你的网格并渲染在屏幕上。Shader可以定义一些属性,你会用它来影响渲染模型时所显示的效果。当存储了这些属性的设置时,就是一个Material,材质。
Unity中的Shader有以下几个种类:
Surface Shaders —— 这是Unity的骄傲。它去除了大部分“麻烦的工作”,可以适用于很多情况下 。
Vertex和Fragment Shaders —— 它允许你做更多的工作,但也更难写,而且它还让我们可以做低层的一些东西,像顶点光照,这对于移动设备和多个通道(passes)所必需的更高级的效果会非常有用。
这里只做简单介绍,更详细可以访问
博客文章。
对于深入学习CG和渲染,可以参见
“unity3d引擎程序员养成”这篇博客,里面介绍了很多书籍和技术资料。
========== Shader学习资料 ==========
以下主要是针对Unity Shader的学习教程和资料。
1. Unity官网的Shader手册
推荐。官方手册,质量保证。
2. Unity Build-in Shaders以及官方指南
推荐。感谢热心人补充~Unity中内置的各种Shader,可以下载下来进行观摩学习。你还可以在Unity/Contents/CGIncludes(MAC目录)或者Unity/Editor/Data/CGIncludes(Windows目录)下找到Unity内置函数和内置变量的实现细节(也包含在官方的
下载资源里)。
3. Unity CG Wiki Book
4. NVidia的CG编程教程
经典教程,是讲CG语言的,而非Unity封装后的。不过对于Vertex和Fragment Shaders,语法基本相同。
5. CreativeTD的Surface Shaders系列视频教程
外国网友推荐的。
6. CgCookie的Shader初级视频教程
7. CgCookie的Shader中级视频教程
8. 风雨冲的Shader教程系列(终于有个中文了)
感觉是国内最早开始写Unity Shader的博客之一了。
9.《Unity Shaders and Effects Cookbook》和中文专栏
书籍,2013年6月出版。
========== 万事开头难 ==========
我现在的学习路径也只正在学习《Unity Shaders and Effects Cookbook》一书,并写了一个
专栏作为记录。
这本书虽然讲的比较浅显,但也多少弥补了下书籍市场上这方面的空白。除此之外,会看一些专题Shader的制作教程或者视频。当然,由于Unity主要是在CG或者HLSL上面加了一层封装,如果想要深入理解,学习这些也是十分必要的。另外需要强调的是,由于计算机图像包含了很多数学计算,良好的数学功底也很重要啊!
最后,欢迎补充、指导和拍砖!
