内容提要:
本书不仅要教会读者如何使用Unity Shader,更重要的是要帮助读者学习Unity中的一些渲染机制以及如何使用Unity Shader实现各种自定义的渲染效果,希望这本书可以为读者打开一扇新的大门,让读者离制作心目中杰出游戏的心愿更近一步。
本书的主要内容为:OO章讲解了学习Unity Shader应该从哪里着手;第2章讲解了现代GPU是如何实现整个渲染流水线的,这对理解Shader的工作原理有着非常重要的作用;第3章讲解Unity Shader的实现原理和基本语法;第4章学习Shader所需的数学知识,帮助读者克服学习Unity Shader时遇到的数学障碍;第5章通过实现一个简单的顶点/片元着色器案例,讲解常用的辅助技巧等;第6章学习如何在Shader中实现基本的光照模型;第7章讲述了如何在Unity Shader中使用法线纹理、遮罩纹理等基础纹理;第8章学习如何实现透明度测试和透明度混合等透明效果;第9章讲解复杂的光照实现;OO0章讲解在Unity Shader中使用立方体纹理、渲染纹理和程序纹理等OO纹理;OO1章学习用Shader实现纹理动画、顶点动画等动态效果;OO2章讲解了屏幕后处理效果的屏幕特效;OO3章使用深度纹理和法线纹理实现更多屏幕特效;OO4章讲解非真实感渲染的算法,如卡通渲染、素描风格的渲染等;OO5章讲解噪声在游戏渲染中的应用;OO6章介绍了常见的优化技巧;OO7章介绍用表面着色器实现渲染;OO8章讲解基于物理渲染的技术;OO9章讲解在升级Unity 5时可能出现的问题,并给出解决方法;第20章介绍许多非常有价值的学习资料,以帮助读者进行更深入的学习。
本书适合Unity初学者、游戏开发者、程序员,也可以作为大专院校相关专业师生的学习用书,以及培训学校的培训教材。
作者简介:
冯乐乐,一名喜欢计算机图形的程序媛。
上海交通大学软件学院研究生,
爱好写Shader,
喜欢一切用计算机绘画的技术。
目录:
OO篇 基础篇
OO章 欢迎来到Shader的世界
1.1 程序员的三大浪漫
1.2 本书结构
第2章 渲染流水线
2.1 综述
2.1.1 什么是流水线
2.1.2 什么是渲染流水线
2.2 CPU和GPU之间的通信
2.2.1 把数据加载到显存中
2.2.2 设置渲染状态
2.2.3 调用Draw Call
2.3 GPU流水线
2.3.1 概述
2.3.2 顶点着色器
2.3.3 裁剪
2.3.4 屏幕映射
2.3.5 三角形设置
2.3.6 三角形遍历
2.3.7 片元着色器
2.3.8 逐片元操作
2.3.9 总结
2.4 一些容易困惑的地方
2.4.1 什么是OpenGL/DirectX
2.4.2 什么是HLSL、GLSL、CG
2.4.3 什么是DrawCall
2.4.4 什么是固定管线渲染
2.5 那么,你明白什么是Shader了吗
2.6 扩展阅读
第3章 Unity Shader基础
3.1 Unity Shader概述
3.1.1 一对好兄弟:材质和Unity Shader
3.1.2 Unity中的材质
3.1.3 Unity中的Shader
3.2 Unity Shader的基础:ShaderLab
3.3 Unity Shader的结构
3.3.1 给我们的Shader起个名字
3.3.2 材质和Unity Shader的桥梁:Properties
3.3.3 重量级成员:SubShader
3.3.4 留一条后路:Fallback
3.3.5 ShaderLab还有其他的语义吗
3.4 Unity Shader的形式
3.4.1 Unity的宠儿:表面着色器
3.4.2 O聪明的孩子:顶点/片元着色器
3.4.3 被抛弃的角落:固定函数着色器
3.4.4 选择哪种UnityShader形式
3.5 本书使用的UnityShader形式
3.6 答疑解惑
3.6.1 Unity Shader!=OO的Shader
3.6.2 Unity Shader和CG/HLSL之间的关系
3.6.3 我可以使用GLSL来写吗
3.7 扩展阅读
第4章 学习Shader所需的数学基础
第2篇 初级篇
第5章 开始Unity Shader学习之旅
第6章 Unity中的基础光照
第7章 基础纹理
第8章 透明效果
第3篇 中级篇
第9章 更复杂的光照
OO0章 OO纹理
OO1章 让画面动起来
第4篇 OO篇
OO2章 屏幕后处理效果
OO3章 使用深度和法线纹理
OO4章 非真实感渲染
OO5章 使用噪声
OO6章 Unity中的渲染优化技术
第5篇 扩展篇
OO7章 Unity的表面着色器探秘
OO8章 基于物理的渲染
OO9章 Unity 5更新了什么
第20章 还有更多内容吗