Unity教学课件: 第07章 光影效果的使用

上传人:pu****.1 文档编号:592237910 上传时间:2024-09-20 格式:PPT 页数:66 大小:7.62MB
返回 下载 相关 举报
Unity教学课件: 第07章 光影效果的使用_第1页
第1页 / 共66页
Unity教学课件: 第07章 光影效果的使用_第2页
第2页 / 共66页
Unity教学课件: 第07章 光影效果的使用_第3页
第3页 / 共66页
Unity教学课件: 第07章 光影效果的使用_第4页
第4页 / 共66页
Unity教学课件: 第07章 光影效果的使用_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《Unity教学课件: 第07章 光影效果的使用》由会员分享,可在线阅读,更多相关《Unity教学课件: 第07章 光影效果的使用(66页珍藏版)》请在金锄头文库上搜索。

1、第七章第七章第七章第七章 光影效果的使用光影效果的使用光影效果的使用光影效果的使用 1 7.1 光源在Unity游戏开发引擎中内置了四种形式的光源,分别为点光源、定向光源、聚光灯光源和区域光源 7.1.1点光源和定向光源点光源就是一个可以向四周发射光线的一个点,类似于现实世界中的灯泡,而定向光源能够更好的模拟太阳,定向光源发出的光线都是平行的,并从无限远处投射光线到场景中,很适用于户外的照明。2 7.1 光源1.点光源基础知识点光源基础知识点点 光光 源源 的的 添添 加加 可可 以以 通通 过过 点点 击击 菜菜 单单 栏栏 中中“GameObject”“Light”“Point Light

2、”菜单完成菜单完成 选选中中场场景景中中的的点点光光源源,在在其其Inspector面面板板中中就就会会出出现现点点光光源源的的设设置置面面板板,在在设设置置面面板板中中可可以以修修改改点点光光源源的的位位置置,光光照照强强度度、光照范围等等参数。光照范围等等参数。 参数名含义参数名含义Type光源类型,可以在四种形式的光源之间进行切换Draw Halo是否启用光晕Range光源的光照范围Color光照颜色Intensity光照强度Bounce Intensity用来设置光的反射强度Shadow Type设置阴影模式(没有阴影、硬阴影、软阴影)Flare设置光照耀斑、镜头光晕效果Strengt

3、h阴影强度,值越大,阴影的颜色越浓Resolution设置阴影的质量3 7.1 光源1.点光源基础知识点光源基础知识Baking 光源烘焙模式(实时、烘焙、混合),烘焙模式下烘焙光照后会将该光源的效果添加到烘焙贴图中,烘焙模式下的光源无法影响非静态对象,混合模式下的光源即可以被烘焙,也能够影响到非静态对象Cookie 灯光遮罩,为光源设置带有alpha通道的纹理贴图,使其在不同的位置具有不同的亮度(点光源需要放置立方图纹理Cubemap)Render Mode设置光照的渲染模式,Auto模式为自动调节模式,Important模式是将像素逐个渲染,Not Important模式是总以最快的方式进

4、行渲染Culling Mask剔除遮罩,只有其中被选中的层所关联的对象能够受到光照的影响4 7.1 光源2.定向光源基础知识定向光源基础知识定定 向向 光光 源源 的的 添添 加加 可可 以以 通通 过过 点点 击击 菜菜 单单 栏栏 中中“GameObject”“Light”“Directional Light” 菜单完成,菜单完成,定定向向光光源源在在场场景景中中如如果果位位置置发发生生改改变变,它它的的光光照照效效果果并并不不会会发发生生任任何何改改变变,可可以以把把它它放放到到场场景景中中任任意意的的地地方方,如如果果旋旋转转定定向向光源,那么它产生的光线照射方向会随之发生变化。光源,

5、那么它产生的光线照射方向会随之发生变化。选选中中场场景景中中的的定定向向光光源源,在在其其Inspector面面板板中中就就会会出出现现定定向向光光源源的的设设置置面面板板,在在设设置置面面板板中中可可以以修修改改定定向向光光源源的的位位置置,光光照照强度、光的颜色等参数。强度、光的颜色等参数。 5 7.1 光源7.1.2聚光灯光源和区域光源 聚光灯光源的照明范围为一个椎体,类似于聚光灯发射出来的光线,并不会像点光源一样向四周发射光线。区域光源是创建一片能够发光的矩形区域,只有在光照烘焙完成后才能看到效果。6 7.1 光源1.聚光灯光源基础知识聚光灯光源基础知识聚 光 灯 光 源 的 添 加

6、可 以 通 过 点 击 菜 单 栏 中“GameObject”“Light”“Spot Light”菜单完成 选选中中场场景景中中的的聚聚光光灯灯光光源源,在在其其Inspector面面板板中中就就会会出出现现聚聚光光灯灯光光源源的的设设置置面面板板。在在设设置置面面板板中中可可以以修修改改聚光灯光源的位置,光照强度、光的颜色等参数。聚光灯光源的位置,光照强度、光的颜色等参数。 7 7.1 光源2.区域光光源基础知识区域光光源基础知识区 域 光 光 源 的 添 加 可 以 通 过 点 击 菜 单 栏 中“GameObject”“Light”“Spot Light”菜单完成, 区区域域光光光光源

