体积雾

::: hljs-center ![image.png](https://cos.easydoc.net/78417003/files/kk6oip0f.png) 体积雾使用 ::: # A. 体积雾控制 设置和调整体积雾时,你可以全局控制它,也可以在场景中局部控制它。全局控制功能使你能够使用指数高度雾(Exponential Height Fog)组件控制整个场景的雾。 局部控制功能使你能够通过在可以生成粒子的区域中使用粒子系统的方式控制雾。 # B. 全局控制 要控制体积雾,你可以调整 指数高度雾(Exponential Height Fog)中的属性和每个光源上的属性,以控制光源的贡献量。 # C. 指数高度雾 体积雾功能按钮位于 指数高度雾(Exponential Height Fog) 组件的体积雾(Volumetric Fog) 部分下。指数高度Distribution规定体积雾的全局密度。 ::: hljs-center ![image.png](https://cos.easydoc.net/78417003/files/kk6ok6fc.png) 指数高度雾效果 ::: # D. 属性 ## a.属性 ::: hljs-center ![image.png](https://cos.easydoc.net/78417003/files/kk6olu1n.png) ::: ## b.光源 可通过调整每个光源的"细节(Details)"面板上 光源(Light) 部分下的下列属性控制每个光源对场景的贡献量(以及它是否向雾投射阴影)。 ::: hljs-center ![image.png](https://cos.easydoc.net/78417003/files/kk6oov4c.png) ::: # E. 本地控制 使用体积域的材质会为空间中的给定点描述反射率(Albedo)、自发光(Emissive)和消光(Extinction)。反射率(Albedo)介于[0-1]的范围中,而自发光(Emissive)和消光(Extinction)是值大于0的全局空间密度。 # F. 临时二次投影 体积雾使用的体积纹理(体素)的分辨率相对较低,而且与摄像机视锥一致。体积雾逐帧使用具有不同次体素抖动的极强临时二次投影过滤器, 以平滑锯齿。但它也会产生负面影响——闪光灯和枪口火舌等变化速度快的光源将会留下光线轨迹。要禁用这些光源的贡献,将 体积散射强度(Volumetric Scattering Intensity)设置为0。 体积雾上的预计算光照 体积光照贴图使每个雾体素都有预计算光照内插到其在空间中的位置,从而支持了体积雾的静态光照应用。 ::: hljs-center ![image.png](https://cos.easydoc.net/78417003/files/kk6opwpw.png) 点光源光线反射 ::: 静止光源的间接光照存储在光照贴图中,现在会影响雾。 ::: hljs-center ![image.png](https://cos.easydoc.net/78417003/files/kk6oqq5k.png) 体积光照 ::: 天空光照现在也可以正确地投射阴影,防止室内区域变成大雾效果。 静态光照的静态和自发光对雾的影响没有任何开销,因为它们全部都合并到体积光照贴图中了。 # G. 性能 体积雾的GPU开销主要通过体积纹理分辨率控制,可在引擎可延展性 的阴影级别中设置它。设置为 高(High)时,体积雾在PlayStation 4上需要花费1毫秒, 设置为 Epic 时在NVIDIA 970 GTX上需要花费3毫秒(因为需要运算的体素量是八倍之多)。 • 使用体积(Volume) 域的粒子会导致GPU开销显著增高,具体取决于它们的3D过度绘制和指令数。使用控制台命令`profilegpu`可查看此开销。 • 启用了投射体积阴影(Cast Volumetric Shadow) 的点光源和聚光源的开销约为不投射阴影的点光源和聚光源的开销的三倍。 **当前受支持的功能** 以下列表中包含了体积雾的当前受支持的功能: • 单个定向光源,具有来自级联阴影贴图的阴影投射或静态阴影投射,带光源函数。 • 任意数量的点光源和聚光源,具有动态或静态阴影投射(如果启用了 投射体积阴影(Cast Volumetric Shadowing))。 • 静止天空光照的阴影投射。 • 通过体积光照贴图实现的预计算光照(静态光源的直接光照,固定光源的间接光照)。 • 单一天空光照,具有来自距离场环境光遮蔽(Distance Field Ambient Occlusion)(如启用)的阴影投射。 • 粒子光源(如果 体积散射强度(Volumetric Scattering Intensity)大于0)。 另外,半透明度可能会受到体积雾影响,具体取决于它在场景中的位置。默认情况下,半透明度按顶点计算雾,因此曲面细分低的水平面可能导致 瑕疵。要解决此问题,可将这些材质设置为逐像素计算雾,方法是在"材质细节(Details)"中启用 逐像素计算雾(Compute Fog Per-Pixel)。