本书是一本全面介绍Unity着色器的重要书籍,它对于想要学习Unity着色器的人来说是一本不容错过的好书。作者从最基础的着色器结构到着色器的创建,循序渐进地讲解着色器的各种知识,不仅会讲解皮肤着色器、布料着色器、车漆着色器、透明裁剪着色器、处理动态反射的着色器等常用着色器的创建,而且也会详细介绍如何开发后期特效,如夜视、反射等。同时 ,每章最后还会介绍一些新的技术,包括如何提高着色器质量以及着色器的编写效率。
全书共分为11章,几乎包含了Unity着色器中常用的效果示例。主要内容包括基础的漫反射着色;两种高光类型Blinn和Phong,以及利用这些高光类型创造蒙皮镜面、金属镜面等高光效果;反射的实现;创建自定义的光照模型;透明度在游戏当中的实现;访问存储在3D网格中的顶点信息;移动端是如何减少着色器中的内存开销的;着色器组的模块化,以及重用代码的必要性;使用渲染纹理实现屏幕特效。
本书适合游戏开发者、特效程序员、美工人员阅读,也可作为培训学校的教材。
本书将指引你逐步熟悉如何在 Unity3D中创建着色器和后期特效。我们将从创建最基本的着色器和学习着色器代码的结构开启学习之旅。通过循序渐进地学习每—一章的基础知识,将使你们逐渐地掌握着色器语言,而且还会学到模拟人体皮肤的着色器,处理动态反射的着色器,以及如何开发后期特效(如,夜视)等知识。
在每章的最后,你还将学习新的技术,包括提高着色器质量,甚至如何使着色,器编写过程更加高效。不管你是初学者或者专家,这些章节都是为你量身定制的,你可以跳过任意部分去学习特定的技术。对于那些在 Unity 中学习着色器的新手而言,你可以循序渐进地学习每一章以便逐步建立自己的着色器知识库。无论通过哪种方式,你都将学习到现代游戏的制作方式和方法。
读完本书,你将获得一组能够在 Unity3D游戏中使用的着色器,同时掌握如何添加相应的着色器来实现新的特效并满足性能要求。
本书的主要内容
第1章通过在 Unity3D中构建一个着色器解释了着色器编写的基础知识。然后,利用所学的知识创建默认的漫反射光照,并从游戏的角度提供了创建自定义漫反射光照的技巧。
第 2 章介绍了如何利用纹理来创建不同的特效。你将学习如何利用着色器在精灵表单(Sprite sheet)上实现动画纹理,以及如何利用纹理的不同通道,让着色器更有效率。在该章的最后,你将掌握利用纹理来创建自定义特效的技能。
第 3 章教给你在创建应用最广泛的高光类型——Blinn 和 Phong 时所需的所有知识。你将学习如何应用这些着色器效果来创建蒙版镜面、金属镜面,并学习创建各向异性镜面的技术。在该章的最后,你将有足够的信心为自定义着色器创建属于自己的镜面效果。
第4章带你了解现代游戏最受欢迎的效果之一,即把反射技术写人着色器中。该章将教你关于反射的一切知识,从 Unity3D着色器中反射的基础知识到如何使用C #创建简单的自定义动态反射系统。
第5章开始创建更复杂的着色器。你将学习如何创建自定义光照模型来实现自定义类型的表面。每个方法展示了不同的技术来完成不同的任务,都是为了提高着色器编写能力。在该章的最后,你将创建自己的皮肤着色器、发光球体着色器以及车辆喷漆着色器。
第6 章介绍透明度。有数据表明,在游戏制作的过程中,透明度已经成为一项必要的技术。在一定程度上,几乎所有游戏都需要使用透明度,如图形用户界面(GUI)、树叶、贴花等。在该章中,你将学习如何使用Unity3D 中的透明度,以及使用透明度时如何处理可【能发生的任何问题。
第7章包括如何访问存储在 3D 网格中的每个顶点信息。你将学习如何得到顶点信息,并且在着色器中使用这些信息实现诸如纹理混合和动画的效果。
第 8章主要介绍了利用 Unity 的内置标记和内置值来减少着色器内存开销的方法。这对于我们处理移动平台上的着色器特别重要。
第9 章展示了学习重用代码的必要性,重用代码可以让着色器的编写更有效率。该章也展示了如何创建自定义 Cglnclude 文件来存储需要重用的重复代码。
第 10章从现代游戏如何利用屏幕特效(有时也称为后期特效)开始。到如何改亦_个游戏的最终溶染效果。你将学习如何创建自己的屏幕特效,并了解如何添加颜色调整以及纹理叠加背后的秘密,从而为你的游戏制造出不一样的视觉外观。
第 11 章将进一步介绍屏幕特效,并为你展示在游戏当中是如何增强游戏氛围的。你将学习如何创建—种老电影的屏幕特效以及夜现的屏幕特效。
本章将介绍一些现代游戏中开发渲染管线时常见的漫反射技术。
1.1 引言
任何优秀的着色器开始总是会依赖于一个基础的漫反射组件或者光照模型。因此从漫反射部分开始着色器的编写是非常有意义的。
在过去的计算机图形学中,漫反射的着色过程(diffuse shading)是通过所谓的固定功能光照模型来完成的,它只允许图形程序员通过一些参数或纹理来对单一的光照模型进行调整。而现在,我们可以通过 Cg 语言更加灵活地控制渲染细节,特别是使用 Unity 中的表面着色器。
漫反射着色器主要描述了各个方向上的光线在一个表面上的反射方式。这听起来跟反光镜的工作原理很相似,但事实上它们是不相同的。反光镜实际上反射的是周围环境的图像,而漫反射光照是将所有的光源,如太阳的光线,反射到观众的眼睛中。反射将在后面的章节中介绍,但现在我们的目的是利用这些知识帮助我们区分两者之间的区别。
为了实现一个基本的漫反射光照模式。我们必须创建一个着色器,它包含了自发光颜色(emissive)、环境反射光的颜色以及所有光源叠加的光照。接下来的教程将告诉你如何建立一个完整的漫反射光照模型,同时也将展示一些不同行业的技巧,对干口使用纹理创建更复杂的漫反射模型来说总会派上用场。
在本章的最后你将学会如何创建基本的着色器,使之能执行基本的操作。有了这些知识,你将能够创建几乎任何表面着色器。
1.2 创建基本的表面着色器
随着我们进一步学习本书,你已经知道如何在 Unity 当中设置工作区,从而提高你的工作效率,而且这很容易实现。如果你已经熟悉了在 Unity 4中创建着色器和设置材质,可以跳过这个教程。这里,我们只是为了确保新的 Unity 4 开发者能够顺利学习有关表面着色器的其他教程。
1.2.1 准备工作
开始学习本教程之前,你需要先打开 Unity 4,并且创建新的项目。在本书中有一个 Unity 项目,所以当你学习到相应的教程时,你可以使用这个项目并添加自定义的着色器。当你完成了这些,现在就准备进入实时阴影的奇妙世界吧!
1.2.2 如何操作
在开始我们第一个着色器之前,我们需要创建一个小的场景(scene)供我们使用。这可以通过 Unity 编辑器中的 GameObject|Create Other 菜单来完成。然后可以创建一个平面作为地面,创建两个球体作为着色器的应用对象,以及一个定向光作为场景的灯光。场景建立完毕,我们就可以开始编写着色器了∶
1.在 Unity 编辑器的 Project 面板上,右击 Assets 文件,选择 Create IFolder。
2.重命名创建的着色器文件夹,可以选中文件夹然后右击选择"Rename",也可以使用键盘上的""F2"键。
3.创建另一个文件夹,将其重命名为"Materials"。
4.选中着色器文件夹单击右键,选择 Create|Shader。然后在"Materials"文件夹上单击右键,选择 Createl Materials。
5.将刚才创建的 Shader 和 Material 都重命名为 BasicDiffuse。
6.双击 BasicDiffuse 着色器,打开 MonoDevelop(Unity 的默认脚本编辑器),它将会自动启动编辑器并显示着色器代码。
7.现在我们需要给着色器—个自定义文件夹路径。着色器代码中的第一行是对着色器的自定义描述,这样我们就可以在 Unity 着色器下拉列表中找到它,并且将它赋给某个材料。我们已经将着色器路径重命名为 Shader"CookbookShaders/BasicDiffuse",但是你可以在你需要的任何时刻对它进行重命名。所以你无须担心它此刻的依赖关系。保存 MonoDevelop 的 shader 代码,回到 Unity 编辑器。当它确认文件已更新时,Unity 将自动编译着色器。这样可以使着色器实时地显示它的效果∶
Shader " Cooxbookshadera/BaaicDiffuae" { Propertie8 { _MainTex {"Base (RGB) ",2D) " "wite" {} } SubShader { Tag8 ("RenderType"="Opaque"} LOD 200 CGFRORAN #pragma aurface aurf Lambert sampler2D _MainTex; struct Input { float2 uv_MainTex; }; void surf (Input IN, inout SurfaceOutput o) { half4 c = tex2D (_MainTex,IN.uv_MainTex) ; o.Albedo = e.rgb; o.Alpha -c.a; } ENDCG } Fal1Back "Diffuse" }
8.选择我们在步骤 4中创建的名为 BasicDiffuse 的材质,并在 Inspector 面板中进行查看。从 Shader 下拉列表中选择 CookbookShaders BasicDiffuse(如果你选择使用不同的路径名你的着色器路径可能是不同的)。将你的着色器赋给材质,以便你可以将其赋给某个物体。
【下载地址】
链接:https://pan.baidu.com/s/1eTzpokFrPPBiGhRZQegFpQ
提取码:9wv9
相关文章
本书是一本全面介绍Unity着色器的重要书籍,它对于想要学习Unity着色器的人来说是一本不容错过的好书。
FlashFXP绿色版网盘下载,附激活教程 1840
FlashFxp百度网盘下载链接:https://pan.baidu.com/s/1MBQ5gkZY1TCFY8A7fnZCfQ。FlashFxp是功能强大的FTP工具
Adobe Fireworks CS6 Ansifa绿色精简版网盘下载 1608
firework可以制作精美或是可以闪瞎眼的gif,这在广告领域是需要常用的,还有firework制作下logo,一些原创的图片还是很便捷的,而且fireworks用法简单,配合dw在做网站这一块往往会发挥出很强大的效果。百度网盘下载链接:https://pan.baidu.com/s/1fzIZszfy8VX6VzQBM_bdZQ
navicat for mysql中文绿色版网盘下载 1653
Navicat for Mysql是用于Mysql数据库管理的一款图形化管理软件,非常的便捷和好用,可以方便的增删改查数据库、数据表、字段、支持mysql命令,视图等等。百度网盘下载链接:https://pan.baidu.com/s/1T_tlgxzdQLtDr9TzptoWQw 提取码:y2yq
火车头采集器(旗舰版)绿色版网盘下载 1739
火车头采集器是站长常用的工具,相比于八爪鱼,简洁好用,易于配置。火车头能够轻松的抓取网页内容,并通过自带的工具对内容进行处理。站长圈想要做网站,火车头采集器是必不可少的。百度网盘链接:https://pan.baidu.com/s/1u8wUqS901HgOmucMBBOvEA
Photoshop(CS-2015-2023)绿色中文版软件下载 1859
安装文件清单(共46G)包含Window和Mac OS各个版本的安装包,从cs到cc,从绿色版到破解版,从安装文件激活工具,应有尽有,一次性打包。 Photoshop CC绿色精简版 Photoshop CS6 Mac版 Photoshop CC 2015 32位 Photoshop CC 2015 64位 Photoshop CC 2015 MAC版 Photoshop CC 2017 64位 Adobe Photoshop CC 2018 Adobe_Photoshop_CC_2018 Photoshop CC 2018 Win32 Photoshop CC 2018 Win64