7、源只只能能在在光光照照烘烘焙焙完完成成后后才才能能显显示示出出效效果果,一般情况区域光光源用来模拟灯管的照明效果。一般情况区域光光源用来模拟灯管的照明效果。区区域域光光光光源源无无法法实实现现Cookie效效果果,其其余余参参数数与与其其他他光光源完全相同源完全相同 。 8 7.2 光照贴图的烘焙和使用光光照照烘烘焙焙就就是是将将场场景景中中的的光光照照信信息息渲渲染染成成贴贴图图,然然后后将将烘烘焙焙完完成成后后生生成成的的贴贴图图再再应应用用到到场场景景中中的的技技术术,此此时时光光照照信信息息已已经经存存储储在在纹纹理理贴贴图图中中,不不再再需需要要CPU进进行计算,能大幅度提高性能。行

8、计算,能大幅度提高性能。7.2.1 光照设置点点击击菜菜单单栏栏中中“Window”“Light”即即可可打打开开Light窗窗口口,Light窗窗口口中中分分三三个个板板块块来来控控制制Unity游游戏戏开开发发引引擎擎中中跟光照相关的参数跟光照相关的参数 9 7.2 光照贴图的烘焙和使用1.Object板块板块Object板板块块主主要要是是对对Hierarchy面面板板中中的的对对象象进进行行筛筛选选,在在Object面面板板中中有有四四个个按按钮钮分分别别为为全全部部对对象象、光光源源、渲染器、地形渲染器、地形 (1)Renderers渲染器渲染器 渲染器相关参数含义渲染器相关参数含义

9、10 7.2 光照贴图的烘焙和使用参数名含义参数名含义Preserve UVs保护光照图UV,若模型没有在3DMax等建模软件中展好UV,则这里必须勾选。Auto UV Max Distance手动设置UV的最大距离Important GI让自发光的物体照射范围更加大(在较大的场景中可能会用到)Auto UV Max Angle手动设置UV的最大角度Advanced Parameters设置光照图的质量Lightmap static该选项表示选中的游戏对象是否为Static或Lightmap Static的,如果是,则该游戏对象应该参与到GI系统中计算光照Scale In Lightmap该值

10、影响了用于选中对象的lightmap的像素数目。1.0为默认值,表示每个对象所占光照图像素的比率。可以通过此值来优化光照图,减少不重要的对象的比例让重要的物体占更多的光照图像素来优化场景11 7.2 光照贴图的烘焙和使用1.Object板块板块(2)Terrain地形地形12 7.2 光照贴图的烘焙和使用2.Scene板块板块(1)Environment Lighing环环境光照境光照 环境光照相关参数含义环境光照相关参数含义参数名含义Skybox场景中使用的天空盒Sun太阳光,可以为其指定一个定向光光源(Directional Light)Ambient Source环境光来源,在这里可以指

11、定环境光是来源于天空盒、梯度还是指定颜色Ambient Intensity环境光的强度Ambient GI指定环境光的光照模式是实时光照还是烘焙,若下面的两种GI模式没有都开启,该选项的调节是没有效果的Reflection Source反射源,可以指定反射源是天空盒或者一个自定的立方体纹理图Reflection Intensity反射强度,设定来自天空盒或者立方图纹理的反射强度Reflection Bounce反射计算次数13 7.2 光照贴图的烘焙和使用2.Scene板块板块(2)Precomputed Realtime GI预计算实时全局光照预计算实时全局光照预预计计算算实实时时全全局局光

12、光照照并并不不是是用用于于光光照照烘烘焙焙,预预先先计计算算的的实实时时全全局局光光照照系系统统能能帮帮我我们们实实时时运运算算复复杂杂的的场场景景光光源源互互动动,透透过过这这种种方方法法,就就能能建建立立在在昏昏暗暗的的环环境境下下带带有有丰丰富富的的全全局局光光照照反反射射,并并实实时时反反映映光光源源的的改改变变。这这对对于于硬硬件件的的要要求求是是目目前前移移动动端所无法达到的。端所无法达到的。(3)Bake GI烘焙全局光照烘焙全局光照如如果果开开发发过过程程中中需需要要使使用用光光照照烘烘焙焙,那那么么就就需需要要将将该该面面板板选选中中并并取取消消Precomputed Rea

13、ltime GI面面板板的的勾勾选选,全全部部勾勾选选会造成大量的重复计算不利于提升性能。会造成大量的重复计算不利于提升性能。14 7.2 光照贴图的烘焙和使用2.Scene板块板块参数名功能Baked Resolution烘焙分辨率,若该值为10就代表每个单位中分布着10个纹理元素Baked Padding在LightMap中不同物体的烘焙贴图的间距Compressed是否压缩光照图,在移动设备上最好勾选上Ambient Occlusion烘培光照图时产生一定数量的环境阻光。环境阻光计算物体每一点被一定距离内的其他物体或者一定距离内自身物体的遮挡程度(用来模拟物体表面环境光及阴影覆盖的比例,

14、达到全局光照的效果)Final Gather控制从最终聚集点发射出的光线数量,较高的数值可以得到更好的效果15 7.2 光照贴图的烘焙和使用2.Scene板块板块(4)General GI全局光照的基本设置全局光照的基本设置General GI面面板板中中对对全全局局光光照照的的设设置置参参数数能能够够同同时时适适用用于于Precomputed Realtime GI和和Baked GI 参数名功能Directional Mode定向模式,默认为定向,能够满足大部分的开发需求,当游戏中需要提升直接光和间接光对静态物体的照射效果,那么就需要将其设置为Directional Specular(定向

15、镜面模式)。Indirect Intensity用于调整静态物体的自发光对其他物体的影响, 以及Ambient lighting的强度.Bounce Boost用于设置光线从一个物体反射到另一个物体时,被反射的光线的数量Default Parameters用于修改关于光照的常规参数,其中有多个档次供选择,也可以进行自定义Atlas Szie用于设置光照贴图中分辨率的大小16 7.2 光照贴图的烘焙和使用7.2.2 光照烘焙案例1. 案例效果案例效果17 7.2 光照贴图的烘焙和使用7.2.2 光照烘焙案例2. 制作流程制作流程(1)首首先先打打开开Unity集集成成开开发发环环境境,新新建建一

