Unity是近两年中最流行且应用最广泛的游戏引擎之一。在国内,Unity的使用已经成为游戏研发从业者的一项必备技能。
这种局面的形成有两个重要原因:其一在于Unity的高度完善性。它不但拥有一个游戏引擎所需的全部功能,并且其渲染效果与主流3A游戏产品相比毫不逊色。其二是因为Unity的开放性。所有人都可以从其官方网站免费获得一份近乎全功能的Unity开发工具包,以便用于学习或者功能评估。不仅如此,从帮助新手入门和提高方面来看,Unity还拥有完善的使用文档和活跃的开发者社区。对于Unity使用者来说,翔实的学习和研发资料唾手可得。
本书是一本面向Unity初学者的“手册”式书籍。以实际操作为主线,按照从易到难的顺序,本书循序渐进地带领读者学习Unity着色器的编写和各种特效的创建。读者将在阅读的过程中边学边做,边动手边思考。既可以避免纸上谈兵,又可以方便读者将学习过程中偶尔产生的灵感及时付诸实践,检验其有效性。这是迅速开启游戏引擎应用大门的最佳途径。
游戏研发是一个持续高速发展的领域。一方面,玩家对新游戏的要求越来越高;另一方面,新理论、新算法也在不断地提出,照片级别的场景渲染和真实可信的物理模拟不断地出现在近些年的游戏新作当中。因此,每一个学习游戏研发技术的人都希望自己所学能够跟上时代的步伐、契合市场的需求。虽然本书面向初学者,但其内容不但涉及了一些先进的游戏图形渲染技术,比如用于表现皮肤的次表面散射效果,以及用于绘制毛发的各向异性高光效果等,而且也将近两年逐渐流行起来的移动设备平台涵盖其中。
总之,Unity是一座桥梁,一端连接了游戏研发领域中跃跃欲试的入门者群体,另一端则通向了真正的次世代游戏大作。而本书则向Unity初学者提供了一条以动手实践为基础的最佳入门途径,有助于读者在成为Unity应用专家的道路上快步前进。
封面图
目录
- 译者序
- 前言
- 第1章掌握标准着色器1
- 1.1创建程序项目2
- 1.2导入项目文件3
- 1.3加载飞船维修场景并在场景中漫游4
- 1.3.1为宇航员创建材质5
- 1.3.2为宇航员的装备创建材质9
- 1.3.3为飞船创建材质16
- 1.3.4为星球创建材质20
- 1.3.5设置天空盒23
- 1.3.6调节场景光照并添加效果25
- 1.4总结28
- 第2章创建自定义着色器29
- 2.1打开程序项目29
- 2.1.1打开场景30
- 2.1.2创建第一个自定义着色器30
- 2.2进阶的透明效果39
- 2.2.1创建自定义透明着色器39
- 2.2.2编辑透明着色器40
- 2.3进阶的星球大气效果45
- 2.3.1创建自定义大气着色器45
- 2.3.2应用大气着色器46
- 2.3.3编辑大气着色器46
- 2.4总结49
- 第3章使用光照和自发光表面50
- 3.1查看场景的光照设置50
- 3.1.1为材质添加自发光属性53
- 3.1.2为画面添加Bloom特效55
- 3.2为星球表面扫描器创建线框自发光材质57
- 3.2.1实际观察线框自发光着色器的表现61
- 3.2.2为线框着色器添加第二遍渲染62
- 3.3总结66
- 第4章通过代码和着色器实现物体表面动画67
- 4.1打开场景67
- 4.2创建警示灯的闪烁效果68
- 4.3创建显示屏的动态亮度71
- 4.4创建星球全息影像的动画效果78
- 4.5总结86
- 第5章研究透明表面和效果87
- 5.1打开场景87
- 5.1.1创建尘埃云团材质88
- 5.1.2添加雾效果90
- 5.1.3让尘埃云团动起来92
- 5.2创建更好的透明玻璃材质97
- 5.3创建旋风特效100
- 5.4总结103
- 第6章使用高光和金属表面104
- 6.1打开场景105
- 6.1.1运行时修改货箱的第二材质105
- 6.1.2添加第二反光纹理贴图106
- 6.1.3为货箱创建自定义贴花着色器108
- 6.1.4运行时切换贴花纹理113
- 6.2找到并修改渲染器光照模型115
- 6.2.1创建自定义光照模型118
- 6.2.2为自定义光照模型添加高光121
- 6.3总结124
- 第7章有机表面着色器125
- 7.1打开场景125
- 7.2理解皮肤表面的复杂性126
- 7.3创建皮肤着色器126
- 7.3.1为皮肤着色器添加贴图129
- 7.3.2为皮肤着色器添加自定义光照模型132
- 7.4为眼球创建材质136
- 7.5为头发创建材质140
- 7.6总结145
- 第8章自定义粒子着色器——烟雾、蒸汽和流体147
- 8.1打开场景148
- 8.2添加粒子系统148
- 8.2.1调整粒子系统参数149
- 8.2.2为粒子系统创建材质152
- 8.3创建自定义粒子着色器153
- 8.3.1为自定义粒子着色器添加颜色支持156
- 8.3.2添加蒸汽效果156
- 8.3.3创建黏液滴落效果162
- 8.4总结169
- 第9章为移动设备优化着色器170
- 9.1打开场景170
- 9.2为移动设备创建简化的着色器175
- 9.3为移动设备创建高级着色器181
- 9.4总结183