Unity3D游戏开发标准教程第07章-光影效果课件.ppt

上传人(卖家):三亚风情 文档编号:2912694 上传时间:2022-06-10 格式:PPT 页数:66 大小:7.82MB
下载 相关 举报
Unity3D游戏开发标准教程第07章-光影效果课件.ppt_第1页
第1页 / 共66页
Unity3D游戏开发标准教程第07章-光影效果课件.ppt_第2页
第2页 / 共66页
Unity3D游戏开发标准教程第07章-光影效果课件.ppt_第3页
第3页 / 共66页
Unity3D游戏开发标准教程第07章-光影效果课件.ppt_第4页
第4页 / 共66页
Unity3D游戏开发标准教程第07章-光影效果课件.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

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

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

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

4、光照的影响第4页2.定向光源基础知识定向光源基础知识定 向 光 源 的 添 加 可 以 通 过 点 击 菜 单 栏 中定 向 光 源 的 添 加 可 以 通 过 点 击 菜 单 栏 中“GameObject”“Light”“Directional Light” 菜单完成,菜单完成,定向光源在场景中如果位置发生改变,它的光照效果并不会发定向光源在场景中如果位置发生改变,它的光照效果并不会发生任何改变,可以把它放到场景中任意的地方,如果旋转定向生任何改变,可以把它放到场景中任意的地方,如果旋转定向光源,那么它产生的光线照射方向会随之发生变化。光源,那么它产生的光线照射方向会随之发生变化。选中场景中

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

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

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

8、Light”即可打开即可打开Light窗窗口,口,Light窗口中分三个板块来控制窗口中分三个板块来控制Unity游戏开发引游戏开发引擎中跟光照相关的参数擎中跟光照相关的参数 第9页1.Object板块板块Object板块主要是对板块主要是对Hierarchy面板中的对象进行筛选,面板中的对象进行筛选,在在Object面板中有四个按钮分别为全部对象、光源、面板中有四个按钮分别为全部对象、光源、渲染器、地形渲染器、地形 (1)Renderers渲染器渲染器 渲染器相关参数含义渲染器相关参数含义第10页参数名含义参数名含义Preserve UVs保护光照图UV,若模型没有在3DMax等建模软件中展

9、好UV,则这里必须勾选。Auto UV Max Distance手动设置UV的最大距离Important GI让自发光的物体照射范围更加大(在较大的场景中可能会用到)Auto UV Max Angle手动设置UV的最大角度Advanced Parameters设置光照图的质量Lightmap static该选项表示选中的游戏对象是否为Static或Lightmap Static的,如果是,则该游戏对象应该参与到GI系统中计算光照Scale In Lightmap该值影响了用于选中对象的lightmap的像素数目。1.0为默认值,表示每个对象所占光照图像素的比率。可以通过此值来优化光照图,减少不

10、重要的对象的比例让重要的物体占更多的光照图像素来优化场景第11页1.Object板块板块(2)Terrain地形地形图7-19 地形参数设置第12页2.Scene板块板块(1)Environment Lighing环环境光照境光照 环境光照相关参数含义环境光照相关参数含义参数名含义Skybox场景中使用的天空盒Sun太阳光,可以为其指定一个定向光光源(Directional Light)Ambient Source环境光来源,在这里可以指定环境光是来源于天空盒、梯度还是指定颜色Ambient Intensity环境光的强度Ambient GI指定环境光的光照模式是实时光照还是烘焙,若下面的两种

11、GI模式没有都开启,该选项的调节是没有效果的Reflection Source反射源,可以指定反射源是天空盒或者一个自定的立方体纹理图Reflection Intensity反射强度,设定来自天空盒或者立方图纹理的反射强度Reflection Bounce反射计算次数第13页2.Scene板块板块(2)Precomputed Realtime GI预计算实时全局光照预计算实时全局光照预计算实时全局光照并不是用于光照烘焙,预先计算的实时预计算实时全局光照并不是用于光照烘焙,预先计算的实时全局光照系统能帮我们实时运算复杂的场景光源互动,透过全局光照系统能帮我们实时运算复杂的场景光源互动,透过这种方

