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如下配置:

配置项意义如下:
AgentGroupName:agent所属的组AllowedRemoteAgentGroup:哪些组的agent可以接收自己下发的任务AllowedRemoteAgentNames:哪些匹配名字的agent可以接收自己下发的任务AvoidLocalExecution:避免本地执行,优先分发任务到其它Agent。如果任务里某些步骤只能只能本地执行,实测选择true不会跑满核,而选择false会跑满。CoordinatorRemotingHost:调度器Host(主机名/域名/IP)EnableStandaloneMode:启用独立模式(不下发/接收构建任务)
对于主机而言,AgentGroupName和AllowedRemoteAgentGroup可以设置成一样的值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下,设置LocalJobsDefaultProcessPriority和RemoteJobsDefaultProcessPriority为AboveNormal(最高优先级),然后将LocalJobsDefaultProcessorCount和RemoteJobsDefaultProcessorCount设置为<=主机逻辑处理器数-2的值(不然可能用主机的人会卡死)。这样就能保证局域网内其他机子发起任务,主机可以出力了。
然后设置工作机的swarm agent,配置样例如下:

工作机和主机的swarm agent配置基本相同。工作机上,AgentGroupName和AllowedRemoteAgentGroup设置成为跟主机一样的值UE4Render;AllowedRemoteAgentNames填写通配符,允许任务下发到所有机子;AvoidLocalExecution可填写true,如果机子非常差的话,否则感觉工作机可以出力的话,就填写false,然后打开DeveloperSettings,将LocalJobsDefaultProcessorCount和RemoteJobsDefaultProcessorCount设置为<=工作机逻辑处理器数-2的值,保证工作机在跑满一定核数的情况下,机子不会负载太高(这也是自己现在的设置);CoordinatorRemotingHost填写局域网里主机的名称(最好不要填写IP,如果是自动分发的话);EnableStandaloneMode填写false。工作机的DeveloperSettings下,和执行优先级相关的配置项可以保持和默认一样。
这样整个小集群就搭建完成了,可以在两台机子的swarm agent里,通过Network选项下的Ping Coordinator和Ping Remote Agents检查agent和调度器以及其它agent的连通性,相关信息会在Log日志页签显示。配置完swarm agent,工作机打开UE4,点击Build构建光照,就能够看到分布式构建的效果了。