您当前的位置:首页 VR开发 UE4 正文

Swarm Agent联机渲染代理故障排除指南

查看: 1123| 评论: 0 2017-7-7 03:42 PM| 发布者: PeckBang

Swarm Agent联机渲染代理故障排除指南


        最近小编发现很多人在使用Swarm Agent时遇到了这样那样的问题,所以我们找到了一篇故障排除指南来分享给大家,希望能给大家带来帮助。本文经过群友推荐,原文由Tim Hobson撰写,我们52VR的编辑晓辰翻译整理了这篇文章,大家快来围观啊!

Swarm Agent联机渲染代理故障排除指南


Swarm Agent联机渲染代理故障排除指南


目录

*关于本指南

*联机渲染代理(Swarm Agent)资料及其他链接

*推荐与提示

*在虚幻引擎4中使用光照烘焙的常规建议

*减少搭建次数

*搭建大世界

*常问问题

*“Lightmass Crashed(光照烘焙崩溃)”的常见报错信息

*“内存不够”

*“断言失败: (Index>=0)&(Index

*为什么我的光照构建卡在了[X]%,或者为什么构建光照要花那么长的时间?

*为什么在构建光照时联机代理要占用全部CPU

*为什么当我的光照被设定为移动/动态光照时用不了联机渲染代理?

*如何使用我的GPU来构建光照?或者为什么在构建光照时用不了我的GPU

*如何获得或查看我的联机渲染代理(Swarm Agent)日志?

*如何“清理”或“验证”我的联机渲染代理?

*我的联机数据缓存储存在哪里,我能变更它的位置吗?

*“光照构建失败。联机渲染代理启动失败”是什么意思,以及解决方法?

*如何将联机渲染代理设置为最高优先权?

*为什么联机渲染代理启动不了,或者“UnrealLightmass.exe-应用程序错误”是什么意思?

*联机渲染代理失败,并出现IOException错误

*Swarm 日志:系统.网络.联机错误/联机渲染代理/其他进程使用的协调器端口(Swarm Log: System.Net.Socket Error/Swarm Agent/Coordinator Port Used By Another Process


关于本指南

        本指南旨在提供一些在虚幻引擎4中使用光照烘焙构建静态光的最佳方法,解决一些使用联机渲染代理时出现的常见问题。由于引擎一直在更新换代,所以我们不能说这是一篇完整的综合性的指南,但是我们会一直在此添加、变更相关内容。

        联机渲染系统是一个用于处理单系统的虚幻全局光照运算的程序。这个程序可以通过网络将工作负载分配给靠联机协调器(Swarm Coordinator)联机在一起的其他电脑。很大程度上,大多数人会忽视联机渲染代理,因为从启动到执行任务到完成光照构建后关闭的过程中大家都不会使用网络分布来光照构建。

联机渲染代理(Swarm Agent)资料及其他链接
全局光照烘焙
联机渲染代理资料
虚幻开发工具包-联网 联机渲染代理(UDK-Networking Swarm Agent)
Brian Goodsell特别指导:给多台机器设置联机

推荐与提示

 

在虚幻引擎4中使用光照烘焙的常规建议

 

减少搭建次数


*光照烘焙重点区域(Lightmass Importance Volumes

 

        使用光照烘焙重点区域(Lightmass Importance Volumes)时,你得知道自己想要使用的次数,并不限于同等层级的单个背景。设置这些区域是为了将光子集中在玩家所在的需要更高质量光照的单一区域。区域外的所有内容将仅获得光照单反射,看上去没有区域内生成的光照的品质那么高。通过使用这些区域可以减少场景所需的运算量,这样可以有助于增加光照构建。需要注意的是,这些区域并不是为了扩展到极限尺寸,这样就违背了它们的用途和目的。

 

        更多内容请看资料《光照烘焙基础知识》

*光照贴图处理器

        分辨率是决定联机渲染代理构建场景所需时间的重要因素。你的网格的光照贴图分辨率越高,运算和生成这些材质所需的时间就越长。只要能保证你要的满意效果,则使用的分辨率越低越好。

不推荐大家将所有的静态网格设置为较高分辨率。假如你发现你必须将网格设置为较高分辨率,你可能想把网格缩小成较小的部分从而有效使用Lightmap UV(紫外线光照贴图),或者你可能仅仅需要重组Lightmap UV,通过优化使用0,1 UV空间来生成更好的效果。

*植被工具(Foliage Tool):光照贴图分辨率

        对于放入植被工具(Foliage Tool)的实例静态网格,这些资源将会使用静态网格光照贴图分辨率的默认设置。这样可能在你构建光照是生成警告。你最好进入植被工具的十里设置,将光照贴图分辨率设置为4或8这样的较低值。凭借实例静态网格就足够了,这取决于已经绘制在场景里的静态网格实例的数量。这些将聚集成一个以群集尺寸为基础的单一光照贴图。

Swarm Agent联机渲染代理故障排除指南


*资源和光照的数量

        在固定场景或静态场景中投射阴影的资源的数量和阴影透射光的数量,将会添加使用光照烘焙时需要的运算量。这些运算量能够直接影响联机渲染代理需要处理的工作负载以及光照构建需要的时间。

*系统规格

        联机渲染代理是一款典型的CPU密集型程序,需要大量的运算。根据你的系统规格,这将加速或减慢这个过程,甚至会导致光照烘焙崩溃。一个快速的CPU可以有助于提升运算速度。所需内存量取决于场景大小、光照数量以及被运算的资源。如果内存用完,那么光照烘焙就会崩了。这种情况经常被报告为Bug,但是这只是你的系统设置的局限性。请看上面提到的其他提示,可以帮助你降低出现这种情况的可能性;或者请去增加你的系统内存。

搭建大世界

        假如你的项目需要使用大世界,甚至是具有数以千计的资源,实例植被, etc的完全开放的世界,一般不推荐大家使用光照烘焙来给这些类型的世界构建光照。

        也许有人会争辩说教科书上写的是“静态光照对于性能更好,产生的效果也更好。”是的,这句话说的没错,但是有限定条件。这并不是说静态光照不能用于大世界。我只是说静态光照不是一个理想工具,这是因为内存要用来储存所有生成的光照贴图材质,还因为一开始构建关卡所占用的内存量。

        大型世界和开放世界通常使用动态光。相较于动态光照,静态光照在运算世界里的负担为零,所以这看起来违反直觉。这也是真的,但是你不需要计算阴影,相反你将必须注意为所有那些网格加载的光照材质。专注使用动态光照会更好,然后通过测定性能来优化你的游戏,这里的测定性能指的是为所有可能出现的瓶颈进行CPU和GPU性能分析。

        关于性能分析的更多内容请看下面的资料和YouTube视频:
资料:效能评测器
资料:性能与性能分析
资料:GPU性能分析
视频:渲染的最佳范例

常问问题


“Lightmass Crashed(光照烘焙崩溃)”的常见报错信息

“内存不够”

Swarm Agent联机渲染代理故障排除指南


        就像说明里建议的那样,这种崩溃的原因是没有足够的内存来给场景构建光照。

 

       可尝试的步骤

 

*围绕你的可游戏区域添加光照烘焙重点区域(Lightmass Importance Volumes)。(请看上述提示里的内容)

*减少场景里的网格数量

*减少那些不需要较高品质阴影的网格的光照贴图分辨率

*如果使用了植被工具(Foliage Tool),由于网格将被聚集成纹理集,那么使用的光照贴图分辨率应该从一开始设定为48

*清理并验证高速缓冲存储器。

*增加可用虚拟内存的量。把这当成内存不足时的溢值。所说可以增加额外的内存,但是可别过于依赖这个方法。

*给系统增加额外的内存


“断言失败: (Index>=0)&(Index

Swarm Agent联机渲染代理故障排除指南


        可尝试的步骤:

*清理并验证联机渲染代理高速缓冲存储器(Swarm Agent Cache


为什么我的光照构建卡在了[X]%,或者为什么构建光照要花那么长的时间?

        假如你曾看到光照构建用的时间很长,或者假如你不能确定光照构建过程已经卡住了,你可以仅仅打开联机渲染代理程序(Swarm Agent Program)看一看到底发生了什么?

        一旦你打开联机渲染代理,你可以查看“联机状态(Swarm Status)”选项卡。在这里你可以查看光照构建过程的进程以及显示光照构建的当前进行程度的百分比条。

Swarm Agent联机渲染代理故障排除指南


        可尝试的步骤:

 

*减少场景中网格 和/或 光照的数量

*使用光照烘焙重点区域(Lightmass Importance Volumes

*减小网格的光照贴图分辨率

*通过联机渲染代理和协调器,使用多台电脑分配光照构建

*使用被推荐的CPU或更强力的CPU

 

为什么在构建光照时联机代理要占用全部CPU

 

        通过联机渲染代理光照构建和光照烘焙是个十足的CPU集约型处理。场景里的对象数量、世界的尺寸、光照质量、光照贴图分辨率和一大堆其他要进行的处理决定了要增加多少构建光照必需的CPU能力。

 

        你可以调整局部使用的处理器数量,远程作业操作如下:

 

        在联机渲染代理的是设置选项卡里,将选项定位于ShowDeveloperMenu(显示开发人员菜单)并且设置为真。

Swarm Agent联机渲染代理故障排除指南

        操作成功后,你将看到一个名为的DeveloperSettings(开发人员设置)新选项卡。在这里你将改为 LocalJobDefaultProcessorCount 或  RemoveJobDefaultProcessorCount。

Swarm Agent联机渲染代理故障排除指南


为什么当我的光照被设定为移动/动态光照时用不了联机渲染代理?

 

        有个常见误解就是“虚幻引擎4里的所有光照都需要构建”。但是事情并非如此。这个想法可能起源于工具栏里的构建按钮(Build button)基于构建光照相联系,事实上,还有很多其他可以进行的东西,比如几何构建、导航网格等。所以如果你关心自己会在这里看到某个运动形式,请最好要明白这个操作可不仅仅涉及光照构建。

 

        当需要使用烘焙/预计算光照时,联机渲染代理会被用于光照烘焙,这是与静态/固定光照移动一起使用的原因。

 

        注意:假如你已经决定在你的游戏里只使用移动/动态光照,最好继续做下去,并且在下面两种方法里禁用预计算光照。

1.你可以通过检测 世界设置 >光照烘焙 > 强制禁止预计算光照来在每个地图禁用。

2.你可以在菜单 > 窗口>项目设置 > 渲染 >光照 > 允许静态光照设置为不核实,对项目完全禁用静态光照。

Swarm Agent联机渲染代理故障排除指南

Swarm Agent联机渲染代理故障排除指南


如何使用我的GPU来构建光照?或者为什么在构建光照时用不了我的GPU

 

        绝大多数情况下使用CPU来构建光照,而GPU仅在到处流程里被使用。

 

        通过GPU进行光照烘焙运算不是不可能,但是当前还不行。理想分辨率是一种在预览时使用GPU实时渲染的光照运算,不过它之后会在你开始构建时通过相同的运算被烘焙金光照贴图。然而,这样做会碰到一些问题。这将很难然编辑器按比例缩小,所有当前的间接光类函数(GI Method)将必须被重写,就不能获得高质量的最终效果,由于GPU上的负载编辑器的稳定性会降低。众所周知,GPU在重负载下不稳定。


如何获得或查看我的联机渲染代理(Swarm Agent)日志?

 

        你可以通过日志选项卡来定位你的联机渲染代理日志。

 

        当你打开日志选项卡时你将看到下面的图像。假如你看到一个空白日志,可能表明你以前没有构建过任何需要光照烘焙运算的静态/固定光照。这个日志将可能指出光照构建的认可问题。

 

        对于以前的光照构建日志你可以检查你的联机缓存(Swarm Cache的位置。

 

        如果日志中没有足够的信息来得出结论,请尝试更改日志的详细程度。 这可以在设置选项卡>详细信息中更改。 这将改变发现日志的信息数量。

 

        选项卡里的选项有:

*无记载

*临界

*简单

*详实(默认)

*复杂

*详细

*非常详细

*超级详细

Swarm Agent联机渲染代理故障排除指南


如何“清理”或“验证”我的联机渲染代理?

 

        位于联机渲染代理菜单的缓存下拉菜单里有两个选项,一个是清理,一个是验证(请看下图)。

*清理:根据用户要求将缓存清空。

*验证:验证所有缓存条目和无用信息以确定这些都是最新的。

 

        注意:清理和验证缓存有时可以解决构建光照时联机渲染代理可能会出现的所有问题。

Swarm Agent联机渲染代理故障排除指南


我的联机数据缓存储存在哪里,我能变更它的位置吗?

 

        你可以通过打开联机渲染代理在设置选项卡里查看、更改你的联机缓存储存的位置。在缓存设置的下拉菜单下,你将看到缓存文件夹(CacheFolder)。(请见下图)

 

        你可以将右侧文件路径变更到你想要的任何位置。你也可以选择改变缓存的最小值设置。这是以千兆字节测量的。还有另一个设置可以保证输出日志的最小作业数。

Swarm Agent联机渲染代理故障排除指南


“光照构建失败。联机渲染代理启动失败”是什么意思,以及解决方法?

Swarm Agent联机渲染代理故障排除指南


        假如你看到此问题,那么导致联机渲染代理未初始化的原因有两个。

 

        联机启动失败可能是因为:

*打开了多个联机渲染代理实例

*打开你的任务管理器,确保没有运行多个联机渲染代理进程

*关卡 和/或 资源损坏

*关闭你的防火墙或防毒软件

*重启编辑器

*硬盘驱动空间

*引擎安装或损坏问题

*虚幻光照烘焙的源代码问题

 

        可尝试的步骤:

1.重启虚幻引擎4或重启你的电脑。

2.在任务栏 和/或 任务管理器 查看运行的联机渲染代理的多个实例。关闭多个实例或关闭所有实例。

3.关闭防火墙 和/或 防毒软件。若本步骤可行,请务必给SwarmAgent.exe添加一个例外。

4.从关卡里系统地浏览和删除网格,看看是否因为它们导致了联机启动失败。这是一个强力的方法,应当作为最后采取的手段。

5. 在已知关卡中通过起作用的资源来测试构建光照,如:启动内容或模板地图之一的默认关卡。

6.通过访问史诗游戏启动器(Epic Games Launcher>>选择引擎版本>验证来验证引擎

Swarm Agent联机渲染代理故障排除指南


1.1.重新安装引擎

 

        假如构建来自源代码

1.重建虚幻光照烘焙(UnrealLightmass)分辨率

 

        假如你已经尝试了以上步骤可是依然解决不了问题,请在AnswerHub上发帖提问,请详细描述你所尝试的步骤。


如何将联机渲染代理设置为最高优先权?

        假如你将要打开联机渲染代理,请看在联机处理生效前有一小段时间你可以变更它,通过下列步骤你可以让它的启动进程变得更为快捷。

1.打开联机渲染代理>设置选项卡
2.设置ShowDeveloperMenu为真
3.现在将出现一个名为“开发人员设置(DeveloperSettings)”的新的选项卡
4.将 LocalJobsDefaultProcessPriority 改为 BelowNormal
5.将RemoteJobsDefaultProcessPriority改为Idle

Swarm Agent联机渲染代理故障排除指南

Swarm Agent联机渲染代理故障排除指南


为什么联机渲染代理启动不了,或者“UnrealLightmass.exe-应用程序错误”是什么意思?

Swarm Agent联机渲染代理故障排除指南



        假如你看到这个问题突然出现,那就意味着有什么东西在阻止应用程序在Windows中打开,这个问题不是虚拟引擎4直接导致的。

        假如你使用的是4.9或更早的版本,那么请务必安装最新的VS2013安装附件,并卸载所有可能不再需要的附件。

        假如你使用的是4.10或更新的版本,你将需要安装VS2015安装附件。

        您可以从下面的Microsof的网站链接下载Visual Studio附件:
VS2013: http://www.microsoft.com/en-us/download/details.aspx?id=40784
VS2015: https://www.microsoft.com/en-us/download/details.aspx?id=48145

        假如你在这里还有问题的话,请试着使用免费应用程序Dependency Walker来对所有可能阻止UnrealLightmass.exe装载的动态链接库(DLL)问题进行故障排除。

        你可以官方网站上下载Dependency Walker。
        链接在此:http://www.dependencywalker.com/

联机渲染代理失败,并出现IOException错误

 

        当你看到这个错误是你坑能需要查看你的联机渲染代理日志的所有附加细节。

 

        可能会修正这个问题的步骤:

-查看你的关卡中没有为NULL资源(空值资源)构建光照的关卡。这些将会是无参照资源。你可以在你的世界大纲窗口(World Outliner)里看到这些资源。当你在此处选择资源师,你将会看到在详细信息面板(Details Panel)里没有分配资源。

(更多内容请见下一页)



12
52VR.COM微信扫一扫
52vr公众号
专注于VR的学习、开发和人才交流

52VR开发交流

相关推荐

已有 0 人参与

发表评论

您需要登录才可以回帖 登录 | 立即注册

手机版|VR开发网 |网站地图 统计  津ICP备16006248号

GMT+8, 2017-11-18 07:06 AM

返回顶部