16、一个个工工程程并并重重命命名名为为“Light_Demo”,进进入入工工程程后后保保存存当当前前场场景景并并重重命命名名为为“Bake_Demo”。然然后后在在场场景景中中使使用用Unity内内置置的的多多种种简简单单几几何何体体搭搭建建一一个个简简易易的的场场景景即即可可,搭搭建建完完成成后后效效果果如如图图7-25所示。所示。18 7.2 光照贴图的烘焙和使用7.2.2 光照烘焙案例(2)场场景景搭搭建建完完成成后后,为为了了使使其其他他光光源源的的光光照照效效果果更更突突出出,本本案案例例中中将将场场景景中中的的定定向向光光源源去去掉掉。将将所所有有的的3D对对象象设设置置为为静静态态对

17、对象象,如如图图7-26所所示示。并并在在其其中中添添加加多多种种光光源源进进行行照照明明,将将光光源源的的烘烘焙焙模模式均设置为式均设置为Bake,如图,如图7-27所示。最后调整光源的位置以及朝向即可。所示。最后调整光源的位置以及朝向即可。19 7.2 光照贴图的烘焙和使用7.2.2 光照烘焙案例(3)由由于于本本案案例例仅仅作作为为演演示示,所所以以还还需需要要对对Light窗窗口口中中的的部部分分参参数数进进行行修修改改,使使其其能能够够达达到到较较好好的的视视觉觉效效果果。首首先先打打开开Light窗窗口口,在在Scene板板块块中中关关闭闭预预计计算算全全局局光光照照的的功功能能,

18、取取消消对对光光照照烘烘焙焙贴贴图的压缩,并将定向模式修改为定向镜面模式,如图图的压缩,并将定向模式修改为定向镜面模式,如图7-28、图、图7-29所示。所示。207.3 反射探头Unity5.0中中新新增增了了一一种种制制作作反反射射效效果果的的“Reflection Probe”功功能能 ,该该功功能能通通过过场场景景中中若若干干个个反反射射采采样样点点来来生生成成反反射射“Cubemap”,然然后后通通过过特特定定的的着着色色器器从从“Cubemap”中中采采样样,从而实现反射效果。从而实现反射效果。7.3.1 反射探头基本知识反反射射探探头头的的好好处处是是其其能能够够捕捕捉捉所所在在

19、位位置置各各个个方方向向的的环环境境视视图图,将将所所捕捕获获的的图图像像储储存存为为一一个个立立方方体体纹纹理理(Cubemap)。这这样样物体会根据其所处的探头的位置产生真实的反射效果。物体会根据其所处的探头的位置产生真实的反射效果。217.3 反射探头7.3.1 反射探头基本知识227.3 反射探头7.3.1 反射探头基本知识(1)反射探头类型的选择bake烘焙:烘焙模式:这种模式类似于光照烘焙,当反射探头的位置和反射范围设定完成后,将其反射信息烘焙到Cubemap(立方图)中,这样物体上的反射效果将会固定为烘焙时的反射探头所捕捉到的环境视图。 custom自自定定义义:自自定定义义模模

20、式式:默默认认状状态态下下Custom模模式式的的反反射射探探头头和和Baked模模式式的的探探头头的的用用法法和和效效果果基基本本相相同同的的,不不同同的的是是自自定定义义模模式式下下可可以以通通过过开开启启Dynamic Objects功功能能,使使得得没没有有设设置置为为Reflection Probe Static的的动动态态物物体体也也能能够够被被反反射射探探头头捕捕捉捉。而而且且自自定定义义模模式式下下,开开发发人人员员可可以以为为该该反反射射探探头头指指定定Cubemap(立立方方图图)。也也就就是是说说,当当前前处处于于A地地区区的的反反射射探探头头捕捕捉捉的的环环境境视视图图

21、可可以以替替换换为为,在在B地地区区的的反反射射探头所捕捉到的环境视图。探头所捕捉到的环境视图。 237.3 反射探头7.3.1 反射探头基本知识(2)反射探头的位置和大小探头的移动可以通过两种方式进行,一种就是通过移动反射探头在3D世界中的位置,一种是使用反射探头组件提供的移动工具,如图7-36所示 探探头头捕捕捉捉范范围围的的调调整整也也可可以以通通过过两两种种方方式式进进行行,一一种种是是使使用用反反射射探探头头组组件件内内置置的的调调节节按按钮钮,如如图图7-36所所示示。点点击击该该按按钮钮后后在在包包围围探探头头的的正正方方体体的的每每一一个个面面上上都都有有一一个个点点,如如图图