12、法,就能建立在昏暗的环境下带有丰富的全局光照反这种方法,就能建立在昏暗的环境下带有丰富的全局光照反射,并实时反映光源的改变。这对于硬件的要求是目前移动射,并实时反映光源的改变。这对于硬件的要求是目前移动端所无法达到的。端所无法达到的。(3)Bake GI烘焙全局光照烘焙全局光照如果开发过程中需要使用光照烘焙,那么就需要将该面板选如果开发过程中需要使用光照烘焙,那么就需要将该面板选中并取消中并取消Precomputed Realtime GI面板的勾选,全部勾选面板的勾选,全部勾选会造成大量的重复计算不利于提升性能。会造成大量的重复计算不利于提升性能。第14页2.Scene板块板块参数名功能Ba

13、ked Resolution烘焙分辨率,若该值为10就代表每个单位中分布着10个纹理元素Baked Padding在LightMap中不同物体的烘焙贴图的间距Compressed是否压缩光照图,在移动设备上最好勾选上Ambient Occlusion烘培光照图时产生一定数量的环境阻光。环境阻光计算物体每一点被一定距离内的其他物体或者一定距离内自身物体的遮挡程度(用来模拟物体表面环境光及阴影覆盖的比例,达到全局光照的效果)Final Gather控制从最终聚集点发射出的光线数量,较高的数值可以得到更好的效果第15页2.Scene板块板块(4)General GI全局光照的基本设置全局光照的基本设

14、置General GI面板中对全局光照的设置参数能够同时适用于面板中对全局光照的设置参数能够同时适用于Precomputed Realtime GI和和Baked GI 参数名功能Directional Mode定向模式,默认为定向,能够满足大部分的开发需求,当游戏中需要提升直接光和间接光对静态物体的照射效果,那么就需要将其设置为Directional Specular(定向镜面模式)。Indirect Intensity用于调整静态物体的自发光对其他物体的影响, 以及Ambient lighting的强度.Bounce Boost用于设置光线从一个物体反射到另一个物体时,被反射的光线的数量D

15、efault Parameters用于修改关于光照的常规参数,其中有多个档次供选择,也可以进行自定义Atlas Szie用于设置光照贴图中分辨率的大小第16页7.2.2 光照烘焙案例1. 案例效果案例效果图7-24 案例运行效果第17页7.2.2 光照烘焙案例2. 制作流程制作流程(1)首先打开)首先打开Unity集成开发集成开发环境,新建一个工程并重命名环境,新建一个工程并重命名为为“Light_Demo”,进入工,进入工程后保存当前场景并重命名为程后保存当前场景并重命名为“Bake_Demo”。然后在场。然后在场景中使用景中使用Unity内置的多种简内置的多种简单几何体搭建一个简易的场景单

16、几何体搭建一个简易的场景即可,搭建完成后效果如图即可,搭建完成后效果如图7-25所示。所示。图7-25 搭建简易场景第18页7.2.2 光照烘焙案例(2)场景搭建完成后,为了使其他光源的光照效果更突出,本案例中将场景中的定向光源去掉。)场景搭建完成后,为了使其他光源的光照效果更突出,本案例中将场景中的定向光源去掉。将所有的将所有的3D对象设置为静态对象,如图对象设置为静态对象,如图7-26所示。并在其中添加多种光源进行照明,将光源的烘焙所示。并在其中添加多种光源进行照明,将光源的烘焙模式均设置为模式均设置为Bake,如图,如图7-27所示。最后调整光源的位置以及朝向即可。所示。最后调整光源的位

17、置以及朝向即可。图7-26 将物体设置为静态图7-27 设置烘焙模式第19页7.2.2 光照烘焙案例(3)由于本案例仅作为演示,所以还需要对)由于本案例仅作为演示,所以还需要对Light窗口中的部分参数进行修改,使其能够达到较好窗口中的部分参数进行修改,使其能够达到较好的视觉效果。首先打开的视觉效果。首先打开Light窗口,在窗口,在Scene板块中关闭预计算全局光照的功能,取消对光照烘焙贴板块中关闭预计算全局光照的功能,取消对光照烘焙贴图的压缩,并将定向模式修改为定向镜面模式,如图图的压缩,并将定向模式修改为定向镜面模式,如图7-28、图、图7-29所示。所示。图7-28 设置参数1图7-2

18、9 设置参数2第20页Unity5.0中新增了一种制作反射效果的中新增了一种制作反射效果的“Reflection Probe”功能功能 ,该功能通过场景中若干个反射采样点来生成反射,该功能通过场景中若干个反射采样点来生成反射“Cubemap”,然后通过特定的着色器从,然后通过特定的着色器从“Cubemap”中采中采样,从而实现反射效果。样,从而实现反射效果。7.3.1 反射探头基本知识反射探头的好处是其能够捕捉所在位置各个方向的环境视图,反射探头的好处是其能够捕捉所在位置各个方向的环境视图,将所捕获的图像储存为一个立方体纹理(将所捕获的图像储存为一个立方体纹理(Cubemap)。这样)。这样物

