盗版声明
盗版声明 在网上,所有媒体的版权资料盗版问题从未停歇。 在 Packt 网,我们非常重视保护我们的版权和许可证。如果你在英特网上看到任何来自我们工作成果的 非法拷贝,不管来自那里,还请你提供给我们地址或者网址,这样我们可以挽回我们的损失。还请通过copyright@packtpub.com邮箱联系我们。 我们非常感激您帮助我们保护作者和保护我们继续给你带来有价值的内容。
盗版声明 在网上,所有媒体的版权资料盗版问题从未停歇。 在 Packt 网,我们非常重视保护我们的版权和许可证。如果你在英特网上看到任何来自我们工作成果的 非法拷贝,不管来自那里,还请你提供给我们地址或者网址,这样我们可以挽回我们的损失。还请通过copyright@packtpub.com邮箱联系我们。 我们非常感激您帮助我们保护作者和保护我们继续给你带来有价值的内容。
示例代码下载 通过这个网站http://www.packtpub.com,你可以用自己的账号下载本书的实例代码(其实我本人是建议自己手动敲一遍,我试了一下,代码是可以直接在这个网站下载的,就算你没有购买这本书也是可以的。但是需要注册一个账号才行,然后搜索到这本书,这本书的页面下面就有下载代码的链接)。如果你在别的地方购买了这本书,那么你可以浏览网站 http://www.packtpub.com/support](https://www.packtpub.com/support)注册一个账号,然后在该页面直接通过书名搜索,也能找到这些文件的下载链接。 代码文件可以通过下面的步骤获得: 通过邮箱和账号密码在我们的网站上登陆或者注册。 把网页拉到最下面,点击 支持主页(Support Home)(这本书出了很久了,网页早就改版了,这是我实际打开网页的操作步骤)。 然后点击该页面左边的 代码下载&勘误表(Code Downloads & Errata) 。 然后在 搜索(Search) 框中输入你的书名(不用输入完整的书名,支持模糊搜索)。 选择那本你想要下载代码的书。 然后在下面的下拉菜单中选择你是从哪儿购买本书的(不要紧,随便选一个,然后下拉菜单的下面就会有一个下载链接)。 然后点击 代码下载(需要注册,链接早就生成了,为了方便大家,我贴出链接,点击就可以下载了,不清楚是否是永久链接) 下载好后,请自行解压,然后就可以获得本书的代码了。
第一章 创建你的第一个着色器 在这一章我们包含了一些在当今 游戏开发着色器管线 中更通用的漫反射技术基础。在这一章我们将会学习下面的知识点: 创建一个基础的标准着色器 从Unity4迁移旧着色器至Unity5 为着色器添加属性 在表面着色器中使用属性 介绍 让我在脑海中想象一个完全由白色绘制立方体。尽管立方体的每一个面的颜色都是相同的,但是由于不同方向的光线照射和我们看这个立方体的角度的不同,我们总能发现立方体不同的白色阴影。这种层级的逼真场景就是通过3D图形学中的着色器实现的,它是一种模拟光的作用原理的特别的程序。一个木质的立方体和一个金属的立方体也许可以是同一种3d模型,之所以让他们看起来一个是木质的,一个是金属的,就是因为它们使用了不同的着色器的缘故。我们循序渐进,第一章将会向你介绍如何在Unity中进行着色器编码。如果你从来没有编写着色器的经验,那么在这一章,你将会了解着色器是什么,他们如何工作和如何自定义着色器。 接着在这一章的结尾,你将会学习如何构建拥有基础操作的基础着色器。有了这些知识后,那么你将可以创建任何的表面着色器。 创建一个基本的标准着色器 每一个Unity游戏开发者应该都对 组件(components) 这个概念非常熟悉。游戏中的对象都有很多的组件,这些组件决定了游戏中的对象看起来是什么样子和会有什么样的行为。然而 游戏脚本(scripts ) 定义的是游戏对象会有怎样的行为,渲染器(renderers ) 决定游戏对象如何出现在屏幕中。 对于我们想要看到游戏对象类型,Unity本身提供了一些渲染器。每一个3D模型通常都有一个网格渲染器。一个游戏对象应该只能有一个渲染器,但是一个渲染器它可以包含多个 材质(materials) 。 每个材质封装了一个着色器–3D图形的最后一环。这些组件的关系可以用如下的示意图表示: 理解这些组件之间的不同之处对于理解着色器的工作原理是很有必要的 始前准备 开始学习这个知识点之前,你需要打开你的Unity5并且创建一个新的项目。本书的内容讲解都会在这个项目中开展,随着学习的深入你之后自己创建的着色器都可以放在这。这一步完成之后—-欢迎来到着色器实时编程的精彩世界。 操作步骤 在创建我们的第一个着色器前,让我们为实验着色器创建一个简单游戏场景。首先我们导航到Unity的菜单栏,然后选择 游戏对象|创建空对象 。然后在Unity编辑器的 层级面板(Hierarchy) 选中刚刚创建的空对象,在上面创建一个平面作为地面,再创建几个球体用来应用我们的着色器,然后在场景里面创建平行光源。当场景弄好后,我们接下来就按步骤开始着色器的编写: 在编辑器的 项目(Project) 窗口中,直接右键选择 创建(Create)|文件夹(Folder) 。【这里的文件夹名字我就直接用英文了,大家在自己开发的过程中也尽量用有意义的英文文件夹吧】 注意 如果你导入了本书提供的项目文件(就是你从网站上下载的代码,他是一个unitypackage包,导入之后这个文件自动就有了),你可以直接跳至步骤4。 选择该文件夹,右键然后选择 重命名(Rename) ,把这个文件夹命名成 Shaders 。或者你也可以选中该文件夹,然后按 F2 ,重命名为 Shaders 。 用上面同样的方法创建一个 Materials 的文件夹,用来放材质文件的。 右键 Shaders 文件夹,然后在出的窗口中选择 创建(Create)|着色器(Shader)|标准表面着色器(Standard Surface Shader)(这里注意跟原文不一样,创建一个着色器要三步,书中只有两部)。接着我们创建一个材质,右键 Materials 文件夹,然后在弹窗中选择 创建(Create)|材质(Material) 。 把刚刚创建的着色器和材质都命名成 StandardDiffuse 。【各位,文件名也用英文呀,因为怕Unity对中文的支持不好】 然后用Visual Studio 2015或者Visual Studio Code打开 StandardDiffuse 这个着色器【这里我不建议用MonoDevelop这个编辑器,原文是用这个,不好用,强烈建议用各位用Visual Studio Code打开,这个编辑器很好用,一定要去试试】 ...
读者反馈 非常欢迎来自各位读者的反馈。这能让我们知道你们是否喜欢这本书。你们给与的重要反馈可以让我们写出更适合且对你们更有帮助的内容。 通常最简单的反馈方式是通过feedback@packtpub.com邮箱给我们发邮件,然后在反馈邮件的标题中告诉我们书标题。 如果在本书中有你擅长领域的话题想跟我们讨论,或者你愿意把你专长领域的知识贡献给本书,也可以通过这个网址 www.packtpub.com/authors的指引进行操作
学习的过程中你需要准备的 下面列举了在学习本书知识的过程中必须的工具软件和可选的工具软件: Unity5引擎 一款3D建模软件,比如Maya,3DMax,或Blender (可选l) 一款2D图片编辑软件,比如PS或者Gimp (可选)
本书的适合人群 本书适合色器编程初学者,或者想通过专业的后处理特效让游戏更棒的开发者。 当然开发者本身需要对Unity游戏引擎有比较深入的理解。
这本书包含哪些内容 第一章,创建你的第一个着色器, 向你介绍如何在unity4和unity5中编写着色器代码(我会试着在unity2018上去实验,保证shader代码的正常执行,不限于unity4和5)。 第二章, 表面着色器和纹理贴图, 介绍了一些如何实现表面着色器的通用且实用的技术,比如如何给游戏模型使用纹理和法线贴图。 第三章, 理解光照模型,带你深入理解在给模型使用着色器时光带来的影响,这一章会教你一些如何实现自定义的光照模型的技术技巧,以便于你去实现一些独特的特效,比如Toon着色器效果。 第四章, Unity 5中基于物理原理的渲染, 这一章为你介绍在unity5中基于物理原理的标准渲染技术,这些技术主要是为了在你的游戏中实现次世代的画面(直译就是看起来跟现实世界一样)。会向你解释如何尽可能的模拟这种现实,让你对透明度,反射表面和全局光照有更深入的理解。 第五章, 顶点函数,向你介绍如何使用着色器来修改游戏中物体的几何特性;想知道范围体爆炸,着色器模拟下雪等特效嘛?这一章里的着色器操作顶点的技术技巧会告诉你如何实现 第六章, 片元着色器和抓取通道, 这一章会解释如何使用半透明材质和抓取通道来实现扭曲形变效果 第七章, 移动设备着色器适配,主要介绍如何针对移动设备进行优化。 ...
www.PacktPub.com 这是一个电子书的网站,等于是帮这个网站宣传了吧,大家直接点击超链接进去看就行了。一般来说,你只要在上面买了电子书,特别是技术书籍,相关的代码,附件也可以从上面下载。
为什么希望你订阅? 可以查阅所有 Packt 网站发布的的书籍 可以拷贝,打印所有书籍 可以通过浏览器查找你最需要的资料
前言 Unity 5.x Shaders and Effects Cookbook 这本书能让你在Unity5引擎中创建着色器和特效更加得心应手,能让你入门起来比较容易,学会创建大部分基础的着色器,并且学会如何组织你的着色器代码。本书的章节安排是循序渐进的,每一章节的基础知识,旨在后面让你能实现更高级的技术技巧,比如实现范围体爆炸效果,毛皮特效等。这本书是专门在Unity5这个游戏引擎下讲解的,希望帮助你掌握诸如基于物理原理的渲染和全局光照等知识,让你尽可能获得照片级的效果。 在每一章的结尾,你都会获得一些新的技巧,这些技巧有助于提高你的着色器质量并且让你在写着色器的时候更加有效率。 为了让你能从入门到专家,每一个章节的特殊技巧和知识点都是我们为你精心编排的。对于着色器的初学者来说,你也可以通过一个章节一个章节的阅读,逐渐丰富你的着色器知识。不管怎样,通过本书的知识点,可以让你的游戏在次世代看起来更棒。当你完成这本书的学习之后,在Unity3d创建游戏的过程中,你就可以有各种各样的着色器用于你的游戏,并且了解怎么向你的游戏中去添加它们,怎么向你的游戏添加各种特效,怎么去优化你的游戏。让我们开始吧。