22、7-35所所示示,可可以以通通过过拖拖动动它它们们来来改改变变捕捕捉捉范范围围。另另一一种种就就是是修修改改其中的其中的Size参数,也同样可以调节捕捉范围。参数,也同样可以调节捕捉范围。247.3 反射探头7.3.1 反射探头基本知识257.3 反射探头7.3.1 反射探头基本知识(3)无限反射如果将两面镜子相对着放置,那么在镜子中应该能够看到经过 无 数 次 反 射 所 呈 现 的 效 果 , 这 样 的 现 象 称 为“InterReflection”。但是可想而知,无限反射的后果就是程序的无法运行,为了防止这种事情的发生Unity中可以来调节反射的次数。点击菜单栏中“Window”“L

23、ighting”,打开Light窗口,在其“Scene”面板中“Environment Lighting”卷展栏下的“Reflection Bounces”属性就是用来控制反射的次数,最大为相互反射5次。267.3 反射探头7.3.2 反射探头案例开发1. 案例效果案例效果277.3 反射探头7.3.2 反射探头案例开发2. 制作流程制作流程(1)首首先先打打开开Unity集集成成开开发发环环境境,新新 建建 一一 个个 工工 程程 并并 重重 命命 名名 为为“ReflectionProbe_Demo”,进进入入工工程程后后保保存存当当前前场场景景并并重重命命名名为为“ReflectionP

24、robe_Demo”,然然后后在在Assets目目录录下下新新建建两两个个文文件件夹夹分分别别命命名名为为“Texture”和和“C#”,分分别别用用来来放放置置纹纹理理图图和和脚脚本本文文件件,如如图图7-39所示。所示。287.3 反射探头7.3.2 反射探头案例开发2. 制作流程制作流程(2)接接下下来来开开始始搭搭建建场场景景,首首先先将将需需要要使使用用的的纹纹理理贴贴图图导导入入到到Texture文文件件夹夹中中,然然后后在在场场景景中中创创 建建 Plane、 Cube、 Sphere、Cylinder和和Capsule四四中中几几何何体体,将将其其摆摆放放到到合合适适的的位位置

25、置并并为为其其添添加加纹纹理理贴贴图图,完完成成后后效效果果如如图图7-40所示。所示。297.3 反射探头7.3.2 反射探头案例开发2. 制作流程制作流程(3)完完成成后后点点击击菜菜单单栏栏中中“GameObject”“Light”“Reflection Probe”创创建建一一个个反反射射探探头头并并将将其其放放置置在在场场景景的的中中间间位位置置,为为了了使使反反射射效效果果更更突突出出,将将反反射射探探头头设设置置面面板板中中的的Cubemap分分辨辨率率设设置为置为1024*1024,并使用实时模式,如图,并使用实时模式,如图7-41、图、图7-42所示。所示。307.3 反射探

26、头7.3.2 反射探头案例开发2. 制作流程制作流程(4)接接下下来来向向场场景景中中添添加加用用于于呈呈现现反反射射效效果果的的球球体体,在在场场景景中中新新建建一一个个球球体体,调调节节其其位位置置和和大大小小使使其其能能够够将将反反射射探探头头包包含含在在内内,然然后后为为其其添添加加一一张张纯纯色色的的纹纹理理贴贴图图,案案例例中中使使用用的的是是白白色色纹纹理理。在在其其Inspector面面板板的的材材质质编编辑辑器器中中将将Metallic和和Smoothness均均调调节节为为1,使使其其反反射射效效果果更更好好,如如图图7-43所所示。示。317.3 反射探头7.3.2 反射

27、探头案例开发2. 制作流程制作流程(5)完完成成后后应应该该就就能能够够看看到到反反射射探探头头所所产产生生的的效效果果已已经经应应用用到到了了这这个个球球体体之之上上,因因为为在在该该球球体体的的Mesh Renderer(网网格格渲渲染染器器)中中已已经经将将当当前前场场景景中中的的反反射射探探头头绑绑定定到到了了该该球球体体上上,如如图图7-44所所示示。接接下下来来就就需需要要编编写写脚脚本本来来控控制制摄摄像像机机的的运运动动,在在C#文文件件夹夹下下右右键键CreateC# Script创创建建一一个个C#脚脚本本并并重重命命名名为为“Demo”。双双击击脚脚本本进入脚本编辑器编辑

28、代码,具体代码如下。进入脚本编辑器编辑代码,具体代码如下。327.3 反射探头7.3.2 反射探头案例开发代码代码using UnityEngine;2 using System.Collections;3 public class Demo : MonoBehaviour 4 void Update()5 Camera.main.transform.RotateAround(this.transform.position,Vector3.up,0.3f);6 (6)脚本编写完成后保存并退出,在)脚本编写完成后保存并退出,在Unity集成开发环境中将编写好集成开发环境中将编写好的的Demo脚本

