【译】LIGHT PROBE PROXY VOLUME:5.4版本功能展示
原文地址:http://blogs.unity3d.com/2016/02/03/light-probe-proxy-volume-5-4-feature-showcase/
原文作者未做版权声明,视为共享知识产权进入公共领域,自动获得授权
UNITY即将推出Light Probe Proxy Volume(LPPV)功能。我将介绍下这个功能是什么、工作流以及一些使用的体验。
Light Probe Proxy Volume是什么?
LPPV是一个让那些不能使用烘焙光照贴图的动态物体使用更多光信息的组件,比如蒙皮或者粒子系统。是的!粒子系统可以通过这个组件得到烘焙的光照信息!
怎样使用LPPV组件
LPPV依赖于Light Probe Group.可以在Component -> Rendering -> Light Probe Proxy Volume下找到,默认情况下是这样:
它是一个需要添加到GameObject上的组件,像添加Mesh或者Light Probe Group组件一样。你希望用LPPV影响的GameObject需要有一个MeshRenderer / Renderer组件,并且把Light Probes属性设置为” Use Proxy Volume”:
你可以浏览其他使用Proxy Volume覆盖的GameObject上LPPV组件的设置,把属性拖拽到你希望改变的Renderers上。
设置包围盒:
设置包围盒有三个选项:
l AutomaticLocal
l AutomaticWorld
l Custom
Automatic Local:
这是默认属性设置,包围盒的计算是在Local空间内。包围盒需要包围所有使用Use Proxy Volume的子物体的Light Probes,Automatic World也是这样。
Automatic World:
包围盒是在世界坐标中进行计算的,这个模式与Automatic Local的区别在于Automatic Local在面对比较多的继承关系时候需要花费更多的时间来计算,但是计算出来的包围盒会更小进而光照数据也更小。
Custom:
这种模式可以使得你在UI中制定包围盒的起点和大小。包围盒是在GameObject的局部空间中设定的。你需要确保所有的renderer在包围盒内。
使用LPPV的性能测试
在4Ghz的CPU上,对一批64个light probe进行插值大概需要1.5ms。对light probe的插值可以是多线程的,如果数目少于64个将只在主线程进行插值。
使用Unity内置的调优器,你将在主线程里面看到BlendLightProbesJob。如果你把light probe的数目设置为超过64个,那么你将在工作线程里面也看到BlendLightProbesJob。
硬件要求:
这个组件需要显卡支持Shader Model 4以及支持32位浮点格式的3D纹理以及线性滤波。
粒子系统中使用ShadeSHPerPixel功能的示例Shader
标准Shaders已经支持此功能,如果你希望把ShadeSHPerPixel功能加到定制的shader里面。请查看下面的例子来看下如何使用此功能: