Unity-VolumeLighting组件(体积雾/光效果)使用小记

Unity-VolumeLighting组件(体积雾/光效果)使用小记

Unity的实例《Neno》就使用了VolumeLighting 组件 

突然发现了Unity提供的一个开源组件VolumeLighting ,简单记一下用法。

下载地址:https://github.com/Unity-Technologies/VolumetricLighting

 

Volumetric fog

首先需要在目标相机上挂载一个Volumetric fog

Unity-VolumeLighting组件(体积雾/光效果)使用小记

Global Densit Mult和Constant Fog 都是调雾的总体浓度的

HeightFog 应该是设置高度雾相关的参数

Noise Fog Amount/Scale 噪声雾的强度和细节缩放 NoiseFog设为0就是单纯的按距离设置雾的强度

Lights部分分别是对场景所有的光源(对于Unity自带的Ponit也有效哦,只要加上FogLight脚本)强度的统一调整 以及环境光的强度和颜色

Unity-VolumeLighting组件(体积雾/光效果)使用小记Noise Fog Amount=0

Unity-VolumeLighting组件(体积雾/光效果)使用小记Noise Fog Amount=0.5;Noise Fog Scale=1

Unity-VolumeLighting组件(体积雾/光效果)使用小记Noise Fog Amount=0.5;Noise Fog Scale=2

Wind

风可以让雾移动,当然如果Noise Fog Amount=0相当于没效果,官方以及提供了prefab,拖出来用就好了

Unity-VolumeLighting组件(体积雾/光效果)使用小记这个Gizmo表达的很明确了

Anisotropy

Anisotropy是各向异性,值越大,雾的散射越大,比较适合模拟液滴构成的气团(比如水汽)

光源

光源总共有两个 面光和管状光 但是要想让光源对体积雾产生影响,需要在场景中添加一个LightManagerFogLights ,它的prefab已经放在文件夹中了,拖进场景即可(其实还有有LightManagerFogEllipsoids版本的,略过)


面光和管状光都有做好的prefab,拖进场景就可以用了,这里讲的是两个光源组件

Area Light

Unity-VolumeLighting组件(体积雾/光效果)使用小记

RenderSource 是否渲染网格 Unity-VolumeLighting组件(体积雾/光效果)使用小记Unity-VolumeLighting组件(体积雾/光效果)使用小记

Size调大小,angle调扩散范围

然后是阴影,这里的阴影指的是光源对物体与物体之间产生的阴影,(后面还会有光源对于雾的阴影,两者不要搞混)

Unity-VolumeLighting组件(体积雾/光效果)使用小记Unity-VolumeLighting组件(体积雾/光效果)使用小记

Tube Light

Unity-VolumeLighting组件(体积雾/光效果)使用小记

tubelight不支持阴影,但是可以用ShadowPlane来做一定的模拟,它长这样,Feather值应该是对光线的遮挡强度

Unity-VolumeLighting组件(体积雾/光效果)使用小记

Feather=2和Feather=4

Unity-VolumeLighting组件(体积雾/光效果)使用小记Unity-VolumeLighting组件(体积雾/光效果)使用小记

Point Light

Unity自带的点光源也是可以用的,只要附上FogLight脚本

Unity-VolumeLighting组件(体积雾/光效果)使用小记Unity-VolumeLighting组件(体积雾/光效果)使用小记

FogLight

LightManagerFogLights脚本会收集每个Area/TubeLight的FogLight,Volumetric fog再通过LightManagerFogLights获取这些信息处理雾效,FogLight有两部分,对体积雾的阴影部分只有AreaLight实现了。

Unity-VolumeLighting组件(体积雾/光效果)使用小记

这部分是对光源的强度和范围作出额外的调整最终得到光源相对于体积雾的强度和范围

如下,左边光源的Intensity值为1,intensity Mult值也为1 右边Intensity=5,intensity Mult=0.2,可以看到光源对雾的影响相同,但是右边光源产生的阴影更加重,同时反射也更加强烈

Unity-VolumeLighting组件(体积雾/光效果)使用小记Unity-VolumeLighting组件(体积雾/光效果)使用小记


第二部分是阴影

Unity-VolumeLighting组件(体积雾/光效果)使用小记

注意这里的阴影指得是物体对体积光的遮挡,前面光源中的阴影是物体对物体的阴影,两者是不一样的

右图物体挡住了光源对体积雾的折射  同一时间只能计算单独一个面光对于体积雾的阴影

Unity-VolumeLighting组件(体积雾/光效果)使用小记Unity-VolumeLighting组件(体积雾/光效果)使用小记