游戏开发论坛

 找回密码
 立即注册
搜索
查看: 12855|回复: 0

【UE4_光照】UE4中光照的常见问题和解决方案(一)使用手册

[复制链接]

4万

主题

5万

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
85814
发表于 2020-12-10 11:46:11 | 显示全部楼层 |阅读模式
UE4光照烘焙这一块常见问题整理的第一章。

关于本指南

好游戏和优秀游戏的差距往往在于照明。即使是最优秀的模型,如果以较差的阴影分辨率渲染,并且没有利用适当的后期处理设置,也会看起来十分糟糕。在虚幻引擎中,这意味着要深入挖掘我们强大的照明、反射和后期处理设置。本《故障排除指南》尽量包含用户在最初深入挖掘照明和渲染系统时遇到的一些常见问题。本指南并不全面,但会随着引擎变化动态更新,所以我们会补充和变更此处提供的建议。本指南旨在为尝试充分利用引擎渲染系统的美工提供一个良好的开端。

一般照明

为什么我的阴影是黑色的?

用照明术语来说,深黑色阴影通常意味着没有辅助光。这种情况通常发生于单一方向光照是为了表示太阳的室外环境。UE4 内置了一种方法来提供全局影响辅助光,我们称之为天空光。

想要进一步了解天空光?

https://docs.unrealengine.com/en-US/BuildingWorlds/LightingAndShadows/LightTypes/SkyLight/index.html

微信图片_20201210113230.JPG
无天空光照

微信图片_20201210113238.JPG
有天空光照

将 BSP 转换为静态网格时光照贴图设置无效

从 4.6 及后续版本开始,任何转换的 BSP 的默认光照贴图分辨率将设置为 4,但仍需要根据下列步骤设置正确的光照贴图坐标索引。

在将 BSP 几何结构转换为静态网格时,很可能会看到如下结果:

微信图片_20201210113240.JPG

从 BSP 箱体转换的静态网格

不必担心,这是正常情况!由于我们现在已经将 BSP 转换为了静态网格,所以需要确保指定正确的光照贴图通道。为了方便操作,在转换 BSP 时,会自动为你生成光照贴图 UV。唯一没有自动设置的是需要确保指定正确的通道和分辨率。

微信图片_20201210113242.JPG
静态网格编辑器“细节”面板

  • 为执行此操作,打开新创建的静态网格。查看右侧的“细节”面板,并找到“静态网格设置”选项卡。
  • 在这里需要设置光照贴图分辨率。这可以是 2 的任何幂次方(即32、64、128 等)。这将是光照贴图纹理的分辨率。光照贴图分辨率越高,烘焙到纹理中的阴影质量越好,但也会增加内存占用量和照明构建时间。
  • 接下来,将光照贴图坐标索引设置为 1(这是大多数情况下使用的光照贴图 UV 通道)。这是不会有任何重叠面的光照贴图 UV 位置。
  • 如果想要查看光照贴图 UV 的效果,可以单击工具栏中的 UV 对应按钮,从按钮右侧的下拉列表中选择“UV 通道 1”。

如果我完全不想要光照贴图或游戏不需要光照贴图呢?

有时,游戏并不需要光照贴图,因为已经选择只使用可移动(动态)照明。有一个选项可以禁用全部光照贴图,方法是打开“全局设置”,选中“不使用预先计算的照明”选项。当重新构建照明时,会删除之前烘焙过的所有光照贴图。

禁用静态照明有两种方法:

微信图片_20201210113244.JPG
项目设置、“渲染”选项卡、“照明”选项卡

特定于项目:禁用静态照明

  • 菜单 > 编辑 > 项目设置
  • 转至“渲染”选项卡 >“照明”选项卡
  • 取消选中允许静态照明选项
  • 要使该选项彻底生效,需要重新启动编辑器

特定于关卡:禁用静态照明

微信图片_20201210113245.JPG
全局设置

1.打开“全局设置”

微信图片_20201210113247.JPG
光照系统设置

2.转至“光照系统”选项卡

3.取消选中不使用预先计算的照明

微信图片_20201210113248.JPG
不使用预先计算的照明警告

4.你会看到一个警告。单击“确定”。

5.构建照明以擦除已经存储的照明数据。

用于单面网格的双侧照明,或者为何我的照明是穿过屋顶的?

微信图片_20201210113251.JPG
用 3DS Max 创建的资产

在该图中,你已经看到我创建了一面效果很不错的墙和一个管子,如果我把管子放倒的话,走进去会很瘆人!

