从本博客开始,本人主要是通过《Unity3D ShaderLab开发实战讲解》这本书,同读者学习和分享Unity3D中Shader编程的相关知识。
本文首先介绍下《Unity3D ShaderLab开发实战讲解》这本书的内容和简介。
说句题外话,这本书买了差不多2年多了,刚开始想着看书学习,到后来就没有坚持下去。原因有两点,第一,Shader编程需要一定的OpenGL基础,编程语言跟java或者C#相比确实比较的灰色难懂。第二,工作中实践的机会比较少,Shader的应用可能实在游戏开发的领域比较多一点,而本人在工作中使用Shader的机会确实会少很多。这两点导致了这本书看了头三章基础的东西就停住了,学习的动力不大。
而这次之所以想重新学习这本书,一个直接的原因是面试中对Shader的知识模棱两可,不仅是Shader,还有其他的一些工作中的知识点都理解的不够深入,不管怎么样就从Shader的学习开始吧,真正深入的学习知识,不仅要知道怎么用还要知道背后的原理,这个才是更加重要的。
所以在Shader学习的这个系列中,除了介绍书中每个章节的关键知识点外,会对知识点内部原理以及扩展知识等进行深入分析。也欢迎大家在博客下留言写出你想了解的知识点,大家一起探讨学习。下面就开始本文内容。
本书的内容提要(摘自书目录)
全面讲解了Unity Shader渲染的实战技术,全书分为五篇共33章,
主要内容为:
- Shader在3D游戏中的作用、Shader的实例化、Shader的实现语言等;
- Unity中Shader的形态、SubShader的重要标签、可编程Shader、Surface Shader;
- Shader中用到的各种空间的概念和Shader中的投影矩阵;
- 基本的光照模型;
- 被执行的Pass,包括渲染路径和Pass的LightMode标签;
- VertexLit渲染路径,包括顶点照明和Unity存放光源的方式;
- Forward渲染路径;
- 基于光照贴图的烘焙照明;
- 基于LightProbes的照明;
- 平面阴影;
- 球体阴影;
- 体积阴影;
- 映射阴影;
- 内置的阴影;
- Pass的通用指令开关;
- 固定管线;
- Surface Shader;
- 凹凸材质;
- 卡通材质;
- 镜面材质;
- 半透明材质;
- 体积雾;
- Wrap Model新解;
- 面积光;
- 体积光;
- 材质替代渲染;
- 后期效果;
- 地形;
- 投影;
- Shader的组织和复用;
- 你必须知道的渲染概念;
- 基于渲染路径的优化;
- 移动平台上的优化;
从本文开始,我会尽量用33篇博客来全面解读这本书。