Unity光照系统

1、光照系统中分为四种光源,分别为DirectionLight环境光(平行光)、SportLigth聚光灯、PointLight点光源、AreaLight区域光

(1)DirectionLigth平行光

Type(种类):在此项中可以对灯光的种类进行设置,方便快捷,如果建立灯光出错,可以在这里进行修改。

Color(颜色):选择灯光的颜色,包含RGBA四种属性

Mode(烘焙模式):有Realtime(实时烘焙),Baked(仅对静态物体烘焙),Mixed(对静态非静态物体都进行烘焙)。

Intensity(强度):光照的强度   Indirect Multipler:间接增量

Shadow Type(阴影种类):包含三个选项,分别是No Shadow(无阴影),Hard Shadow(低质量阴影),Soft Shadow(高质量阴影)。Hard Shadow和No Shadow对性能消耗的比较小。其中的参数为Strength:阴影的强度,数值在0~1之间,1时阴影最明显,0时无阴影。Resolution:阴影的分辨率。Bias:控制阴影被光线推离得距离。Normal Bias:阴影正常偏移。Near Plane:最近裁剪面。

Cookie(遮罩):通过设置具有Alpha通道的图片,使阴影出现相对应的图案。 

Cookie Size(遮罩大小):控制图片的大小

Draw Halo(光晕):勾选之后,灯光周围会出现一圈光晕。 

Flare(耀斑):按照Asset→Import Package→Effect依次导入,再点击Flare后的小圆圈,会有三个选项出现,这三个选项都比较接近真实的物理光照,达到逼真的效果。这里要注意,Directional Light的Flare设置,是对天空盒上的太阳进行修改,其他三个Light则是对场景中的灯光组件进行更改 

Render Mode:渲染模式

Culling Mask(剔除遮罩):通过设置物体的Layer层,使得该层的物体接受(或不接受光照)。 

(2)PointLight点光源

相较平行光,多了一个Range(范围)线条组成的一个圆,即点光源的范围

(3)SpotLight聚光灯

Directional Light基本相同。不同之处:Range代表照射光线的远近,Spot Angle代表照射的范围。 

(4)AreaLight区域光

Type后,有Baked Only这个提示,这种灯光仅限于烘焙使用。它只能作用于静态物体,通过烘焙来生成光照贴图,从而极大的减少了性能的开销。

一般可以用在房屋壁灯或者显示器等光照效果中。

 

2、光照系统又称照明系统; 从字面意思理解,光照系统的作用就是给我们的场景带来光源,用于照亮场景。

类型:实时光照、烘焙光照

实时光照:

实时光照全称为 Precomputed Realtime GI(预先计算的实时全局光照);GI 全称是 Global illumination(全局光照)

Unity5.x 光照系统默认使用的就是实时光照类型。

光照结论:

-1:所有的灯光都真实的参与运算,可以动态的改变任何的灯光(位置,颜色,强度….),且随着改变,灯光对场景环境的影响也是实时的。

-2:所有的场景环境模型,也同样是真实的参与运算,这些场景模型也是真实的受到各种光源的影响。

-3:光源真实的影响环境,环境真实的受光源影响。

Lighting面板相关属性:

(1)Environment:SkyBox Material天空盒材质    

Sun Source:太阳,一般是DirectionLight

Environment Lighting:Source——Skybox天空盒、Gradient梯度、Color颜色     Intensity Multiplier——强度乘积

Ambient Mode——Realtime实时、Baked烘焙

Environment Reflections:Source——Skybox天空盒、Custom自定义       Resolution——分辨率    Compression对反射贴图的压缩——Auto自动、Compressed压缩、UnCompressed未压缩       Intensity Multipler——强度乘积      Bounces——反射反弹

(2)Realtime Lighting

Realtime Global Illuminatic——实时全球照明

(3)Mixed Lighting

Baked Global Illuminatic——烘焙全球照明

Lighting Mode——Baked Indirect间接烘焙     Distance Shadowmask距离阴影遮罩      Shadowmask阴影遮罩      Subtractive混合光照模式

(4)LightMapping Setting光照贴图设置

https://blog.csdn.net/daijinghui512/article/details/51908668

LightMapper——Enlighten全局照明光照贴图      Progressive(preview)渐进光照贴图技术

Indirect Resolution——间接分辨率   texels per unit单位纹理

Lightmap Resolution——光照贴图分辨率  texels per unit单位纹理

Lightmap Padding——光照贴图填充   texels 纹理

Compress Lightmaps——是否压缩光照贴图

Ambient Occlusion——环境光遮蔽   值越高,遮挡地区得到的光比差越大

Final Gather——用FG技术来产生烘培数据,这种技术时间会长一些http://blog.sina.com.cn/s/blog_46c56d9a0100gqbv.html

