前言
Unity 2018 Shaders and Effects Cookbook 将会是你熟悉Unity 2018中Shaders和后处理(post-procesing)效果的创建指南。你将从一开始就开始您的旅程,探索后处理栈(Post procesing Stack),看看你可以使用shader来影响你所看到的东西一些可能的方法,而不需要编写脚本。之后,我们将从头开始创建Shaders,首先创建最基本的Shaders并学习Shaders代码的结构。这些基础知识将为你提供进一步深入每章节的方法,学习体积爆炸(volumetric explosions)和毛发着色(fur shading)等先进技术。我们还将探索新添加的Shader Graph编辑器,以了解如何通过拖放界面创建Shaders!本书的这一版是专为Unity 2018编写的,它将帮助你掌握基于物理的渲染和全局光照(global illumination),以尽可能接近照片级真实感。
在每章结束时,你将获得新技能,这些技能将提高Shaders的质量,甚至可以让你更高效的编写shader。也就是说,这些章节都是量身定做的,这样你就可以跳到每个部分,从初学者到专家都可以学习一项特定的技能。对于那些刚接触Unity Shader编写的人来说,你可以逐步完成每一章,以建立你的知识。无论哪种方式,你 都将学习使现代游戏呈现其外观的技术。
一旦你完成了这本书,你将会拥有一组Shaders,你可以使用在Unity 3D游戏中而且会了解到如何添加它们,完成新的效果,并解决性能需求。所以,让我们开始吧!
这本书的作用是什么
Unity 2018 Shaders and Effects Cookbook 是为想要在Unity 2018 中创建第一个Shaders或希望通过添加专业的后处理(post-procesing)效果将游戏提升到全新水平的开发人员编写的。需要对Unity有着充分的了解。
这本书涵盖了什么
Unity 2018 Shaders and Effects Cookbook 是为想要在Unity 2018 中创建第一个Shaders或希望通过添加专业的后处理(post-procesing)效果将游戏提升到全新水平的开发人员编写的。需要对Unity有着充分的了解。
第一章节:Post Processing Stack,向读者介绍了Post Processing Stack,它允许用户在不修改任何额外脚本的情况下调整游戏外观。
第二章节:CreatingYour First Shader,创建你的第一个Shader,介绍Unity中Shaders编码的世界。你将构建一些基本shaders,并学习如何在shaders中引入可调整属性以使它们更具交互性。
第三章节:Surface Shaders and Texture Mapping,介绍了可以使用Surface Shaders实现的最常用和最有用的技术,包括如何为模型使用纹理和法线贴图。
第四章节:Understanding Lighting Models,了解光照模型,深入解释shaders如何模拟光的行为。本章将教你如何创建用于模拟特殊效果的自定义光照模型,比如 toon shading。
第五章节:Physically-Based Rendering in Unity 5,向你展示基于物理的渲染是Unity 5用于为你的游戏带来真实感的标准技术,本章j介绍了如何通过掌握透明,反射表面和全局光照来最大限度利用它。
第六章节:VertexFunctions,教你如何使用着色器来改变物体的几何形状。本章介绍了顶点修改器(vertex modifiers),并使用它们将体积爆炸(volumetric explosions),雪shader和其它效果带入生活。
第七章节:Fragment Shaders and Grab Passes,说明如何使用抓取通道来制作模拟生成半透明材料变体的材料。
第八章节:Mobile Shader Adjustment,帮助你优化你的Shaders,以便于它在任何设备都有最佳效果。
第九章节:Screen Effects with Unity Render Textures,说告诉你如何使用后处理效果来补充你的游戏玩法,例如模拟夜视效果。
第十章节:Gameplay and Screen Effects,告诉你如何使用后处理效果来补充你的游戏玩法,例如模拟夜视效果。
第十一章节:Advanced Shading Techniques,说在本书中最先进的技术,如毛发着色和热图渲染。
第十二章节:Shader Graph,说明了如何使用Unity新添加的Shader Graph建立一个新项目。我们将介绍如何创建一个简单的
shader graph,如何公开属性,以及如何通过使用辉光高光系统通过代码与shader graph进行交互。
如何充分利用这本书
读者应该有使用Unity的经验和一些脚本编写经验(C#或者JavaScript就够了)。这本书是基于Unity 2018.1.0f2编写的,但做一些微调应该能在未来版本的引擎上运行。
下载示例代码文件
你可以在www.packtpub.com登陆你的账号下载本书的示例代码文件。如果你在其他地方购买了本书,你可以访问www.packtpub.com/support并进行注册,以便将文件直接通过电子邮件发送给你。
你可以按照以下步骤下载代码文件:
1.登录或注册www.packtpub.com。
2.选择SUPPORT选项卡。
3.单击Code Download & Errata。
4.在“Search”框中输入书名,并按照屏幕上的指令操作。
下载文件后,请确保使用以下最新版本解压或解压文件夹:
WinRAR/7-Zip for Windows
Zipeg/iZip/UnRarX for Mac
7-Zip/PeaZip for Linux
该书的代码包也在GitHub上托管,网址是: https://github.com/ PacktPublishing/Unity-2018-Shaders-and-Effects-Cookbook-Third-Edition.如果更新了代码,它将在现有的GitHub存储库上更新。
我们还提供了其它代码包,这些代码包来自于我们丰富的书籍和视频目录,可通过: https://github.com/PacktPublishing/。获得。去看一下!
下载彩色图片
我们还提供了一个PDF文件,其中包括本书中使用的屏幕截图/图片的彩色图形。你可以在这里下载:https://www.packtpub.com/sites/default/files/ downloads/Unity2018ShadersandEffectsCookbookThirdEdition_ColorImages.pdf.
使用的约定
本书中使用了很多文本约定。
CodeInText:指示文本、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟url、用户输入和Twitter句柄中的代码单词。这里有一个例子:“一个Unity包是一个文件,其中包含各种资产,可以在Unity中以类似于.zip文件的方式使用。
代码块设置如下:
Properties { _MainTex("Texture", 2D) = "white" }
当我们希望引起您对代码块的特定部分的注意时,相关的行或项目以粗体显示:
void surf (Input IN, inout SurfaceOutputStandard o)
{ // Use the tint provided as the base color for the material
o.Albedo = _MainTint;
// Get the normal data out of the normal map texture
// using the UnpackNormal function
float3 normalMap = UnpackNormal(tex2D(_NormalTex, IN.uv_NormalTex));
normalMap.x *= _NormalMapIntensity;
normalMap.y *= _NormalMapIntensity;
// Apply the new normal to the lighting model
o.Normal = normalize(normalMap.rgb);
}
粗体:表示您在屏幕上看到的新术语,重要单词或单词。例如,菜单或对话框中的单词会出现在文本中。下面是一个示例:“To finally bake the lights, open the Lighting window by going to Window | Lighting | Settings. Once there, select the Global Maps tab.”
警告或重要说明如图所示。
提示和技巧如图所示。
分段
在本书中,你会发现经常出现的几个标题(做好准备,如何做到......,它是如何工作的......,还有更多...,另见)。要明确说明如何完成配方,请按以下步骤使用以下部分:
做好准备
本部分介绍了如何在配方中进行预期,并描述了如何设置配方所需的任何软件或任何初步设置。
如何做到......
本部分包含了遵循配方所需的步骤。
它是如何工作的......
本部分通常包含对上一节中发生的事情的详细说明。
还有更多...
本节包含有关配方的其他信息,以便你更了解配方。
另见
本节提供了有关配方的其他有用信息的有用链接。
联系我们
欢迎来自我们读者的反馈。
一般反馈:发送电子邮件至feedback@packtpub.com,并在邮件主题中提及书名。如果您对本书的任何方面有疑问,请发送电子邮件至questions@packtpub.com。
勘误表:虽然我们已经尽力确保内容的准确性,但确实会发生错误。如果您在本书中发现了错误,我们将非常感谢您向我们报告。请访问www.packtpub.com/submit-errata,选择您的图书,点击勘误表提交表格链接,然后输入详细信息。
盗版:如果您在互联网上以任何形式发现我们作品的任何非法副本,如果您向我们提供位置地址或网站名称,我们将不胜感激。请通过copyright@packtpub.com与我们联系,并提供相关材料的链接。
如果您有兴趣成为作者:如果您有专业知识的主题,并且您有兴趣撰写或撰写图书,请访问authors.packtpub.com。