微信图片_20201210113252.JPG
用 UE4 创建的资产

整体看起来不错,效果理想,而且在我自己的选择的建模程序中能看到网格的两个面。但是,导入到虚幻引擎 4 之后就变样了!

那么为何会如此呢,难道是因为这样就是不对吗?

这完全是 100% 正常的(一语双关)。即使这个平面看起来正常,但是背面并没有像管子网格最靠近我们的这一面一样进行渲染。

微信图片_20201210113254.JPG
用 UE4 创建的资产的线框

默认情况下,在建模程序中创建几何结构时,软件会设置为让你看到几何结构的两个面。

在 UE4 中,会自动剔除多边形的背面以提高性能,每一个细节都会有助于性能的提高!并不总是需要显示额外的多边形或者渲染可能并不需要的面,否则,会调用额外的绘图功能,从而导致性能变慢,在一些情况下,影响可能并不明显,但针对特定平台进行开发或者每次调用绘图功能都要进行大量计算时,影响就会凸显出来。

为了理解为何只能看到一面,我们可以在静态网格编辑器中打开网格,勾选工具栏选项“法线”。就会看到绿色线条指向多边形面的方向。在下面这个管子资产图形中,我们可以看到,不可见面的线条指向网格中心。这是可以观察到可见面的方向。

微信图片_20201210113256.JPG
静态网格编辑器

专家提示:在 UE4 中,如果有任何网格包含似乎不可见的几何结构或者缺少某些面,可以在这里检查法线,然后再去建模软件中解决该问题。

现在,我们已经扫清了障碍,可以直奔主题,通过一些复选框和材质解决不可见面的问题。

1.(仅限静态)像双面一样照明

在“细节”面板中,针对关卡视口中选中的资产启用该选项。

选中该选项后,当构建照明时,光照系统会将该几何结构计算到烘焙中。它会投射阴影以便将其烘焙到光照贴图纹理中,虽然我们从这个角度看不到阴影。这并不适用于可移动/动态照明,因为虚幻引擎 4 会使用延迟渲染管道。

微信图片_20201210113257.JPG
关卡视口中资产的“细节”面板

微信图片_20201210113259.JPG
最终结果

创建双面材质

打开材质编辑器,在左侧的“细节”面板中,选择“双面”选项。

保存并编译材质以使该设置生效。

这种方法可以用于静态/静止/可移动照明。由于正在渲染的是材质,因此之前不可见的面不会再被剔除,因此可能会阻挡光线。但请注意,现在会渲染网格的两个面,因此会增加绘图调用。正如之前所述,在较小场景或设置中这未必会影响性能,但如果你的目标硬件很容易受到性能影响则另当别论。

微信图片_20201210113302.JPG
材质属性“细节”面板

微信图片_20201210113304.JPG
最终结果

为何看起来与原来完全不同,即引擎比例调整

微信图片_20201210113307.JPG
引擎比例调整设置

引擎比例调整设置可以通过工具栏中的“设置 > 引擎比例调整”选项进行访问。

该设置的目的是按比例调整引擎渲染设置,以适应难以流畅运行的机器。默认情况下,编辑器会在 FPS 降得过低时降低这里的设置。

“阴影”选项会直接影响任何可移动(动态)阴影的阴影距离。当列表设置为“可移动”或者尚未构建静态照明时确实如此,因为此时会使用动态阴影作为临时参考,直到照明构建完成并烘焙到光照贴图中为止。

下面的图形演示了“引擎比例调整”选项卡中每种阴影设置的阴影距离

微信图片_20201210113308.JPG
Epic

微信图片_20201210113310.JPG

微信图片_20201210113311.JPG

微信图片_20201210113313.JPG

如果你的关卡中没有阴影,则最好先从这里开始检查。即使用的是最顶级的系统,这些设置仍会自动设置为较低值,并且在 FPS 降得过低时保持不变。最好总是先检查这里的设置,然后再查看可能的其他问题。

如果因为某种原因而不需要自动按比例调整,可以取消选中“引擎比例调整”窗口底部的对应选项来将其禁用。需要注意的是,这样可能会导致性能问题,因为编辑器不会再监视需要调整为较低设置以保持正常性能的情况。

进一步了解引擎比例调整

https://docs.unrealengine.com/en-US/TestingAndOptimization/PerformanceAndProfiling/Scalability/ScalabilityReference/index.html#scalabilitysettings

为何我的照明上有一个红色的“X”?