29、绑定到球体上即可(可以通过将脚本拖拽到球体对象上来脚本绑定到球体上即可(可以通过将脚本拖拽到球体对象上来完成绑定)完成绑定) 337.4法线贴图7.4.1法线贴图的基本知识法法线线贴贴图图就就是是在在原原物物体体凹凹凸凸表表面面的的每每个个点点上上均均作作法法线线,通通过过RGB颜颜色色通通道道来来标标记记法法线线的的方方向向,对对于于视视觉觉效效果果而而言言,它它的的效效率率比比原原有有的的凹凹凸凸表表面面更更高高。若若在在特特定定位位置置上上应应用用光光源源,可可以以让让细细节节程程度度较较低低的的表表面面生生成成高高细细节节程程度度的的精精确确光光照照方方向向和和反射效果。反射效果。(1

30、)法法线线贴贴图图(Normal mapping)在在三三维维计计算算机机图图形形学学中中,是是凹凹凸凸贴贴图图(Bump mapping)技技术术的的一一种种应应用用,法法线线贴贴图图有有时时也也称称为为“Dot3(仿仿立立体体) 凹凹凸凸纹纹理理贴贴图图”。凹凹凸凸与与纹纹理理贴贴图图对对于于现现有有模模型型的的法法线线添添加加扰扰动动的的方方式式不不同同,法法线线贴贴图图要要完完全全更新法线。更新法线。(2)法法线线贴贴图图将将具具有有高高细细节节的的模模型型通通过过映映射射烘烘焙焙出出法法线线贴贴图图,然然后后贴贴在在低低端端模模型型的的法法线线贴贴图图通通道道上上,使使其其表表面面拥

31、拥有有光光影影分分布布的的渲渲染染效效果果,能能大大大大降降低低表表现现物物体体时时需需要要的的面面数数和和计计算算内内容。容。 347.4法线贴图7.4.2在Unity中使用法线贴图1.案例效果案例效果357.4法线贴图7.4.2在Unity中使用法线贴图2.开发流程开发流程 (1)打打开开Unity游游戏戏开开发发引引擎擎,利利用用Ctrl+N快快捷捷键键新新建建一一场场景景并并保保存存为为“NormalmapDemo”。在在Assets目目录录下下新新建建两两个个文文件件夹夹,分分别别 重重 命命 名名 为为 “Materials”和和“Texture”。将将事事先先准准备备好好的的箱箱

32、子子图图 片片 以以 及及 其其 法法 线线 贴贴 图图 导导 入入 进进Texture文文件件夹夹,资资源源结结构构布布局局如如图图7-49所示。所示。367.4法线贴图7.4.2在Unity中使用法线贴图2.开发流程开发流程 (2)选选中中NingMong_NRM法法线线贴贴图图,在在Inspector面面板板可可以以看看到到其其属属性性参参数数,其其中中Bumpiness表表示示的的是是法法线线贴贴图图的的凹凹凸凸程程度度,可可以以通通过过滑滑块块来来调调整整当当前前的的数数值值,点点击击Apply应应用用,如如图图7-50所所示示。在在Scene中中新新建建一一个个Plane,并并在在

33、Plane 上上放放置两个置两个Cube并赋于不同贴图作比较。并赋于不同贴图作比较。377.4法线贴图7.4.2在Unity中使用法线贴图2.开发流程开发流程 (3)在在Materials文文件件夹夹中中右右击击CreateMaterial菜菜单单新新建建两两个个材材质质球球,如如图图7-51所所示示。将将其其分分别别命命名名为为“Diffuse”、“Normaterial”。选选中中Diffuse材材质质球球,将将木木箱箱的的纹纹理理图图拖拽到拖拽到Albedo参数下(采用默认的着色器)。如图参数下(采用默认的着色器)。如图7-52所示。所示。387.4法线贴图7.4.2在Unity中使用法

34、线贴图2.开发流程开发流程 (4)选选中中Normaterial材材质质球球,将将其其 着着 色色 器器 修修 改改 为为 Legacy Shaders/Bumpped Diffuse,并并将将木木箱箱纹纹理理图图拖拖拽拽到到Base中中,将将法法线线贴贴图图拖拖拽拽到到Normalmap中中,如如图图7-53所所示示。将将两两种种材材质质球球分分别别赋赋给给之之前创建的两前创建的两Cube。 397.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能1.基础知识基础知识(1)Unity中中支支持持多多种种渲渲染染路路径径,不不同同的的渲渲染染路路径径有有不不同同的的性性 能能

35、 和和 效效 果果 , 大大 多多 数数 都都 是是 影影 响响 光光 照照 和和 阴阴 影影 的的 。 点点 击击EditProjectPlayer菜菜单单,在在Inspector面面板板中中的的Other Setting卷展栏下卷展栏下Rendering Path中设置渲染路径中设置渲染路径 Forward:该渲染路径也是:该渲染路径也是Unity的预设渲染路径,在该渲染的预设渲染路径,在该渲染路径下,每个对象的着色是根据影响对象的灯光,通过路径下,每个对象的着色是根据影响对象的灯光,通过“Pass”来着色。这个渲染路径的优点是快速,硬件要求低,来着色。这个渲染路径的优点是快速,硬件要求低