19、体会根据其所处的探头的位置产生真实的反射效果。物体会根据其所处的探头的位置产生真实的反射效果。第21页7.3.1 反射探头基本知识图7-30 反射探头设置面板1图7-31 反射探头设置面板2第22页7.3.1 反射探头基本知识(1)反射探头类型的选择bake烘焙:烘焙模式:这种模式类似于光照烘焙,当反射探头的位置和反射范围设定完成后,将其反射信息烘焙到Cubemap(立方图)中,这样物体上的反射效果将会固定为烘焙时的反射探头所捕捉到的环境视图。 custom自定义:自定义模式:默认状态下自定义:自定义模式:默认状态下Custom模式模式的反射探头和的反射探头和Baked模式的探头的用法和效果基

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

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

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

23、板中“Environment Lighting”卷展栏下的“Reflection Bounces”属性就是用来控制反射的次数,最大为相互反射5次。第26页7.3.2 反射探头案例开发1. 案例效果案例效果图7-37 案例运行效果1图7-38 案例运行效果2第27页7.3.2 反射探头案例开发2. 制作流程制作流程(1)首先打开)首先打开Unity集成开发环境,集成开发环境,新 建 一 个 工 程 并 重 命 名 为新 建 一 个 工 程 并 重 命 名 为“ReflectionProbe_Demo”,进,进入工程后保存当前场景并重命名为入工程后保存当前场景并重命名为“ReflectionPro

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

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

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

27、射效果更好,如图,使其反射效果更好,如图7-43所所示。示。图7-43 调节材质编辑器 第31页7.3.2 反射探头案例开发2. 制作流程制作流程(5)完成后应该就能够看到反射探头所产)完成后应该就能够看到反射探头所产生的效果已经应用到了这个球体之上,因生的效果已经应用到了这个球体之上,因为在该球体的为在该球体的Mesh Renderer(网格渲染(网格渲染器)中已经将当前场景中的反射探头绑定器)中已经将当前场景中的反射探头绑定到了该球体上,如图到了该球体上,如图7-44所示。接下来就所示。接下来就需要编写脚本来控制摄像机的运动,在需要编写脚本来控制摄像机的运动,在C#文件夹下右键文件夹下右键

28、CreateC# Script创建一创建一个个C#脚本并重命名为脚本并重命名为“Demo”。双击脚本。双击脚本进入脚本编辑器编辑代码,具体代码如下。进入脚本编辑器编辑代码,具体代码如下。图7-44 设置网格渲染器第32页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

29、);6 (6)脚本编写完成后保存并退出,在)脚本编写完成后保存并退出,在Unity集成开发环境中将编写好集成开发环境中将编写好的的Demo脚本绑定到球体上即可(可以通过将脚本拖拽到球体对象上来脚本绑定到球体上即可(可以通过将脚本拖拽到球体对象上来完成绑定)完成绑定) 第33页7.4.1法线贴图的基本知识法线贴图就是在原物体凹凸表面的每个点上均作法线,通过法线贴图就是在原物体凹凸表面的每个点上均作法线,通过RGB颜色通道来标记法线的方向,对于视觉效果而言,它的颜色通道来标记法线的方向,对于视觉效果而言,它的效率比原有的凹凸表面更高。若在特定位置上应用光源,可效率比原有的凹凸表面更高。若在特定位置

30、上应用光源,可以让细节程度较低的表面生成高细节程度的精确光照方向和以让细节程度较低的表面生成高细节程度的精确光照方向和反射效果。反射效果。(1)法线贴图()法线贴图(Normal mapping)在三维计算机图形学中,)在三维计算机图形学中,是凹凸贴图(是凹凸贴图(Bump mapping)技术的一种应用,法线贴图)技术的一种应用,法线贴图有时也称为有时也称为“Dot3(仿立体仿立体) 凹凸纹理贴图凹凸纹理贴图”。凹凸与纹理贴。凹凸与纹理贴图对于现有模型的法线添加扰动的方式不同,法线贴图要完图对于现有模型的法线添加扰动的方式不同,法线贴图要完全更新法线。全更新法线。(2)法线贴图将具有高细节的

