Unity3D光源组件(Light)详解

发表于2018-05-08
评论0 6.9k浏览
在Unity项目中,灯光和摄像机是非常重要的游戏组件。下面就和大家介绍下Unity3D中的Light光源,帮助大家去掌握它。

Unity中提供了四种光源:
  • Directional light: 方向光,类似太阳的日照效果。
  • Point light: 点光源,类似蜡烛。
  • Spotlight: 聚光灯,类似手电筒。
  • Area Light:区域光,无法用作实时光照,一般用于光照贴图烘培。

接下来介绍光源的参数:如下图

Type:可以选择以上介绍的四种光源类型

Range:设置光源范围的大小,从光源对象的中心发射的距离。只有Point和Spotlight有该参数。

Color:光源的颜色

Instensity:光源的强度

Cookie:用于为光源设置拥有alpha通道的纹理,时光线在不同地方有不同的亮度,如果是聚光灯(Spotlight)和方向光(DirectionalLight),可以指定一个2D纹理。如果是一个点光源(Point light),必须指定一个Cubemap(立方体纹理)。

Cookie Size:用于控制缩放Cookie投影,只有方向光(DirectionalLight)有该参数。

Shadow Type:阴影类型
  • No Shadows 关闭阴影
  • Hard Shadows 硬阴影
  • Soft Shadows 软阴影
个人理解:与现实世界对比,硬阴影就好比太阳光特别的强烈,照出来的影子有棱有角;软阴影就好比阴天的时候,但是有有那么一丝丝阳光,影子相比没那么明显,阴影比较平滑,需要注意的是软阴影会消耗系统更多的资源。
注意:默认设置下,只有Directional light光源才可以开启阴影,Pointlight、Spotlight光源开启阴影的话会弹出提示(Only directionallight have shadows in forward redering),意思就是说只有Directionallight光源在Forward模式下才可以开启阴影(只有发不成web版或单机版才支持)

  • Strength:强度,就是晴天跟阴天的效果吧
  • Resolution:控制阴影分辨率的质量
  • Bias:设置灯光控件的像素位置与阴影贴图值比较的偏移量,取值范围0~0.5,当值过小,对象表面会产生self-shadow,就是物体的表面会有来自于自身阴影的错误显示;当值过大,阴影就会较大程度的偏离投影的对象。
  • Softness:控制阴影模糊采样去的偏移量,只有方向光设置为软阴影的情况才会启用。
  • Softness Fade:控制阴影模糊采样区的偏移量,有有方向光设置为软投影的情况下才会启用。

Draw Halo:勾选此项,光源会开启光晕效果。

Flare:耀斑/炫光,镜头光晕效果。

RenderModel 渲染模式
  • Auto:自动,根据光源的亮度以及运行时Quality sSetting的设置来确定光源的渲染模式。
  • Important:重要,逐像素进行渲染,一般用于非常重要的光源渲染
  • Not Important:光源总是以最快的速度进行渲染。

Culling Mask :剔除遮蔽图,选中层所关联的对象将收到光源照射的影响。

Lightmapping:光照贴图,用于控制光源对光照贴图的影响模式
  • RealtimeOnly:实时灯光计算,不参与光照贴图的烘培计算。
  • Auto:自动
  • BakedOnly:用于光照贴图的烘培,不进行实时灯光计算。
需要注意的是,如果场景中对光源要求不高的话,就尽量选用Directional Light光源,另外两个光源(PointLight,Spotlight)会比较消耗内存资源。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引