【游戏开发】UE4联机渲染swarm agent配置

UE4在构建场景光照时,会启动swarm agent进行构建,但如果只用一台电脑会出现构建速度较慢的情况。为了加快编译的效率,需要配置联机渲染。

首先需要注意的是,在UE4中自动打开swarm agent和手动打开swarm agent会用到不同的配置。因此,建议的方法是手动打开swarm agent进行配置(对于所有机器),然后再开UE4。每个swarm agent以及调度器swarm coordinator的可执行文件位置,都在引擎的Engine\Binaries\DotNET

在官方文档中,有Unreal Swarm配置的例子可以参考。假设你有一台性能强劲的机子,和一台你日常工作但性能一般般的机子。这样可以如下配置:

1、两台机子都必须装UE4(最好同一版本),都会自带swarm agent。两台机子局域网互通(Windows的话,开启网络共享),用主机名就可以访问对方。

2、将性能强劲的机子作为主机。在性能强劲的机子上,打开调度器swarm coordinator以及swarm agent,然后在Settings -> Distribution Settings如下配置:

主机Agent

配置项意义如下:

  • AgentGroupName:agent所属的组
  • AllowedRemoteAgentGroup:哪些组的agent可以接收自己下发的任务
  • AllowedRemoteAgentNames:哪些匹配名字的agent可以接收自己下发的任务
  • AvoidLocalExecution:避免本地执行,优先分发任务到其它Agent。如果任务里某些步骤只能只能本地执行,实测选择true不会跑满核,而选择false会跑满。
  • CoordinatorRemotingHost:调度器Host(主机名/域名/IP)
  • EnableStandaloneMode:启用独立模式(不下发/接收构建任务)

对于主机而言,AgentGroupNameAllowedRemoteAgentGroup可以设置成一样的值UE4Render,表示主机属于UE4Render组,并且从主机下发任务到自己;AllowedRemoteAgentNames填写通配符*表示允许所有机子;AvoidLocalExecution填写默认false即可;CoordinatorRemotingHost填写主机自己在局域网上的名字(保证稳定连上自己即可);EnableStandaloneMode填写false

填写完成之后,在主机的swarm agent上点击Network -> Ping Coordinator,可以在调度器上看到主机的swarm agent

之后需要设置主机swarm agent的性能参数。在Settings -> Developer Settings下,将ShowDevelopMenu选择为true,就能看到DeveloperSettings页签。选中该页签,在Local Performance Settings下,设置LocalJobsDefaultProcessPriorityRemoteJobsDefaultProcessPriorityAboveNormal(最高优先级),然后将LocalJobsDefaultProcessorCountRemoteJobsDefaultProcessorCount设置为<=主机逻辑处理器数-2的值(不然可能用主机的人会卡死)。这样就能保证局域网内其他机子发起任务,主机可以出力了。

然后设置工作机的swarm agent,配置样例如下:

工作机Agent

工作机和主机的swarm agent配置基本相同。工作机上,AgentGroupNameAllowedRemoteAgentGroup设置成为跟主机一样的值UE4RenderAllowedRemoteAgentNames填写通配符,允许任务下发到所有机子;AvoidLocalExecution可填写true,如果机子非常差的话,否则感觉工作机可以出力的话,就填写false,然后打开DeveloperSettings,将LocalJobsDefaultProcessorCountRemoteJobsDefaultProcessorCount设置为<=工作机逻辑处理器数-2的值,保证工作机在跑满一定核数的情况下,机子不会负载太高(这也是自己现在的设置);CoordinatorRemotingHost填写局域网里主机的名称(最好不要填写IP,如果是自动分发的话);EnableStandaloneMode填写false。工作机的DeveloperSettings下,和执行优先级相关的配置项可以保持和默认一样。

这样整个小集群就搭建完成了,可以在两台机子的swarm agent里,通过Network选项下的Ping CoordinatorPing Remote Agents检查agent和调度器以及其它agent的连通性,相关信息会在Log日志页签显示。配置完swarm agent,工作机打开UE4,点击Build构建光照,就能够看到分布式构建的效果了。

版权声明
本文为博客HiKariのTechLab原创文章,转载请标明出处,谢谢~~~