《Unity着色器和屏幕特效开发秘笈》共分为11章,几乎包含了Unity着色器中常用的效果示例。主要内容包括基础的漫反射着色;两种高光类型Blinn和Phong,以及利用这些高光类型创造蒙版镜面、金属镜面等高光效果;反射的实现;创建自定义的光照模型;透明度在游戏当中的实现;访问存储在3D网格中的顶点信息;移动端是如何减少着色器中的内存开销的;着色器组的模块化,以及重用代码的必要性;使用渲染纹理实现屏幕特效。
目录
- 译者序
- 前 言
- 第1章 漫反射着色
- 1.1 引言
- 1.2 创建基本的表面着色器
- 1.2.1 准备工作
- 1.2.2 如何操作
- 1.2.3 实现原理
- 1.2.4 参考
- 1.3 为表面着色器添加属性
- 1.3.1 如何操作
- 1.3.2 如何操作
- 1.3.3 参考
- 1.4 在表面着色器中使用属性
- 1.4.1 如何操作
- 1.4.2 实现原理
- 1.5 创建自定义漫反射光照模型
- 1.5.1 如何操作
- 1.5.2 实现原理
- 1.5.3 更多内容
- 1.5.4 参考
- 1.6 创建Half Lambert光照模型
- 1.6.1 如何操作
- 1.6.2 实现原理
- 1.7 创建渐变纹理来控制漫反射着色
- 1.7.1 准备工作
- 1.7.2 如何操作
- 1.7.3 实现原理
- 1.8 使用2D渐变纹理创建假的BRDF
- 1.8.1 准备工作
- 1.8.2 如何操作
- 1.8.3 实现原理
- 1.8.4 参考
- 第2章 使用纹理贴图制作特效
- 2.1 引言
- 2.2 通过修改UV坐标实现纹理贴图的滚动
- 2.2.1 准备工作
- 2.2.2 如何操作
- 2.2.3 实现原理
- 2.3 让精灵表单动起来
- 2.3.1 准备工作
- 2.3.2 如何操作
- 2.3.3 实现原理
- 2.3.4 更多内容
- 2.3.5 参考
- 2.4 压缩和混合纹理贴图
- 2.4.1 准备工作
- 2.4.2 如何操作
- 2.4.3 实现原理
- 2.4.4 参考
- 2.5 法线贴图
- 2.5.1 准备工作
- 2.5.2 如何操作
- 2.5.3 实现原理
- 2.5.4 更多内容
- 2.6 在Unity编辑器中创建程序纹理贴图
- 2.6.1 准备工作
- 2.6.2 如何操作
- 2.6.3 实现原理
- 2.6.4 更多内容
- 2.7 Photoshop色阶效果
- 2.7.1 准备工作
- 2.7.2 如何操作
- 2.7.3 实现原理
- 2.7.4 更多内容
- 2.7.5 参考
- 第3章 利用镜面反射让游戏闪耀起来
- 3.1 引言
- 3.2 利用Unity3D内置的高光类型
- 3.2.1 准备工作
- 3.2.2 如何操作
- 3.2.3 实现原理
- 3.3 创建Phong高光类型
- 3.3.1 准备工作
- 3.3.2 如何操作
- 3.3.3 实现原理
- 3.4 创建BlinnPhong高光类型
- 3.4.1 准备工作
- 3.4.2 如何操作
- 3.4.3 实现原理
- 3.5 使用贴图对模型的高光进行遮罩
- 3.5.1 准备工作
- 3.5.2 如何操作
- 3.5.3 实现原理
- 3.6 金属与软高光
- 3.6.1 准备工作
- 3.6.2 如何操作
- 3.6.3 实现原理
- 3.6.4 参考
- 3.7 创建各向异性高光类型
- 3.7.1 准备工作
- 3.7.2 如何操作
- 3.7.3 实现原理
- 第4章 着色器的反射
- 4.1 在Unity3D中创建立方图
- 4.1.1 准备工作
- 4.1.2 如何操作
- 4.1.3 实现原理
- 4.1.4 参考
- 4.2 Unity3D中简单的立方图反射
- 4.2.1 准备工作
- 4.2.2 如何操作
- 4.2.3 实现原理
- 4.3 Unity3D中的遮罩反射
- 4.3.1 准备工作
- 4.3.2 如何操作
- 4.3.3 实现原理
- 4.4 Unity3D中的法线贴图和反射
- 4.4.1 准备工作
- 4.4.2 如何操作
- 4.4.3 实现原理
- 4.4.4 更多内容
- 4.5 Unity3D中的菲涅尔反射
- 4.5.1 准备工作
- 4.5.2 如何操作
- 4.5.3 实现原理
- 4.6 在Unity3D中创建简单的动态立方图系统
- 4.6.1 准备工作
- 4.6.2 如何操作
- 4.6.3 实现原理
- 4.6.4 更多内容
- 第5章 光照模型
- 5.1 引言
- 5.2 发光球体光照模型
- 5.2.1 准备工作
- 5.2.2 如何操作
- 5.2.3 实现原理
- 5.2.4 参考
- 5.3 漫反射卷积光照模型
- 5.3.1 准备工作
- 5.3.2 如何操作
- 5.3.3 实现原理
- 5.3.4 更多内容
- 5.3.5 参考
- 5.4 创建车辆喷漆的光照模型
- 5.4.1 准备工作
- 5.4.2 如何操作
- 5.4.3 实现原理
- 5.4.4 更多内容
- 5.5 皮肤着色器
- 5.5.1 准备工作
- 5.5.2 如何操作
- 5.5.3 实现原理
- 5.5.4 更多内容
- 5.6 布料着色器
- 5.6.1 准备工作
- 5.6.2 如何操作
- 5.6.3 实现原理
- 第6章 透明度
- 6.1 引言
- 6.2 使用alpha参数创建透明效果
- 6.2.1 准备工作
- 6.2.2 如何操作
- 6.2.3 实现原理
- 6.3 透明裁剪着色器
- 6.3.1 准备工作
- 6.3.2 如何操作
- 6.3.3 实现原理
- 6.4 通过渲染队列进行深度排序
- 6.4.1 准备工作
- 6.4.2 如何操作
- 6.4.3 实现原理
- 6.5 GUI和透明度
- 6.5.1 准备工作
- 6.5.2 如何操作
- 6.5.3 实现原理
- 第7章 顶点魔法
- 7.1 引言
- 7.2 在表面着色器中访问顶点颜色
- 7.2.1 准备工作
- 7.2.2 如何操作
- 7.2.3 实现原理
- 7.2.4 更多内容
- 7.3 表面着色器的顶点动画
- 7.3.1 准备工作
- 7.3.2 如何操作
- 7.3.3 实现原理
- 7.4 在地形中使用顶点颜色
- 7.4.1 准备工作
- 7.4.2 如何操作
- 7.4.3 实现原理
- 第8章 移动平台上着色器的优化
- 8.1 引言
- 8.2 什么是轻型着色器
- 8.2.1 准备工作
- 8.2.2 如何操作
- 8.2.3 实现原理
- 8.3 对着色器进行性能分析
- 8.3.1 准备工作
- 8.3.2 如何操作
- 8.3.3 实现原理
- 8.3.4 更多内容
- 8.4 移动平台上的着色器修改
- 8.4.1 准备工作
- 8.4.2 如何操作
- 8.4.3 实现原理
- 第9章 使用CgInclude文件让着色器模块化
- 9.1 引言
- 9.2 Unity中的内置CgInclude文件
- 9.2.1 准备工作
- 9.2.2 如何操作
- 9.2.3 实现原理
- 9.3 创建CgInclude文件来存储光照模型
- 9.3.1 准备工作
- 9.3.2 如何操作
- 9.3.3 实现原理
- 9.4 使用#define指令模块化地创建着色器
- 9.4.1 如何操作
- 9.4.2 实现原理
- 第10章 使用Unity的渲染纹理实现屏幕特效
- 10.1 引言
- 10.2 创建屏幕特效的脚本系统
- 10.2.1 准备工作
- 10.2.2 如何操作
- 10.2.3 实现原理
- 10.2.4 更多内容
- 10.3 使用屏幕特效实现亮度、饱和度以及对比度
- 10.3.1 准备工作
- 10.3.2 如何操作
- 10.3.3 实现原理
- 10.4 使用屏幕特效实现类似Photoshop的基本混合模式
- 10.4.1 准备工作
- 10.4.2 如何操作
- 10.4.3 实现原理
- 10.4.4 更多内容
- 10.5 使用屏幕特效实现叠加混合模式
- 10.5.1 准备工作
- 10.5.2 如何操作
- 10.5.3 实现原理
- 第11章 游戏的可玩性和屏幕特效
- 11.1 引言
- 11.2 创建老电影风格的屏幕特效
- 11.2.1 准备工作
- 11.2.2 如何操作
- 11.2.3 实现原理
- 11.3 创建夜视的屏幕特效
- 11.3.1 准备工作
- 11.3.2 如何操作
- 11.3.3 实现原理
- 11.3.4 参考