目标
尝试OmniverseFarm的最基础操作。本地机器作为Queue和Agent,同时在本地提交任务。
主要参考了官方文档:
Farm Queue --- Omniverse Farm latest documentation
Farm Agent --- Omniverse Farm latest documentation
Farm Examples --- Omniverse Farm latest documentation 中的 "Rendering with Farm" 部分。
0. 安装 Queue 和 Agent
在 Launcher 的 EXCHANGE 界面搜索farm,下载 Queue 和 Agent:
安装后可以在LIBRARY页面中找到它们:
1. 启动Queue
Omniverse Farm Queue is responsible for receiving and collecting tasks from Users, as well as offering processing Agents with the information they need in order to execute them.
Queue 负责接收和收集来自用户的任务,并为正在处理的 Agent 提供执行任务所需的信息。
在 Launcher 的 LIBRARY页面打开Queue后可以看到界面:
Queue URL 是当前的Queue的地址,之后配置Agent的时候需要它。
"Queue status:Online" 意味着已经启动Queue了
Open Dashboard 按钮将会打开仪表盘界面,第一次打开需要登陆:
之后,可以看到Agent,Task都是空的:
2. 启动Agent
Omniverse Farm Agent is responsible for executing a set of tasks based on the capabilities of the environment on which it runs.
Once launched, Agent queries Omniverse Queue for the tasks that have been submitted, and selects one for processing. For this reason, Agents depend on a Queue for the book-keeping of tasks, and for reporting progress information in a meaningful way.
Agent 负责根据其运行所在的环境执行一组任务。启动后,Agent 会在 Queue 中查询已提交的任务,并选择一个进行处理。 因此,Agent 依靠 Queue 来记录任务,并报告进度信息。
在 Launcher 的 LIBRARY 页面打开 Agent 后可以看到界面:
输入 Queue的地址 后,点击Connect按钮:
成功后可以看到右下角显示连接上了:
随后,可以在Queue的仪表盘界面中看到这个Agent:
3. 尝试运行任务
这里跟着 Farm Examples --- Omniverse Farm latest documentation 中的 "Rendering with Farm" 里的步骤。
USD Composer 拥有向Queue提交任务的能力,所以这里直接用它来做测试。
首先打开一个测试用的场景。
然后,从 Window->Animation->Sequencer打开Sequencer窗口,点击场记板图标,就会看到Movie Capture面板。其中有Queue相关的设置,确保没问题后,最后点击 Submit to Queue 按钮来提交任务。(也要留意下Output中的path属性,它是输出文件的位置)
提交后,在Queue的仪表盘中就可以看到这个任务了:
随后,会看到其改变状态为running
Agent页面也可以看到其正在处理这个任务(实际上,第一次运行的时候我的Agent一直显示Idle而没有执行任务,Task中也不显示running。但后来可以了,我将一些细节记录在附录里)
运行结束后,就显示Finished:
之后,可以在指定的位置(之前的Output 面板 Path 属性)里找到输出的图片:
附录:Agent不运行任务?
第一次运行的时候我的Agent一直显示Idle而没有执行任务:
我怀疑是端口问题,于是在防火墙中加上了可访问这个端口(具体操作可以参考这里的最后一部分)
但弄完后还是不行。。。
之后,我重启了电脑,然后就可以了。
我现在一是怀疑确实是端口问题,另一个是怀疑当时的内存不够。这个问题还需要之后继续研究。