31、模型通过映射烘焙出法线贴图,)法线贴图将具有高细节的模型通过映射烘焙出法线贴图,然后贴在低端模型的法线贴图通道上,使其表面拥有光影分然后贴在低端模型的法线贴图通道上,使其表面拥有光影分布的渲染效果,能大大降低表现物体时需要的面数和计算内布的渲染效果,能大大降低表现物体时需要的面数和计算内容。容。 第34页7.4.2在Unity中使用法线贴图1.案例效果案例效果 图7-47 Diffuse纹理图效果 图7-48 Normal纹理图效果第35页7.4.2在Unity中使用法线贴图2.开发流程开发流程 (1)打开)打开Unity游戏开发引擎,利游戏开发引擎,利用用Ctrl+N快捷键新建一场景并保存快

32、捷键新建一场景并保存为为“NormalmapDemo”。在。在Assets目录下新建两个文件夹,分目录下新建两个文件夹,分别 重 命 名 为别 重 命 名 为 “ M a t e r i a l s ” 和和“Texture”。将事先准备好的箱子。将事先准备好的箱子图 片 以 及 其 法 线 贴 图 导 入 进图 片 以 及 其 法 线 贴 图 导 入 进Texture文件夹,资源结构布局如文件夹,资源结构布局如图图7-49所示。所示。 图7-49 资源结构布局 第36页7.4.2在Unity中使用法线贴图2.开发流程开发流程 (2)选中)选中NingMong_NRM法线贴法线贴图,在图,在I

33、nspector面板可以看到其属面板可以看到其属性参数,其中性参数,其中Bumpiness表示的是表示的是法线贴图的凹凸程度,可以通过滑法线贴图的凹凸程度,可以通过滑块来调整当前的数值,点击块来调整当前的数值,点击Apply应用,如图应用,如图7-50所示。在所示。在Scene中中新建一个新建一个Plane,并在,并在Plane 上放上放置两个置两个Cube并赋于不同贴图作比较。并赋于不同贴图作比较。图7-50 法线贴图参数第37页7.4.2在Unity中使用法线贴图2.开发流程开发流程 (3)在)在Materials文件夹中右击文件夹中右击CreateMaterial菜单新建两个材质球,如图

34、菜单新建两个材质球,如图7-51所所示。将其分别命名为示。将其分别命名为“Diffuse”、“Normaterial”。选中。选中Diffuse材质球,将木箱的纹理材质球,将木箱的纹理图拖拽到图拖拽到Albedo参数下(采用默认的着色器)。如图参数下(采用默认的着色器)。如图7-52所示。所示。 图7-51 创建材质球 图7-52 添加纹理图第38页7.4.2在Unity中使用法线贴图2.开发流程开发流程 (4)选中)选中Normaterial材质球,将材质球,将其 着 色 器 修 改 为其 着 色 器 修 改 为 L e g a c y Shaders/Bumpped Diffuse,并将,

35、并将木箱纹理图拖拽到木箱纹理图拖拽到Base中,将法线中,将法线贴图拖拽到贴图拖拽到Normalmap中,如图中,如图7-53所示。将两种材质球分别赋给之所示。将两种材质球分别赋给之前创建的两前创建的两Cube。 图7-53 法线贴图材质球第39页7.5.1光照系统中的小功能1.基础知识基础知识(1)Unity中支持多种渲染路径,不同的渲染路径有不同的中支持多种渲染路径,不同的渲染路径有不同的性 能 和 效 果 , 大 多 数 都 是 影 响 光 照 和 阴 影 的 。 点 击性 能 和 效 果 , 大 多 数 都 是 影 响 光 照 和 阴 影 的 。 点 击EditProjectPlaye

36、r菜单,在菜单,在Inspector面板中的面板中的Other Setting卷展栏下卷展栏下Rendering Path中设置渲染路径中设置渲染路径 Forward:该渲染路径也是:该渲染路径也是Unity的预设渲染路径,在该渲染的预设渲染路径,在该渲染路径下,每个对象的着色是根据影响对象的灯光,通过路径下,每个对象的着色是根据影响对象的灯光,通过“Pass”来着色。这个渲染路径的优点是快速,硬件要求低,来着色。这个渲染路径的优点是快速,硬件要求低,可以快速处理透明度。然而其缺点是有大量光源的复杂场景可以快速处理透明度。然而其缺点是有大量光源的复杂场景中效率反而会降低。中效率反而会降低。第4