36、,可以快速处理透明度。然而其缺点是有大量光源的复杂场景可以快速处理透明度。然而其缺点是有大量光源的复杂场景中效率反而会降低。中效率反而会降低。407.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能1.基础知识基础知识Deferred:该路径为延迟渲染路径,延迟了光的遮蔽与混合:该路径为延迟渲染路径,延迟了光的遮蔽与混合信息直到第一次接收到表面的位置发现材质数据着色到一个信息直到第一次接收到表面的位置发现材质数据着色到一个“几何缓冲器(几何缓冲器(G-buffer)”作为一个屏幕空间的贴图。该方法作为一个屏幕空间的贴图。该方法的优点是照明的着色成本和像素数量成正比,而非灯光数

37、量,的优点是照明的着色成本和像素数量成正比,而非灯光数量,所以非常适合在有大量所以非常适合在有大量“realtime”模式的光源存在时显示真模式的光源存在时显示真实的光照和阴影,但是需要较高的硬件水平支持。实的光照和阴影,但是需要较高的硬件水平支持。Legacy Vertex Lit:顶点照明渲染路径通常在一个:顶点照明渲染路径通常在一个pass中渲中渲染物体,所有的光源照明都是在物体的顶点上计算的。该渲染物体,所有的光源照明都是在物体的顶点上计算的。该渲染路径是最快速的并且具有最广泛的硬件支持染路径是最快速的并且具有最广泛的硬件支持 Legacy Defferred(light prepas

38、s):该渲染和):该渲染和Defferred渲染路径非常相似,只是采用了不同的手段去实现渲染路径非常相似,只是采用了不同的手段去实现 417.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能1.基础知识基础知识(2)Flare镜镜头头光光晕晕也也成成为为耀耀斑斑,是是模模拟拟相相机机镜镜头头内内的的一一种种光光线线折折射射的的效效果果,常常用用来来表表示示非非常常明明亮亮的的灯灯光光。添添加加镜镜头头光光晕晕最最简简单单的的方方法法是是在在灯灯光光Light组组件件下下的的Flare选选项项中中赋赋于于耀耀斑效果。斑效果。(3)Culling Mask光光照照过过滤滤是是光光

39、照照系系统统中中一一个个较较为为实实用用的的小小功功能能,经经常常会会被被用用到到。比比如如场场景景中中不不想想让让某某些些物物体体受受到到某某个个光光源源的的影影响响、需需要要某某盏盏灯灯专专门门为为某某个个对对象象提提供供光光照照等等情情况况就就需需要要使使用用光光照照过过滤滤(Culling Mask),将将该该物物体体置置于于某某一一层,将灯光遮罩该层即可。层,将灯光遮罩该层即可。 427.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能2.案例效果案例效果437.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能3.开发流程开发流程(1)打打开开Un

40、ity集集成成开开发发环环境境,首首先先导导入入标标 准准 资资 源源 包包 中中 的的 镜镜 头头 光光 晕晕 效效 果果 , 在在Assets中中右右击击Import PackageEffects,在在弹弹出出的的Importing package面面板板中中点点击击导导入入即即可可。如如图图7-60所所示示。在在Assets目目录录下下新新建建一一个个文文件件夹夹并重命名为并重命名为“Texture”。447.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能3.开发流程开发流程(2)将将开开发发过过程程中中需需要要用用到到的的立立方方体体的的纹纹理理图图拖拖拽拽到到Te

41、xture文文件件夹夹中中,点点击击GameObject3D ObjectPlane菜菜单单,在在场场景景中中创创建建一一个个地地板板,如如图图7-61所所示示。重重复复相相同同步步骤骤再再次次创创建建两两个个Cube,并并分分别别重重命命名名为为“Cubeone”和和“Cubetwo”,并并调调整整这这三三个个对对象象的的位位置置,使使其其接接近近于于摄摄像机。像机。457.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能3.开发流程开发流程(3)将将Texture中中的的纹纹理理图图拖拖拽拽到到Cubeone游游戏戏对对象象的的上上,并并将将其其着着色色器器类类型型修修改

42、改为为Mobile/Bumped Diffuse,如如图图7-62所所示示。这这时时将将Texture中中的的Material材材质质球球拖拖拽拽到到Cubetwo中即可实现纹理图的添加。如图中即可实现纹理图的添加。如图7-63所示。所示。 467.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能3.开发流程开发流程(4)利利用用快快捷捷键键Ctrl+Shift+N新新建建一一个个空空游游戏戏对对象象,调调整整其其位位置置在在两两个个Cube的的左左后后方方。点点击击ComponentEffectsLens Flare菜菜单单,为为其其添添加加该该组组件件,如如图图7-64所

43、所示示。将将标标准准资资源源包中的某个耀斑效果图拖拽到该组件的包中的某个耀斑效果图拖拽到该组件的Flare参数中,效果如图参数中,效果如图7-65所示。所示。477.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能3.开发流程开发流程(5)在在指指定定耀耀斑斑参参数数后后,可可以以通通过过调调整整GameObject的的位位置置以以及及旋旋转转角角度度来来改改变变镜镜头头光光晕晕的的位位置置和和朝朝向向,效效果果如如图图7-66所所示示。选选中中Cubeone游游戏戏对对象象,在在其其属属性性面面板板中中的的右右上上角角的的Layer一一栏栏中中,点开下拉列表,选择点开下拉列

