本书从基础的着色器结构到着色器的创建,循序渐进地讲解着色器的各种知识,不仅介绍基于物理基础的渲染和全局照明的使用,而且详细介绍如何开发后期特效,如夜视等。每章都会介绍一些新的技巧,以改善着色器质量或者提升着色器代码编写效率等。读者可以通过逐章阅读来构筑整个知识体系,学会制作现代游戏视觉的技术。
译者序
前 言
第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
Preface本书介绍Unity5中着色器的创建和后期特效开发。你可以从零开始学习创建最基本的着色器,掌握着色器代码是如何组织的。开始的基础知识可以有效地“武装”你,让你在后续如体积爆炸、毛皮着色等章节中游刃有余。本版是专门为Unity5量身定制的,可以通过使用一些基于物理基础的渲染和全局照明来让你的场景栩栩如生。
在每一章的结尾,你都会获得一些新的技巧,比如改善着色器质量或者提升着色器代码编写效率等。这些章节都是量身定制的,所以如果你之前已经有了一些经验,完全可以直接跳到你感兴趣的章节来专门学习。对于新手来讲,可以逐章阅读来构筑整个知识体系。不管使用何种方式,你都会学到制作现代游戏视觉的技术。
在读完本书之后,你手上会有一堆已经做好的着色器,可以在你的Unity3D游戏中使用这些着色器,除此之外你会理解如何创建新的着色器,如何完成新的特效以及性能优化等。废话不多说,让我们开始吧!
本书主要内容第1章会将你引入Unity4和Unity5的着色器编码世界。
第2章介绍表面着色器中的一些非常常用的技术,包括如何给你的模型使用纹理和法线映射。
第3章深度解析着色器是如何给光照行为建模的。本章会教你如何创建自定义光照模型来模拟一些特殊效果,比如卡通着色。
第4章会告诉你基于物理基础的渲染是Unity5中使用的一种模拟现实的基础技术,会教你如何最大限度地使用好基于物理基础的渲染,如何使用透明度、反射型表面和全局照明等。
第5章会教你如何使用着色器来修改物体的几何结构。本章会引入顶点编辑器,使用它可以制作体积爆炸、雪花等生动的特效。
第6章解释如何使用抓取功能来制作一些半透明材料形成的变形效果。
第7章会帮助你对着色器进行一些优化,以保证游戏在各种不同设备上都能正常运转。
第8章展示如何创建特效和其他一些除了Unity几乎不可能实现的视觉效果。
第9章会告诉你如何通过后期特效来提升游戏的可玩性,比如夜视效果。
第10章介绍本书中的很多高级技巧,比如毛皮着色和热度图渲染等。
阅读前的准备工作下面列出的是使用本书时所必需和可选的一些软件:
Unity5(必需)一个3D应用程序,比如Maya、Max或者Blender(可选)一个2D图像编辑软件,比如Photoshop或者Gimp(可选)本书的读者对象如果你想用Unity5来创建你的首个着色器,或者想通过一些专业的后期特效来将你的游戏提升到一个新的高度,这本书就很适合你,但是可能需要一些对于Unity的基础理解。
本书结构在本书中,你会发现有几个频繁出现的标题(准备工作、操作步骤、工作原理、更多内容、参考),这几个标题一般是这样用的:
准备工作这个部分告诉你预期要做出来的效果是什么,需要准备哪些软件和预先的设置。
操作步骤这个部分包含了实现的具体步骤。
工作原理这个部分一般是对操作步骤的详细解释。
更多内容这一部分由一些相关的附加信息组成,以方便读者对整体内容有更全面的认识。
参考这一部分会提供一些有用的链接和其他有用信息。
约定注意以这种方式出现。
提示和技巧以这种方式出现。
下载示例代码本书提供相关的一些示例代码文件下载,可以访问http://www.packtpub.com/support来注册,相关文件会用电子邮件直接发给你。
下载代码文件的步骤如下:
1.通过电子邮件和密码在上述网站上登录或者注册。
2.移动鼠标到网站顶部的SUPPORT标签处。
3.点击CodeDownloads&Errata;。
4.输入书名,点击Search按钮。
5.选择你在查找的书籍,下载相关代码文件。
6.从下拉菜单中选择你的购买渠道。
7.点击CodeDownload。
文件下载之后,请使用如下解压软件进行解压:
Windows系统请使用WinRAR/7-Zip,Mac系统请使用Zippeg/iZip/unRarX,Linux系统请使用7-Zip/PeaZip。
下载本书的彩图我们还提供本书中所用到的截图、图片的彩图PDF文件,这些彩图可以让你更好地理解输出的细微差别。你可以从https://www.packtpub.com/sites/default/files/downloads/Unity5xShadersAndEffectsCookbook_SecondEdition_Graphics.pdf处下载。
TheTranslater'sWords译者序我从2015年开始接触Unity开发,在此之前接触过很多游戏,也间或见过一些游戏开始时的Unity跳转页面。2014年暴雪发布了一款卡牌游戏《炉石传说》,该游戏画风精美,趣味十足,也深深地吸引了包括我在内的千万玩家。更让我吃惊的是,在该游戏的介绍页面中提到其开发平台使用的正是Unity3D。自此之后我便开始了Unity的学习之旅。
Unity是一个专业的游戏引擎,功能十分强大。但是对于没有接触过任何游戏开发或者没有接触过代码的新手而言,要学会从头到尾地开发一个游戏还是颇有难度的。本书并不涉及Unity游戏开发的所有方面,而是重点关注游戏开发中颇为晦涩难懂的着色器。
着色器是游戏表现超强拟实效果的基石。和大千世界中各种各样的材料对应的是,游戏里面也需要有各种各样的着色器及其组合来对其进行模拟。比如透明的玻璃效果,栩栩如生的动物皮毛效果等。如果读者恰好对这些内容感兴趣,或者需要实现一些类似的需求,那么本书应该很适合你。受篇幅所限,有一些不是本书主要内容的部分作者也提供了很多资料和文档的链接,非常有助于你对某些领域加强理解和认识。
就翻译本身而言,虽然我们会尽力细心地审查和校对,但仍难免有所疏忽。如果在阅读过程中发现一些瑕疵或者有争议的地方,十分欢迎读者联系译者进行核对和改进,以免对大家造成困扰。我的联系方式是SonlyF5020@gmail.com。
在承接本书翻译之时,恰逢我的儿子刚刚出生。当时除了工作的忙碌之外,还得花一部分业余时间来完成翻译,在此对我爱人周彩萍和儿子詹小贤道一声感谢,是你们一直以来的理解和支持才让本书得以完成。
占红来2017年3月北京
这本书不仅仅是一本关于Unity着色器的技术手册,更像是一本关于如何用代码“绘制”世界的艺术指南。作者的笔触非常细腻,他不仅仅是告诉你“怎么做”,更引导你去“思考为什么”。我最喜欢的是书中关于如何利用着色器来模拟各种物理现象和自然光照的章节。例如,关于如何实现水波纹(water ripples)和火焰效果(fire effects)的讲解,非常生动形象,让我对如何通过数学和编程来创造出逼真的动态效果有了深刻的理解。书中的代码示例质量很高,而且作者非常注重代码的可读性和可扩展性,这对于我们开发者来说非常重要。我尤其赞赏作者在讲解高级概念时,会适时地穿插一些实际项目中的应用场景,这让原本抽象的技术变得更加具体和实用。比如,在介绍如何实现粒子系统(particle system)中的自定义着色器时,他就结合了一个实际的爆炸效果的例子,这让我能够立刻将学到的知识应用到自己的项目中。此外,书中关于后处理栈(post-processing stack)的讲解也非常有价值,它为我们提供了一个统一的框架来管理和组合各种屏幕特效,这极大地提高了开发效率。这本书的内容深度和广度都非常出色,对于任何想要在Unity中创造出令人惊艳视觉效果的开发者来说,都是一本必读的经典。
评分这本书给我的感觉是一本非常“实在”的参考书。它不像一些网络上的零散教程,只是给你几个例子然后让你复制粘贴。这本书的作者显然花了很多心思来组织内容,让读者能够循序渐进地学习。我特别喜欢它关于材质(material)和渲染流程(rendering pipeline)的讲解。在书中,我第一次真正理解了Unity的渲染器是如何工作的,包括顶点数据(vertex data)、三角形(triangles)、像素着色(pixel shading)等等。当我读到关于如何创建自定义的渲染纹理(render texture)以及如何利用它来实现一些特殊的视觉效果时,我感觉自己对Unity的掌握程度又上了一个台阶。书中的很多章节都提供了非常详细的“动手做”环节,让你可以边学边练。我印象最深刻的是关于实现屏幕空间反射(screen-space reflections)的章节,虽然我对反射的概念一直有所了解,但具体如何在Unity中实现,并且达到比较好的效果,一直是个困扰。这本书给出了非常清晰的实现步骤和代码,并且解释了其中的技术细节,让我茅塞顿开。这本书的内容非常丰富,涵盖了从基础到着色的方方面面,对于想要深入了解Unity图形渲染的开发者来说,绝对是一本不容错过的书籍。
评分这本书绝对是Unity开发者,尤其是对图形和视觉效果感兴趣的同学们的宝藏!作者的讲解方式非常深入浅出,即便我之前对 shader 的理解仅限于一些基础概念,读完这本书后,感觉像是打开了新世界的大门。书里关于屏幕空间特效的章节尤其让我印象深刻,从最基本的后处理(post-processing)概念,到如何实现景深(depth of field)、泛光(bloom)、色彩校正(color grading)等,每一步都讲解得清晰透彻,并且提供了实用的代码示例,让我能够立刻上手实践。我最喜欢的一点是,作者并没有停留在“怎么做”,而是深入地解释了“为什么这么做”,这对于真正理解 shader 的底层逻辑至关重要。例如,在讲解抗锯齿(anti-aliasing)的时候,不仅展示了不同方法的实现,还详细对比了它们的性能损耗和视觉效果差异,这让我对如何在项目中做出权衡有了更明确的认识。此外,书中关于纹理(texture)和采样(sampling)的章节也很有启发,让我对纹理贴图的各种属性有了更深入的理解,比如纹理过滤(texture filtering)和寻址模式(addressing modes),这些看似细微的细节,在实际开发中却能极大地影响最终画面的质量。这本书的内容非常扎实,不是那种泛泛而谈的教程,而是真正能教会你如何创造出令人惊叹的视觉效果。
评分这本书的优点在于它并没有仅仅停留在Unity自带的ShaderLab语言层面,而是更进一步地探讨了如何使用HLSL(High-Level Shading Language)来编写更复杂、更高效的着色器。作为一名对图形学有一定兴趣,但又希望能在实际项目中有所应用的开发者,我发现这本书的定位非常精准。作者的讲解方式非常注重逻辑性和系统性,他从图形渲染的基本原理讲起,然后逐步引入Unity的着色器系统。我最欣赏的是书中关于GPU(Graphics Processing Unit)工作原理的介绍,这让我明白为什么在编写着色器时,某些操作会比其他操作更耗费性能。例如,他在讲解如何优化纹理采样(texture sampling)时,详细对比了不同采样方式的效率,以及如何通过纹理打包(texture packing)来减少draw call,这些都是在实际项目中提升性能的关键点。书中的示例代码非常详细,不仅给出了代码本身,还对每一行代码的功能进行了注释和解释,这对于初学者来说非常有帮助。我特别喜欢书中关于实现卡通渲染(cel shading)和轮廓线(outlines)的章节,这些都是非常具有表现力的渲染技术,而这本书提供了实现这些效果的完整思路和代码。总而言之,这是一本能够让你真正理解着色器背后原理,并将其应用于实际项目的优秀读物。
评分从一名Unity游戏开发的初学者角度来看,这本书的难度曲线可能比我预期的要稍微陡峭一些,但恰恰是这种挑战性,让我学到了非常多宝贵的东西。一开始,我以为这本书会像很多入门教程那样,只介绍一些简单的Shader Lab语法,然后就结束了。但这本书完全不是。它从最基础的Unity着色器语言(ShaderLab)开始,逐步引导读者理解顶点着色器(vertex shader)和片元着色器(fragment shader)的工作原理。我特别喜欢作者在讲解光照模型(lighting models)时,那种层层递进的逻辑。他不仅展示了如何实现PBR(Physically Based Rendering)的光照,还深入剖析了各种光照参数的意义,比如反射率(reflectance)、金属度(metallic)、粗糙度(roughness)等等,这让我对理解和调整游戏中的材质表现有了全新的视角。书中的大量代码示例,虽然一开始需要花些时间去理解,但每当我成功运行一个例子,并看到预期的视觉效果时,那种成就感是无与伦比的。我印象最深的是关于自定义渲染管线(custom render pipeline)的章节,虽然那部分内容对我来说还是有点超前,但我能感受到作者试图为读者打开一扇通往更高级图形编程的大门。这本书更像是一本“武功秘籍”,需要静下心来,一点一点地去揣摩和练习,才能真正掌握其中的精髓。
评分还可以。。。?
评分好好好好好好好好好好好好好好好好好好好好好好好好好好好
评分计算机书籍还是买经典的,其他的资料网上都有,
评分物品非常好哦
评分还可以。。。?
评分嗯,水平还是很不错的!!!!!
评分快递物流都不错,但这样的书太贵了,还没什么用
评分嗯,水平还是很不错的!!!!!
评分不错的,正版
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有