Unity光照系统

1、Unity引擎中提供的光照系统叫EnLighten,作为引擎渲染的一部分,负责构建场景中的灯光。

(1)Light组件简介

  Unity的灯光组件大致分为:光源组件和烘焙组件

  光源:自己能发光,分为Directional Light,Point Lignt,Spot Light。

(2)常见光源类型

  a、Directional Light

  平行光,模仿太阳光,没有真正的“源”,整个场景中任何一个角落的光照强度是相等的。

  b、Point Lignt

  点光源,从中心呈球形向四周扩散,例如火把,室内灯具。Point Light的效果受到范围(Range)和强度(Intensity)的影响。和Directional Light不同,点光源的效果受到位置的影响。

  c、Spot Light

  聚光灯,从中心呈扇形向某一个方向发出,受扇形角度(Angle)和范围(Range)的影响。一般模拟手电筒和车灯。

  d、Area Light

  区域光,与上面3个最大的不同在于只能在烘焙的情况下使用。而Directional Light,Point Lignt,Spot Light能在实时(RealTime)和烘焙(Bake)两种情况下使用。

2、全局光照

实际开发中,大多数情况下灯光都是相互作用的,如灯光照射到物体A上,A反射的光会照射到物体B,这种关联关系是通过全局光照(Global Illumination,GI)系统来进行处理的。

全局光照简介:

  全局光照极大提升了场景中光照的真实性,但是这种程度的实时计算是非常消耗资源的。但从另外一个方面说,我们只需要对场景中的动态物体进行实时计算,保证光照效果,但是对于固定的物体,不应该浪费太多资源。

  这种技术在Unity中称为烘焙。当对场景进行灯光烘焙后,场景中的光照信息就会存储在Lightmap中,当场景运行时,Unity就会读取Lightmap中的数据,无需再次进行计算,避免了不必要的性能消耗。

猜你喜欢

转载自www.cnblogs.com/jiaxinli/p/11725005.html