微信图片_20201210113315.JPG
重叠静止照明

静止照明限制为最多可以重叠 4 层阴影投射照明。如果添加了第 5 层,就会出现一个红色的“X”,表示这一重叠区域中半径最小的照明将还原为动态照明。这会导致性能问题,因为投射阴影的动态照明比烘焙照明相比耗用的资源更多。

如果照明是使用任何静止光照构建的,并且这些静止光照是重叠问题光,那么就会显示一个警告,详细指出哪个是问题光,哪个是衍生光。

为了更正此问题,请确保一个区域中的阴影投射重叠静止光照不会超过 4 层。可能需要删除光照,禁用投射阴影标志,或者调整半径直到不再重叠为止。

如果只放置了三层静止光照,而第 4 层光照上出现了红色 X,请确保关卡中没有其他静止光照会导致重叠。这往往是因为定向光设置为静止而导致发生此问题。

想要进一步了解静止光照

https://docs.unrealengine.com/en-US/Resources/ContentExamples/Lighting/2_2/index.html

不合理的光照贴图 UV 布局

实现良好的光照贴图烘焙的关键就是正确设置光照贴图,让它能够有效地利用 0-1 UV 空间。超出该空间范围或者有重叠面时,就会在贴图检查警告中看到“光照贴图重叠 xx%”!

建议首先阅读我们提供的关于正确设置光照贴图的文档。在以下地址阅读关于 UE4 光照贴图的所有资料。

https://docs.unrealengine.com/latest/INT/Engine/Content/Types/StaticMeshes/LightmapUnwrapping/

以下是设置光照贴图时需要谨记的要点:

  • 不能有重叠面
  • 不能超出 0,1 UV 空间范围
  • 平面贴图不是最佳方法,通常会导致光照贴图出现许多错误
  • 要充分利用 0,1 UV 空间,以便不会浪费纹理空间。
  • 如果你的网格较大并且可能会很复杂,为了达到良好的光照贴图分辨率以及一些其他性能因素(例如遮蔽剔除),最好细分成多个部分。
  • 使用尽可能最低的光照贴图分辨率,以节省运行时纹理内存。
  • 确保 UV 岛之间至少有 2 个像素的间隔,以防止发生光线透射。光照贴图的目标分辨率可能会导致发生此情况。

后期处理全局光照设置的作用

后期处理体积可以成为处理场景照明的强大工具,尤其是静态照亮区域。你可以通过调整后期处理设置中的下列设置,进行轻松控制。

微信图片_20201210113319.JPG
GI 后期处理设置

在以下这个简单的示例中,完全是用发光材质表示杆,在房间设置一个暗淡的点光源,并设置了两个重叠的后期处理体积进行控制的。这是使用后期处理伪造某种动态 GI 的极其低端的方法!

设置:

  • 利用非常暗淡的点光源来表示房间中某种柔和的环境光。
  • 对移动杆应用了简单的发光材质,并用一个乘数来控制亮度。
  • 围绕着场景运用了一个后期处理体积,使用的是默认设置,除非要针对基本场景更改其他设置,否则其实并不需要该设置。
  • 第二个后期处理体积是与移动杆相连的,跟随着杆移入和移出视线。长度上比移动杆稍大,这样就会存在一部分的重叠。这里进行了三处设置调整,令其更顺利地发挥作用。

  • “间接照明颜色”设置为类似于移动杆自发光色的颜色,但颜色较浅。
  • “间接照明强度”进行了调整,令人感觉这种自发光并没有投射到房间里。
  • 后期处理体积的转接半径用于转接两个体积,在房间里形成一种自然的光线渗透效果。

微信图片_20201210113320.gif

这完全是用后期处理体积和静态照明控制的!如果需要作出一些风格选择,能够控制烘焙 GI 可以让你更多地控制整个场景,不必完全依赖于照明构建就可以达到 100% 的精确性。

关节囊阴影

关节囊阴影是 4.11 及后续版本中的新功能,让骨架网格能够更好地融入到间接照亮和直接照亮区域中,并带有柔和阴影。

如果你尚未使用过该功能,该页面教程可以帮助你入门。
http://timhobsonue4.snappages.com/lighting-capsule-shadows
文献地址:
https://tinyurl.com/yyghrdqk

相关阅读:

【UE4_光照】UE4中光照的常见问题和解决方案(二)使用手册

来源:Game艺视界
原文:https://mp.weixin.qq.com/s/uSj1jFwrWgxRJcNoBBwqPA
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-21 21:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表