内容简介
本书带领读者深入理解Unity5中着色器、光照和特效之间的相互关联,并对一些绝妙的视觉效果进行了展示和分析。不论是在PC、移动设备上,还是在其他平台上,这些知识将帮助游戏项目在画面质量方面产生新的飞跃。在不断提高游戏画面真实感的探索中,人们遇到了很多重大挑战。而通过阅读本书,读者可以逐渐找到战胜这些挑战的方法。
目录
译者序
前 言
第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
前言/序言
Unity提供了一系列工具来帮助开发者创建和运行游戏项目。Unity 5用全新的标准着色器替换了大部分旧版着色器,为我们带来了功能上的重大升级。新着色器通过简单设置便可模拟真实物体表面上的很多物理特性。
本书将探索这一系列新着色器为我们带来的全新选择,以及学习它们如何与光照和特效相互作用,产生高质量的游戏画面。
为了实现当今游戏画面中的真实感,人们走过了一条漫长的道路。在过去相当长的时间里,实时光照所带来的额外运算量为游戏研发制造了很多困扰。有时候,实现真实感的重担直接落在了纹理美术设计师的肩上。他们不得不将许多静态的表面效果直接烘焙到游戏角色和材质的纹理当中。
这种静态烘焙的方法有时在一些动态的游戏角色身上难以达到理想效果——特别是当一个角色移动到较阴暗或者较明亮的空间中时,静态烘焙难以实现良好的亮度等级变化,使得游戏画面显得粗糙而不真实。
计算机图形理论的进化,特别是显卡设备的升级换代,使很多基于实时光照的技术能够更加高效地运作。同时这也使人们对现代游戏报以更高的期望——我们希望在充满动态光照的场景中看到更逼真的物体表面。
在本书中,读者将通过一个典型的科幻题材恐怖游戏来学习这些新的着色器和光照理论。基于此,我们将能够探索各式各样的光照和物体表面效果。
本书主要内容在本书的不同章节中,我们将学习Unity 5中的所有主要着色器和效果。在每一章中我们会研究一个不同的场景文件。
第1章介绍基本概念,并通过为恐怖科幻游戏中的场景设置材质属性,展示Unity标准着色器的能力和局限性。
第2章继续设计飞船维修场景——通过创建自定义着色器优化游戏场景的外观。我们将从无到有创建自定义着色器,然后基于它,为头盔的透明外观和星球的大气创建更加复杂的效果。
第3章深入学习场景光照和自发光表面的关系,并在飞船驾驶舱场景中为一个星球模型实现全息影像效果。
第4章研究通过不同的技术在着色器中实现动画。在展示更复杂的基于自定义着色器的顶点动画之前,我们将演示如何通过滚动UV坐标和在C#中遍历纹理数组的方法来显示动画的全息影像。
第5章介绍在星球表面上所应用的各种透明效果,并且为多种材质指定现有的以及特殊创建的着色器。
第6章重点展示在Unity 5的标准着色器中,高光工作流和金属工作流的不同之处。
第7章展示在一个室内场景中为角色创建统一的皮肤和毛发着色器。本章中的第一个着色器为一些特殊的半透明材质(例如,宇航员的皮肤)实现次表面散射效果。紧接着我们将继续创建使用“基于物理渲染”方法的毛发和眼睛着色器。
第8章讲述如何创建实现烟雾、蒸汽和火焰的着色器。与前面章节类似,我们将不会满足于Unity的默认着色器,而是要为恐怖科幻游戏创建更高级别的电影效果。本章的场景将是飞船的走廊。
第9章研究如何在安卓和iOS等移动设备平台上测试自定义着色器。
阅读准备完成本书中的各个章节需要读者具备基本的3D图形概念。此外还需要:
在计算机中安装Unity 5(macOS或者Windows均可)。免费个人版即可满足本书所有章节中的实例程序。该版本可以从Unity官方网站下载。
虽然书中所含代码均会被清晰地讲解,但是具备Unity脚本和C#基础知识会对理解本书内容有益。
读者人群本书面向具有一定Unity和C#基础知识并希望为下一代游戏开发着色器和效果的中等水平的游戏开发者。我们假设读者对游戏开发和游戏美术设计的基础背景知识有一定了解。
本书约定在本书中,不同类型的内容使用多种不同的字体风格。这里列举一些示例并阐述它们的含义。
下面是一个代码段的示例:
表示警告和重要提醒。
表示提示和技巧。
下载示例代码读者可以从http://www.packtpub.com通过个人账号下载本书的示例代码文件。如果本书是通过其他途径购买的,可以访问http://www.packtpub.com/support并且注册账户以便通过电子邮件接收示例代码文件。
读者也可以访问华章图书官网www.hzbook.com,通过注册并登录个人账号,下载本书的源代码。
下载书中彩图我们也将本书所使用的彩色屏幕截图和图制作成了一个PDF文件供读者参考。彩图可以帮助读者更直观地理解某一项技术或方法为程序的输出带来的改变。该PDF文件可以从这里下载:http://www.packtpub.com/sites/default/files/downloads/MasteringUnityShadersAndEffects_ColorImages.pdf。
The Translator’s Words?译 者 序Unity是近两年中最流行且应用最广泛的游戏引擎之一。在国内,Unity的使用已经成为游戏研发从业者的一项必备技能。
这种局面的形成有两个重要原因:其一在于Unity的高度完善性。它不但拥有一个游戏引擎所需的全部功能,并且其渲染效果与主流3A游戏产品相比毫不逊色。其二是因为Unity的开放性。所有人都可以从其官方网站免费获得一份近乎全功能的Unity开发工具包,以便用于学习或者功能评估。不仅如此,从帮助新手入门和提高方面来看,Unity还拥有完善的使用文档和活跃的开发者社区。对于Unity使用者来说,翔实的学习和研发资料唾手可得。
本书是一本面向Unity初学者的“手册”式书籍。以实际操作为主线,按照从易到难的顺序,本书循序渐进地带领读者学习Unity着色器的编写和各种特效的创建。读者将在阅读的过程中边学边做,边动手边思考。既可以避免纸上谈兵,又可以方便读者将学习过程中偶尔产生的灵感及时付诸实践,检验其有效性。这是迅速开启游戏引擎应用大门的最佳途径。
游戏研发是一个持续高速发展的领域。一方面,玩家对新游戏的要求越来越高;另一方面,新理论、新算法也在不断地提出,照片级别的场景渲染和真实可信的物理模拟不断地出现在近些年的游戏新作当中。因此,每一个学习游戏研发技术的人都希望自己所学能够跟上时代的步伐、契合市场的需求。虽然本书面向初学者,但其内容不但涉及了一些先进的游戏图形渲染技术,比如用于表现皮肤的次表面散射效果,以及用于绘制毛发的各向异性高光效果等,而且也将近两年逐渐流行起来的移动设备平台涵盖其中。
总之,Unity是一座桥梁,一端连接了游戏研发领域中跃跃欲试的入门者群体,另一端则通向了真正的次世代游戏大作。而本书则向Unity初学者提供了一条以动手实践为基础的最佳入门途径,有助于读者在成为Unity应用专家的道路上快步前进。
Unity着色器和屏幕特效 电子书 下载 mobi epub pdf txt