Light Probe的作用:烘焙出来的lightmap并不能作用于动态物体。如果场景中有动态物体的话,会显得与烘焙好的场景脱离,尽管使用光照贴图会大大的提升场景的真实感,但是对于非静态物体总是格格不入的,此时就需要利用到光照探头。
Light Probe的构建
- 创建一个空物体作为lightProbe的容器,并为它添加lightProbeGroup组件。可以看到lightProbe组件由8个黄色的采集器组成,它们用于探测环境周围的光线。
对于光照探头的构建,我们一般会构建一个比较密集的阵列,可以通过Eidt lightprobe组件选择Duplicate 复制lightProbe来进行构建,通常都通过顶视图,左视图和主视图来一一构建。这样这些探头就可以用来采集周边环境的光线来反应给其中的物体。
Paste_Image.png接着我们将Plane烘焙成静态的lightmap,Cube作为动态的,当Cube进入光照探头阵列的时候,光照探头的采集器就会以Cube的中心点(Mesh的中心点)为中心点以及最近的探头构建一个“黄色三角形的体积”来对物体进行标注并为动态物体提供周围环境的光照信息(主要是明暗程度的光照信息表现)。
Paste_Image.png对于动态物体默认是让它使用光照探头进行反应的。
Paste_Image.png Paste_Image.png- 此时我们关掉探头的作用。Cube表现光照信息的明暗变化发生了改变。(保持了跟周围环境一个比较协调的光照表现)
光照探头的原理:在场景中这些被标记为探测器的静态探头,它们会在这些位置进行光照采集然后对相邻的几个光照探头所采集的灯光进行插值的计算。
Light Probe的优缺点:
- 优点:
- 性能不错(对比实时阴影性能高很多),适合移动平台,VR平台。
- 配合烘焙的效果很好。(动态物体跟周围环境的搭配会很好)
- 可以可视化编辑Light Probes的分布,不需要代码控制。
- 缺点
- 烘焙后(Build后)才能有效果,不能实时的改变。
- 只能整体进行明暗变化。
在unity5.4版本后,Unity还为提供了一个光照探头的代理。它的作用是为我们比较大的动态物体,提供比较精确的光照信息。之前所使用的lightProbe基本上是用在一些运动着的小型的物体上。如果是大型的物体话,因为lightProbe是通过插值来表现明暗信息的就会不是非常精确。此时就应该使用Light Probe Proxy Volume。
Paste_Image.png Paste_Image.png
网友评论