37、0页7.5.1光照系统中的小功能1.基础知识基础知识Deferred:该路径为延迟渲染路径,延迟了光的遮蔽与混合:该路径为延迟渲染路径,延迟了光的遮蔽与混合信息直到第一次接收到表面的位置发现材质数据着色到一个信息直到第一次接收到表面的位置发现材质数据着色到一个“几何缓冲器(几何缓冲器(G-buffer)”作为一个屏幕空间的贴图。该作为一个屏幕空间的贴图。该方法的优点是照明的着色成本和像素数量成正比,而非灯光方法的优点是照明的着色成本和像素数量成正比,而非灯光数量,所以非常适合在有大量数量,所以非常适合在有大量“realtime”模式的光源存在时模式的光源存在时显示真实的光照和阴影,但是需要较高

38、的硬件水平支持。显示真实的光照和阴影,但是需要较高的硬件水平支持。Legacy Vertex Lit:顶点照明渲染路径通常在一个:顶点照明渲染路径通常在一个pass中渲中渲染物体,所有的光源照明都是在物体的顶点上计算的。该渲染物体,所有的光源照明都是在物体的顶点上计算的。该渲染路径是最快速的并且具有最广泛的硬件支持染路径是最快速的并且具有最广泛的硬件支持 Legacy Defferred(light prepass):该渲染和):该渲染和Defferred渲染路径非常相似,只是采用了不同的手段去实现渲染路径非常相似,只是采用了不同的手段去实现 第41页7.5.1光照系统中的小功能1.基础知识基

39、础知识(2)Flare镜头光晕也成为耀斑,是模拟相机镜头内的一种镜头光晕也成为耀斑,是模拟相机镜头内的一种光线折射的效果,常用来表示非常明亮的灯光。添加镜头光光线折射的效果,常用来表示非常明亮的灯光。添加镜头光晕最简单的方法是在灯光晕最简单的方法是在灯光Light组件下的组件下的Flare选项中赋于耀选项中赋于耀斑效果。斑效果。(3)Culling Mask光照过滤是光照系统中一个较为实用的光照过滤是光照系统中一个较为实用的小功能,经常会被用到。比如场景中不想让某些物体受到某小功能,经常会被用到。比如场景中不想让某些物体受到某个光源的影响、需要某盏灯专门为某个对象提供光照等情况个光源的影响、需

40、要某盏灯专门为某个对象提供光照等情况就需要使用光照过滤(就需要使用光照过滤(Culling Mask),将该物体置于某一),将该物体置于某一层,将灯光遮罩该层即可。层,将灯光遮罩该层即可。 第42页7.5.1光照系统中的小功能2.案例效果案例效果图7-59 案例效果图第43页7.5.1光照系统中的小功能3.开发流程开发流程(1)打开)打开Unity集成开发环境,首先导入集成开发环境,首先导入标 准 资 源 包 中 的 镜 头 光 晕 效 果 , 在标 准 资 源 包 中 的 镜 头 光 晕 效 果 , 在A s s e t s 中 右 击中 右 击 I m p o r t PackageEff

41、ects,在弹出的,在弹出的Importing package面板中点击导入即可。如图面板中点击导入即可。如图7-60所示。在所示。在Assets目录下新建一个文件夹目录下新建一个文件夹并重命名为并重命名为“Texture”。 图7-60 导入镜头光晕效果图 第44页7.5.1光照系统中的小功能3.开发流程开发流程(2)将开发过程中需要用到的立方体的)将开发过程中需要用到的立方体的纹理图拖拽到纹理图拖拽到Texture文件夹中,点击文件夹中,点击GameObject3D ObjectPlane菜单,菜单,在场景中创建一个地板,如图在场景中创建一个地板,如图7-61所示。所示。重复相同步骤再次创

42、建两个重复相同步骤再次创建两个Cube,并分,并分别重命名为别重命名为“Cubeone”和和“Cubetwo”,并调整这三个对象的位置,使其接近于摄并调整这三个对象的位置,使其接近于摄像机。像机。 图7-61 创建Plane第45页7.5.1光照系统中的小功能3.开发流程开发流程(3)将)将Texture中的纹理图拖拽到中的纹理图拖拽到Cubeone游戏对象的上,并将其着色器类型修改为游戏对象的上,并将其着色器类型修改为Mobile/Bumped Diffuse,如图,如图7-62所示。这时将所示。这时将Texture中的中的Material材质球拖拽到材质球拖拽到Cubetwo中即可实现纹理