Directional Mode——Directional有方向、Non-Directional无方向

Indirect Intensity——间接强度

Albedo Boost——反照率增强

Lightmap Parameters——Default Medium默认中等

(5)Other Settings

Fog——是否开启雾效果

Halo Texture——光晕贴图

Halo Strength——光晕强度

Flare Fade Speed——耀斑渐变速度

Flare Strength——耀斑强度

Spot Cookie——带有遮罩的聚光

(6)Debug Setting:

Light Probe Visualization光照探针可视化

Only Probes Used By Selection只有选择的探针 All Probes With Cells 所有的探针可视化  All Probes No Cells 所有探针不可视化

Display Weights——显示权重

Display Occlusion——显示遮挡

 

3、烘焙步骤

烘焙光照全称为 Baked GI(烘焙全局光照)

1、Lighting 面板选择要使用的光照系统模式,并取消 Auto 选择状态。

2、所有参与烘焙的光源,自身的灯光组件中的 Baking 选项要设置为 Baked。默认是 Realtime,这个 Baking 根据当前场景的要使用的光照系统的模式进行选择和设置。

3、所有参与烘焙的场景模型物体,自身要设置为 Static,设置完毕后,这些物体就变成了静态物体,场景运行后,是无法改变它们的位置的。

4、完成了前面的操作,就可以点击 Lighting 面板下方的“Build”按钮,进行光照贴图的烘焙生成

问题:场景模型为什么要静态的?

因为只有静态的模型,才能参与烘焙渲染,烘焙渲染是要生成光照贴图的。生成的光照贴图和场景模型是一一对应的。贴图是固定的,如果你的模型是非静态的,就表示模型可以移动,模型动了的话,光照贴图就偏了。为了避免这样的情况,Unity 引擎只允许静态的模型参与光照烘焙过程。

 

4、灯光探照组Light Probe Group

在使用 Unity 开发移动平台的应用(游戏,VR,AR)时,为了保障应用的的运行帧率,我们一般将场景中最消耗资源的“实时光”烘焙成“光照贴图”。光照贴图保存了场景中所有的静态物体的光照效果,但是场景中的非静态物体,比如:游戏角色,NPC,这些能动的角色,它们身上就不会出现光照效果。那么如何解决这个问题那?? 
Unity 为了应对这种情况,推出了一个专门解决该问题的组件:“Light Probe Group”:灯光探头组。

作用:使用灯光探头组组件,我们可以在烘焙后的场景中,模拟实时光照状态下的效果。

使用步骤:Light –> Light Probe Group 添加组件      点击组件上的 Edit 按钮,在正交视图下添加新的“探头”,并调整位置。

注意事项:摆放“探头”要让探头成为一个“体积”,我们的角色在整个空间内移动的时候,无论移动到任何地方,都处于一个“体积”内,也就是说触发 4 个探头。

组件原理分析:在空间内摆放 N 个灯光探头,成一个体积状态。然后烘焙光照贴图,在烘焙光照贴图的同时,也会烘焙这些灯光探头,这些探头会记录下当前自己所在位置的灯光信息。然后当我们的非静态角色模型,进入到探头的范围内,角色模型会自动获取自己周围的探头上记录的光照信息,进行插值运算后,在角色模型身上模拟出真实光照的效果。

 

5、反射探头Reflection Probe

创建一个新的反射探头Light-->Reflection Probe

组件分析:

  • 反射探头这个组件由一个“立方体空间”和一个“反射探头”组成;
  • 反射探头配合 Lighting 面板,同样分实时模式和烘焙模式;
  • 立方体的大小我们是可以调整的,反射探头的位置同样是可以调整的;
  • 如果反射探头的类型设置为了 Baked 后,则该反射探头只会反射周围的静态物体。
  • 所有处于该立方体空间内的模型,只要它们的金属度平滑度比较高,就会出现反射效果,这个反射效果其实就是取的反射探头的数据;
  • 环境中默认存在的反射探头,是无限大的,和天空盒是完全重叠的;
  • 反射探头是可以单独烘焙的。

反射探头参数:

  • Type[类型]:设置当前反射探头是烘焙类型还是实时类型。
  • Box Projection[盒模型投影]:很关键的一个参数,但是目前不方便测试,后续的案例中重点演示。
  • Box Size[空间大小]:设置立方体空间的尺寸。
  • Box Offset[空间偏移]:设置立方体空间的整体的偏移。
  • Resolution[分辨率]:烘焙后的反射探头其实会输出一张贴图到我们的项目中,这个分辨率就是设置这张贴图的分辨率的,分辨率越高,反射效果越清晰,反之亦然。
  • Clipping Planes[裁剪面(反射范围)]:反射探头会反射该范围内的物体。

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值