44、表,选择Add Layer菜单,如图菜单,如图7-67所示。所示。487.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能3.开发流程开发流程(6)在在弹弹出出的的属属性性面面板板中中,前前七七个个是是系系统统默默认认的的层层次次无无法法更更改改。选选择择第第八八个个输输入入“Cubeone”,如如图图7-68、图图7-69所所示示。创创建建完完成成后后将将Cubeone游游戏戏对对象象的的Layer修修改改为为Cubeone,如如图图7-70所所示示。这这时时层层次的添加就完成了。次的添加就完成了。497.5 Unity3D光照系统中的高级功能7.5.1光照系统中的小功能3

45、.开发流程开发流程(7)修修改改完完成成后后,选选中中场场景景中中的的Directional Light光光源源,在在Light组组件件中中修修改改Culling Mask参参数数,将将Cubeone层层次次取取消消勾勾选选即即可可实实现现光光照照过过滤滤的的功功能能,如如图图7-71所所示示。利利用用该该功功能能还还可可以以实实现现特特定定的的光光源源给特定物体进行照射的功能。给特定物体进行照射的功能。507.5 Unity3D光照系统中的高级功能7.5.2阴影的设置1.阴影质量阴影质量Unity中使用中使用“阴影贴图(阴影贴图(Shadow maps)”来显示阴影来显示阴影 Unity游游

46、戏戏开开发发引引擎擎提提供供两两种种阴阴影影模模式式(Shadow Type)分分别别为为Hard Shadow和和Soft Shadow,在在相相同同灯灯光光照照射射下下以以及及同同等等的的贴贴图图分分辨辨率率,Hard Shdow模模式式下下的的阴阴影影效效果果十十分分的生硬并且带有明显的抗锯齿,下面给出四种不同情况下的阴影贴图,如图的生硬并且带有明显的抗锯齿,下面给出四种不同情况下的阴影贴图,如图7-73所示。所示。517.5 Unity3D光照系统中的高级功能7.5.2阴影的设置2. Quality Settings面板面板点击点击EditProject SettingsQuality

47、菜单,进入菜单,进入QualitySetting面板面板 即可进行分辨率的设置。如图即可进行分辨率的设置。如图7-47、7-75所示。所示。Shadows具体参数如表具体参数如表7-7所列。所列。 527.5 Unity3D光照系统中的高级功能7.5.2阴影的设置2. Quality Settings面板面板参数名含义Shadows设置阴影的类型Shadow Resolution阴影的分辨率,可以将分辨率设置为:低、中、高、极高,分辨率越高,处理开销越大Shadow Projection阴影投射,平行光的投射阴影有两种方式:Close Fit渲染高分辨率阴影,但是相机移动时,阴影会稍微摆动;S

48、table Fit渲染的阴影分辨率低,但是不会在相机移动时摆动Shadow Distance相机的最大阴影可见距离,超过这个距离的阴影不会被计算Shadow Cascades阴影层叠,层叠数目越高,阴影质量越好,计算开销越大537.5 Unity3D光照系统中的高级功能7.5.2阴影的设置 3.阴影性能阴影性能Unity中降低阴影消耗的常用方法如下中降低阴影消耗的常用方法如下(1)使用光照贴图)使用光照贴图(2)分辨率和阴影模式的设置)分辨率和阴影模式的设置(3)设置阴影距离)设置阴影距离547.5 Unity3D光照系统中的高级功能7.5.3 Light Probes光探头1.基础知识基础知

49、识Light Probes的的原原理理是是在在场场景景中中放放上上若若干干个个采采样样点点,收收集集采采样样点点周周围围的的明明暗暗信信息息,然然后后在在附附近近几几个个点点围围成成的的区区域域内内进进行行差差值值,当当动动态态的的游游戏戏对对象象位位于于这这些些区区域域内内时时会会根根据据位位置置返返回回差差值值结结果果也也就就是是其其所所受受的的光光照照结结果果。这这种种做做法法并并不会消耗太多的性能,也能实现动态物体和静态场景光照效果的相互融合。不会消耗太多的性能,也能实现动态物体和静态场景光照效果的相互融合。557.5 Unity3D光照系统中的高级功能7.5.3 Light Prob

50、es光探头2.案例效果案例效果567.5 Unity3D光照系统中的高级功能7.5.3 Light Probes光探头3.开发流程开发流程(1)光光探探头头存存在在的的价价值值是是为为了了解解决决动动态态物物体体与与烘烘焙焙好好的的Lighting map场场景景光光照照突突兀兀的的问问题题,首首先先搭搭建建一一个个简简单单的的场场景景。利利用用Unity中中简简单单的的几几何何体体搭搭建建一一个个场场景景,效效果果如如图图7-78所所示示。图图中中绿绿色色的的长长方方体体为为自自发发光物体。光物体。577.5 Unity3D光照系统中的高级功能7.5.3 Light Probes光探头(2)

51、在在场场景景搭搭建建过过程程中中,需需要要给给每每个个游游戏戏对对象象添添加加材材质质。这这里里以以自自发发光光物物体体和和长长方方体体为为例例介介绍绍材材质质球球的的创创建建过过程程。在在Assets目目 录录 下下 新新 建建 一一 文文 件件 夹夹 并并 重重 命命 名名 为为“Materials”, 在在 该该 文文 件件 夹夹 下下 右右 击击CreateMaterial,并并重重命命名名为为“blue”,在在其其Albedo参参数数中中将将颜颜色色修修改改为为蓝蓝色色,如图如图7-79所示。所示。587.5 Unity3D光照系统中的高级功能7.5.3 Light Probes光探

