使用框架服务器渲染
帧服务器通过共享工作中指定的渲染进程数来减少渲染时间。 Preferences。Frame Server日志呈现在Background Renders面板,包括诸如脚本名称,写入节点,帧范围,进度以及渲染是否产生错误之类的信息。Frame Server不会显示渲染任务的进度条,但是您可以禁用它Render using frame server在里面Render对话框以使用旧版本的Nuke。
默认情况下,Frame Server是禁用的,但是您可以在Preferences > Performance > Threads/Processes或在“写入”节点的Render对话。
注意: 本地框架服务器进程使用端口5558-5662。
渲染写节点,可以从节点的Properties或从Render菜单,显示Render对话。看到输出(写入)节点有关启动渲染的更多信息。如果启用了帧服务器,请单击OK在里面Render对话框在后台启动选定的渲染,使您可以继续工作。
的Background Renders选项卡未显示为附带的工作区的一部分Nuke,但您可以启用Performance > Threads/Processes > focus background renders在里面Preferences在使用Frame Server时自动打开面板。
小费: 您也可以通过右键单击面板手动添加面板按钮在任何窗格的左上角,然后选择Windows > Background Renders。
的Background Renders面板包含诸如脚本名称,写入节点,帧范围,进度以及渲染是否产生错误之类的信息。
框架服务器首选项
您可以使用以下命令控制帧服务器的行为Performance > Threads/Processes标签中Preferences:
• render using frame server (Nuke) -启用后,将始终使用帧服务器进行渲染。
• focus background renders -启用后,使用Frame Server渲染会自动打开Background Renders面板,或者如果面板已经打开,则将焦点转移到面板上。
• frame server processes to run -设置帧服务器可用的渲染进程数。
注意: 您必须重新启动Nuke如果您更改可用的进程数。
• export renders -允许您设置可用于渲染过程的资源的限制:
• limit renderer (more responsive ui) –选择此选项可使用户界面在渲染过程中更具响应性。它说Nuke使用2个线程进行代码转换并使用25%的RAM进行缓存。使用此选项可能会导致渲染速度变慢。
• no renderer limits (fastest transcoding) –选择此选项可确保尽快进行渲染。此选项可能会导致渲染期间用户界面的响应速度变慢。
• customize render limits –选择此选项以手动配置number of threads使用和cache memory在渲染期间可用。
在外部计算机上使用Frame Server
虽然Nuke由于能够在内部渲染帧,因此在外部计算机上运行Frame Server可以通过在计算机网络之间共享工作来大大加快该过程。
注意: 框架服务器需要一个Nuke主工作站上的许可证(nuke_i),但只有一个Nuke在从属计算机上呈现许可证(nuke_r)。
如果要在从属计算机上使用交互式许可证(nuke_i),请添加--useInteractiveLicense争论runframeserver.py如下所述。
在外部计算机上配置框架服务器
Nuke的Frame Server可以在外部计算机(或多台计算机)上设置,以从您的Nuke Studio会议。为此,您需要运行runframeserver.py外部计算机上的脚本(位于Python站点软件包中),带有特定的命令行参数。
警告: 为了使一切顺利进行,您需要确保外部从机和主Nuke会话可以将文件读写到共享位置,例如NFS共享。
根据平台的不同,可以通过操作默认值来完成umask设置,但请注意,这会更改创建的文件的权限。
此外,如果防火墙阻止了通讯端口5560,则Mac和某些Linux发行版(例如RHEL)不能用作主工作站。您可以使用以下命令将防火墙配置为允许某些端口通过防火墙。 iptables命令,但在执行此操作时要格外小心。例如:
sudo iptables -I INPUT -p tcp --dport 5560 --syn -j ACCEPT
有关更多信息,请参考您特定平台的防火墙文档。
帧服务器在外部计算机上使用许多工作进程,每个工作进程都需要分配的资源,例如线程,内存等。您必须传递许多参数runframeserver.py为使服务器正常工作:
• --numworkers -这是并发数Nuke运行此服务器渲染节点时启动的进程。
• --nukeworkerthreads -每个工作线程分配的线程数。这类似于设置-m运行时的参数Nuke从命令行。
• --nukeworkermemory -分配给每个帧服务器工作程序的内存量(以MB为单位)。
• --workerconnecturl -您要服务的主工作站的TCP端口地址。例如:
tcp://bob:5560
哪里bob是您要提供服务的计算机的已解析主机名。您也可以使用IP地址。
小费: 为确保您输入的是有效的网址,请尝试使用ping命令以查看是否收到响应。
• --nukepath -通往Nuke从属工作站上的应用程序。
小费: 上Windows,如果文件路径中有空格,请记住将路径放在引号中。
例如, --nukepath="C:\Program Files\Nuke12.1v1\Nuke12.1.exe"
在Linux从属计算机上,从安装目录运行的示例命令提示符条目可能如下所示:
./python ./pythonextensions/site-packages/foundry/frameserver/nuke/runframeserver.py --numworkers=2 --nukeworkerthreads=4 --nukeworkermemory=8096 --workerconnecturl=tcp://bob:5560 --nukepath=./Nuke12.1
在Windows从机,从安装目录运行的示例命令提示符条目可能如下所示:
python.exe pythonextensions\site-packages\foundry\frameserver\nuke\runframeserver.py --numworkers=2 --nukeworkerthreads=4 --nukeworkermemory=8096 --workerconnecturl=tcp://bob:5560 --nukepath=Nuke12.1.exe
在示例中,我们指定从站使用两个Nuke工作线程,每个线程有四个线程,每个线程有8 GB RAM Nuke工作站在bob。
小费: 如果您的从属计算机运行的操作系统与主计算机运行的操作系统不同Nuke机器,您可以使用--remap命令行参数在它们之间转换文件路径。首先读取主机文件路径,然后读取从文件路径。Nuke希望使用所有文件路径/ (在目录之间)(正斜杠)。例如:
--remap“ P:/,/ mnt / renders /”
转换以开头的主机路径P:/ (Windows样式)到以/mnt/renders/ (Linux风格)。
您可以通过在主工作站上的脚本编辑器中运行以下行来检查框架服务器和辅助服务器是否已连接:
from hiero.ui.nuke_bridge.FnNsFrameServer import frameServer
print [worker.address for worker in frameServer.getStatus(1).workerStatus]
成功的连接应在输出面板中报告类似以下内容的内容:
['Worker 0 - henry.local - 192.168.1.11', 'Worker 0 - bob.local - 192.168.1.111', 'Worker 1 - henry.local - 192.168.1.11']
哪里henry.local是远程从站的名称,并且bob.local是主要的名称Nuke会议。
注意: 如果工作人员无法联系Frame Server,则在脚本编辑器的输出面板中打印一个例外。
框架服务器日志
Broker和Worker日志记录可以帮助诊断Frame Server问题。默认情况下,日志写入NUKE_TEMP_DIR / logs,格式为:
broker.log
worker-0.log
worker-1.log
worker-2.log
注意: 如上所述,使用Python运行Frame Server总是将日志文件写入特定的OS临时目录。例如,在Windows使用C:\ temp。
小费: 您可以使用FRAMESERVER_LOG_DIR环境变量来强制Frame Server登录到其他位置。看到