Unity3D -- 图形 -- 光照

光照(Light)是场景的一个基础组成部分。mesh纹理定义了场景的形状和外观,Light定义3D环境的色彩和气氛。

一个场景中可能会使用多个光照,使用多个光照可能得练习一下,然而效果会很棒的。


Light也是一种GameObject,其属性如下:


这样创建的光是实时渲染的,如果光线是确认不变的,那么可以使用LightMapping.


光照可以用来模拟阳光,燃烧的火柴光,手电筒,炮火,爆炸等。

Type,在Unity中有4种光照:

  • 方向光(Directional light),放置在无限远处,影响场景中的所有物体,就像太阳光和月光。对GPU开销很小,

  • 点光(Point light),射向所有方向的光都相同,就像电灯泡。对GPU开销一般,但是Point light的shadow开销很大。
  • 聚光(Spot light),从一个方向射出一个圆锥体(cone),就像是车的前灯,手电筒。开销很大。

  • 区域光(Area light),光从平面的一个矩形区域的一侧投射出,光会投射到光的范围内所有的物体上,只适用于光照贴图(lightmap) 烘焙。
    矩形的大小由Width和Height以及平面的法线(Z轴的正方向)决定。
    光由整个矩形表面发射出,所以来自受影响的物体的阴影比来自Point和方向光源的更柔软。

Range,光源到物体的距离,只用于Point Light 和 Spot Light。
Spot Angle,只用于Spot Light,表示圆锥体的的角度。
Color,光源的颜色。
Intensity,光的强度。Point/Spot/Area的默认是1,方向光默认是0.5。
Cookie,纹理的alpha通道,被用作于遮罩,通过光照投影,alpha mask调节光亮。如果光照是Spot或方向光,必须是2D纹理,如果是Point光,必须是Cubemap。常用于制作复杂的大气环境。但是VertexLit不支持Cookie.
Cookie Size,Cookie的投影的缩放级别,只用于方向光。
Shadow Type,光照会会投射NoHard 或 Soft 的阴影 shadows。移动端不支持 Soft 阴影(开销很大)。
  • Strength,阴影的黑暗程度。值在0到1之间。
  • Resolution,阴影的细节级别。
  • BiasOffset used when comparing the pixel position in light space with the value from the shadow map. SeeShadow Mapping and the Bias Property below
  • SoftnessScales the penumbra region (the offset of blur samples). Directional light only
  • Softness FadeShadow softness fade based on the distance from the camera. Directional light only
Draw Halo,选中后,一个球形的光环将会被绘制在一个与Range相同大小的半径内,  Halo与 Render Settings 
Flare,在光源处闪耀的 Flare 
Render Mode,光的重要性。影响光的保真度和性能,选项包括
  • Auto,运行时通过光的亮度和当前的质量设置确定。Quality Settings.
  • Important,永远以逐像素的方式渲染。只在重要效果下使用(比如车的前灯)
  • Not Important,永远以最快的方式渲染,顶点/对象的光模式。
Culling Mask,用于选择性地从光的影响下排除一些对象。see Layers
LightmappingLightmapping 模式: RealtimeOnlyAuto 或 BakedOnly; see Dual Lightmaps .
Width(Area lights only).
Height(Area lights only) 

性能考虑
Light可以通过两种方式渲染:
  • 顶点光照,只计算模型顶点的光照,并通过模型的表面插值光照。
  • 像素光照。通过每个屏幕像素计算光照,所以开销很大,老显卡不支持。支持一些特别的特效,比如法线映射,light cookie和实时阴影。
光照是渲染速度的重要影响因素,所以需要在光照质量和游戏速度之间做一个权衡。


提示

  • 用了cookie的Spot lights 在制作从窗口进光效果时极其有用。
  • 低强度的 point lights 可以很好地提供场景深度。
  • 要用 VertexLit shader 做到性能最好。此 shader 只用顶点 lighting 在低端显卡上。
  • 自动地光照可以通过光照贴图投射动态阴影,而不用添加额外的光亮。










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值