52、头( 3) 根 据 步 骤 2再 次 新 建 一 名 为Yingguang-green的材质球,将其着色器参数 修 改 为 Legacy Shaders/Self Illumin/Diffuse,并在Main Color参数中将颜色修改为淡绿色,将该发光材质球指定给创建的小长方体,如图7-80所示。597.5 Unity3D光照系统中的高级功能7.5.3 Light Probes光探头(4)至此,场景的搭建就完成了,将场景中的所有游戏对象标志为静态物体,对场景进行烘焙(具体过程已经在前面章节详细介绍过,有需要的可以参考前面讲解的知识)。利用Ctrl+Shift+N创建一个空游戏对象,点击Com

53、ponentRenderingLight Probes Group菜单添加光探头组件,如图7-81所示。607.5 Unity3D光照系统中的高级功能7.5.3 Light Probes光探头(5)下面就要为游戏场景布置采样点了。点击“Light Probe Group”组件中的“Add Probe”按钮,Scene窗口中就会出现一个新的“小球”,接下来将该小球移动到场景中的某个位置即可完成其摆放,点击“Duplicate Selected”按钮可以复制一个当前选中的采样点。(6)重复第5步操作,直到场景中大部分阴影比较凸显的地方都放置有采样点,如图7-82所示。其中很多用紫色的线连起来的黄色

54、的“小球”就是设置的采样点,注意采样点的多少并不会影响性能。采样点放置完毕后,需要再次烘焙游戏场景,所有的采样点都赋予了其所在位置的光影信息。617.5 Unity3D光照系统中的高级功能7.5.3 Light Probes光探头(7)接下来可以测试一下Light Probe的功能,创建一个小球并将其摆放到场景中的各个位置,观察其光影效果是否和有区别。首先将小球摆放到场景中具有发光材质的地方。开关其Mesh Renderer组件中的Use Light Probes参数,如图7-83所示,并观察其区别。627.5 Unity3D光照系统中的高级功能7.5.3 Light Probes光探头4.L

55、ight Probes应用细节应用细节(1)采样点的工作原理是将场景空间划分为多个相邻的四面体空间,)采样点的工作原理是将场景空间划分为多个相邻的四面体空间,为了能够合理的划分出空间以便进行正确的差值,所以需要注意不要将为了能够合理的划分出空间以便进行正确的差值,所以需要注意不要将所有采样点放置在同一个平面上,这样会导致无法划分空间。所有采样点放置在同一个平面上,这样会导致无法划分空间。(2)当动态物体只能在一定的高度下活动时,在其高度的上方就没有)当动态物体只能在一定的高度下活动时,在其高度的上方就没有必要布置多个采样点了。当然也不能将所有的采样点布置的太低,这样必要布置多个采样点了。当然也

56、不能将所有的采样点布置的太低,这样就无法划分空间了。就无法划分空间了。637.5 Unity3D光照系统中的高级功能7.5.4 材质编辑器Unity5中添加了两种新的标准着色器,它们的材质编辑器窗口如图中添加了两种新的标准着色器,它们的材质编辑器窗口如图7-84和图和图7-85所示所示 647.5 Unity3D光照系统中的高级功能7.5.4 材质编辑器参数名含义参数名含义Specular高光,颜色可以自行设置Normal Map法线贴图Height Map高度图,通常是灰度图Occlusion环境遮盖贴图,将在后面的部分中详细介绍Tiling贴图的重复贴图次数Offset贴图的偏移量Seco

57、ndary Maps细节贴图Metallic金属性,值越高,反射效果越明显Rendering Mode渲染模式,有四种模式可选,下面将详细单独介绍Albedo漫反射纹理图,也可以设置其颜色和透明度(透明度需要选择正确的Rendering Mode)Smoothness此值影响计算反射时表面光滑程度,值越高,反射效果越清晰Emission自发光属性,开启后该材质在场景中类似一个光源,可以调节其GI模式Detail Mask细节遮罩贴图,当某些地方不需要细节图可以使用遮罩图来进行设置,如嘴唇部分不需要毛孔等657.5 Unity3D光照系统中的高级功能7.5.4 材质编辑器Shandard着色器的

58、Rendering Mode中的4种不同的着色模式 Opaque模式:这种模式代表该着色器不支持透明通道。模式:这种模式代表该着色器不支持透明通道。 Cutout模式:这种模式下着色器支持透明通道,但是不支持半透明。模式:这种模式下着色器支持透明通道,但是不支持半透明。 Fade模模式式:褪褪色色模模式式,该该模模式式下下可可以以通通过过操操控控Albedo的的Color中中的的Alpha值值来来操操作作材材质质的的透透明明度度,根根据据Alpha的的设设定定可可以以制制作作出出半半透透明明的的效果。效果。 Transparent模模式式:这这种种模模式式下下的的材材质质同同样样可可以以通通过过Albedo中中Color的的Alpha值值来来调调整整其其透透明明度度,但但不不同同的的是是,当当物物体体变变为为半半透透明明的的时时候候,其其表面的高光和反射不会变淡的表面的高光和反射不会变淡的 66

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号