43、图的添加。如图中即可实现纹理图的添加。如图7-63所示。所示。 图7-62 修改着色器类型 图7-63 利用材质球贴图第46页7.5.1光照系统中的小功能3.开发流程开发流程(4)利用快捷键)利用快捷键Ctrl+Shift+N新建一个空游戏对象,调整其位置在两个新建一个空游戏对象,调整其位置在两个Cube的左后方。点的左后方。点击击ComponentEffectsLens Flare菜单,为其添加该组件,如图菜单,为其添加该组件,如图7-64所示。将标准资源所示。将标准资源包中的某个耀斑效果图拖拽到该组件的包中的某个耀斑效果图拖拽到该组件的Flare参数中,效果如图参数中,效果如图7-65所示

44、。所示。 图7-64 添加Lens Flare组件 图7-65 添加耀斑效果第47页7.5.1光照系统中的小功能3.开发流程开发流程(5)在指定耀斑参数后,可以通过调整)在指定耀斑参数后,可以通过调整GameObject的位置以及旋转角度来改变镜头光晕的位的位置以及旋转角度来改变镜头光晕的位置和朝向,效果如图置和朝向,效果如图7-66所示。选中所示。选中Cubeone游戏对象,在其属性面板中的右上角的游戏对象,在其属性面板中的右上角的Layer一栏一栏中,点开下拉列表,选择中,点开下拉列表,选择Add Layer菜单,如图菜单,如图7-67所示。所示。 图7-66 镜头光晕效果 图7-67 添

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

46、成后,选中场景中的Directional Light光源,在光源,在Light组件中修改组件中修改Culling Mask参数,将参数,将Cubeone层次取消勾选即可实现光照过滤的功能,如图层次取消勾选即可实现光照过滤的功能,如图7-71所示。利用该功能还可以实现特定的光源所示。利用该功能还可以实现特定的光源给特定物体进行照射的功能。给特定物体进行照射的功能。 图7-70 给定特定的层次 图7-71 光照过滤功能第50页7.5.2阴影的设置1.阴影质量阴影质量Unity中使用中使用“阴影贴图(阴影贴图(Shadow maps)”来显示阴影来显示阴影 Unity游戏开发引擎提供两种阴影模式(游

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

48、即可进行分辨率的设置。如图即可进行分辨率的设置。如图7-47、7-75所示。所示。Shadows具体参数如表具体参数如表7-7所列。所列。 图 7-74 打开质量设置面板 图7-75 Shadows设置参数第52页7.5.2阴影的设置2. Quality Settings面板面板 表7-7 阴影质量参数设置参数名含义Shadows设置阴影的类型Shadow Resolution阴影的分辨率,可以将分辨率设置为:低、中、高、极高,分辨率越高,处理开销越大Shadow Projection阴影投射,平行光的投射阴影有两种方式:Close Fit渲染高分辨率阴影,但是相机移动时,阴影会稍微摆动;St

49、able Fit渲染的阴影分辨率低,但是不会在相机移动时摆动Shadow Distance相机的最大阴影可见距离,超过这个距离的阴影不会被计算Shadow Cascades阴影层叠,层叠数目越高,阴影质量越好,计算开销越大第53页7.5.2阴影的设置 3.阴影性能阴影性能Unity中降低阴影消耗的常用方法如下中降低阴影消耗的常用方法如下(1)使用光照贴图)使用光照贴图(2)分辨率和阴影模式的设置)分辨率和阴影模式的设置(3)设置阴影距离)设置阴影距离 第54页7.5.3 Light Probes光探头1.基础知识基础知识Light Probes的原理是在场景中放上若干个采样点,收集采样点周围的

50、明暗的原理是在场景中放上若干个采样点,收集采样点周围的明暗信息,然后在附近几个点围成的区域内进行差值,当动态的游戏对象位于这信息,然后在附近几个点围成的区域内进行差值,当动态的游戏对象位于这些区域内时会根据位置返回差值结果也就是其所受的光照结果。这种做法并些区域内时会根据位置返回差值结果也就是其所受的光照结果。这种做法并不会消耗太多的性能,也能实现动态物体和静态场景光照效果的相互融合。不会消耗太多的性能,也能实现动态物体和静态场景光照效果的相互融合。 第55页7.5.3 Light Probes光探头2.案例效果案例效果 图7-76 未接受光探头的光影效果 图7-77 接受光探头的光影效果第5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Unity3D游戏开发标准教程第07章-光影效果课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|