本书从最基础的着色器结构到着色器的创建,循序渐进地讲解着色器的各种知识,不仅会讲解皮肤着色器、布料着色器、车漆着色器、透明裁剪着色器、处理动态反射的着色器等常用着色器的创建,而且也会详细介绍如何开发后期特效,如夜视、反射等.同时,每章最后还会介绍一些新的技术,包括如何提高着色器质量以及着色08的编写效率.
我从2015年开始接触Unity开发,在此之前接触过很多游戏,也间或见过一些游戏开始时的Unity跳转页面。2014年暴雪发布了一款卡牌游戏《炉石传说》,该游戏画风精美,趣味十足,也深深地吸引了包括我在内的千万玩家。更让我吃惊的是,在该游戏的介绍页面中提到其开发平台使用的正是Unity3D。自此之后我便开始了Unity的学习之旅。
Unity是一个专业的游戏引擎,功能十分强大。但是对于没有接触过任何游戏开发或者没有接触过代码的新手而言,要学会从头到尾地开发一个游戏还是颇有难度的。本书并不涉及Unity游戏开发的所有方面,而是重点关注游戏开发中颇为晦涩难懂的着色器。
着色器是游戏表现超强拟实效果的基石。和大千世界中各种各样的材料对应的是,游戏里面也需要有各种各样的着色器及其组合来对其进行模拟。比如透明的玻璃效果,栩栩如生的动物皮毛效果等。如果读者恰好对这些内容感兴趣,或者需要实现一些类似的需求,那么本书应该很适合你。受篇幅所限,有一些不是本书主要内容的部分作者也提供了很多资料和文档的链接,非常有助于你对某些领域加强理解和认识。
就翻译本身而言,虽然我们会尽力细心地审查和校对,但仍难免有所疏忽。如果在阅读过程中发现一些瑕疵或者有争议的地方,十分欢迎读者联系译者进行核对和改进,以免对大家造成困扰。我的联系方式是SonlyF5020@gmail.com。
在承接本书翻译之时,恰逢我的儿子刚刚出生。当时除了工作的忙碌之外,还得花一部分业余时间来完成翻译,在此对我爱人周彩萍和儿子詹小贤道一声感谢,是你们一直以来的理解和支持才让本书得以完成。
封面图
目录
- 译者序
- 前言
- 第1章创建你的第一个着色器 1
- 1.1引言 1
- 1.2创建基本的标准着色器 2
- 1.3从Unity 4向Unity 5迁移 6
- 1.4给着色器添加属性 9
- 1.5在表面着色器中使用属性 12
- 第2章表面着色器和纹理映射 17
- 2.1引言 17
- 2.2漫反射着色 18
- 2.3使用包装数组 20
- 2.4给着色器添加纹理 22
- 2.5通过修改UV值来滑动纹理 25
- 2.6法线映射 27
- 2.7创建透明材质 32
- 2.8创建全息着色器 34
- 2.9打包和混合纹理 37
- 2.10在地形周围创建圆环 41
- 第3章理解光照模型 45
- 3.1引言 45
- 3.2创建自定义的漫反射光照模型 46
- 3.3创建卡通着色器 49
- 3.4创建冯氏反射类型光照模型 52
- 3.5创建BlinnPhong反射类型光照模型 56
- 3.6创建各向异性反射类型光照模型 59
- 第4章Unity 5中基于物理基础的渲染 64
- 4.1引言 64
- 4.2理解金属光泽属性 65
- 4.3给PBR添加透明度 68
- 4.4创建镜面和反射型表面 71
- 4.5在场景中添加烘焙光 74
- 第5章顶点函数 78
- 5.1引言 78
- 5.2在表面着色器中访问顶点颜色 79
- 5.3表面着色器中的顶点动画 82
- 5.4挤压模型 85
- 5.5实现雪花着色器 88
- 5.6实现体积爆炸效果 91
- 第6章碎片着色器和抓取 96
- 6.1引言 96
- 6.2理解顶点和碎片着色器 96
- 6.3使用抓取 100
- 6.4实现玻璃着色器 103
- 6.5给2D游戏添加水面着色器 105
- 第7章移动端着色器优化 109
- 7.1引言 109
- 7.2什么是轻量着色器 109
- 7.3对着色器进行性能分析 114
- 7.4移动平台上的着色器修改 119
- 第8章使用Unity的渲染纹理实现屏幕特效 123
- 8.1引言 123
- 8.2创建屏幕特效的脚本系统 124
- 8.3使用屏幕特效实现亮度、饱和度以及对比度 131
- 8.4使用屏幕特效实现类似Photoshop的基本混合模式 136
- 8.5使用屏幕特效实现覆盖混合模式 141
- 第9章游戏可玩性和屏幕特效 145
- 9.1引言 145
- 9.2创建老电影风格的屏幕特效 146
- 9.3创建夜视风格的屏幕特效 155
- 第10章高级着色技术 163
- 10.1引言 163
- 10.2使用Unity中内置的CgInclude文件 163
- 10.3使用CgInclude对着色器进行模块化 166
- 10.4实现毛皮着色器 169
- 10.5使用数组实现热度图 174