硬核!如何使用 SSH 远程渲染 MMD

本文由 简悦 SimpRead 转码, 原文地址 www.bilibili.com

作者:TerryLiuOrigin

前期准备首先,我们要把所有纹理图片打包进. blend 工程文件 (Pack All Into .blend). 如果文件使用绝对路径,也需要把它改为相对路径 (Make All Path Relative). 打包好. blend 工程文件其次,远程渲染需要提前把所有素材放在同一个文件夹下,包括 abc 文件和物理烘培文件。

首先,我们要把所有纹理图片打包进. blend 工程文件 (Pack All Into .blend). 如果文件使用绝对路径,也需要把它改为相对路径 (Make All Path Relative).

打包好. blend 工程文件

其次,远程渲染需要提前把所有素材放在同一个文件夹下,包括 abc 文件和物理烘培文件。将. blend 文件,abc 文件,物理烘培文件压缩到 zip 文件,我压缩好的 zip 是长这样的:

打包好的 zip 文件

最后将 zip 文件传输到远程电脑,我使用 onedrive 上传。由于使用不同的云端传输方法不一样,这里就不多说了。如果使用 onedrive,传输方式请参考:

https://askubuntu.com/questions/1205418/wget-or-curl-gives-403forbidden-while-downloading-file-from-onedrive-for-busine

  1. SSH 到远程终端,下载 blender,注意不要用 snap 下载,因为之后我们要替换 ACES 颜色管理。
wget https://ftp.nluug.nl/pub/graphics/blender/release/Blender2.92/blender-2.92.0-linux64.tar.xz
tar xf blender-2.92.0-linux64.tar.xz

将 blender 加入到 PATH 环境变量

vim ./bashrc
export PATH=$PATH:$HOME/blender-2.92.0-linux64
  1. 下载 ACES 并替换掉 blender 自带颜色管理
git clone https://github.com/thezakman/ACES-blender-colour-management.git
rm -R blender-2.92.0-linux64/2.92/datafiles/colormanagement
cp -R ACES-blender-colour-management/ blender-2.92.0-linux64/2.92/datafiles/colormanagement
  1. 我在工程文件中使用了 mmd_tools,在渲染的时候要加载此 addon,所以也要提前下载好
git clone https://github.com/powroupi/blender_mmd_tools.git
cp -R blender_mmd_tools/mmd_tools blender-2.92.0-linux64/2.92/scripts/addons/
  1. 开始渲染!
source ./bashrc
blender -b 雪景琼楼_packed.blend -o //eevee/ -f 3000

然而会遇到错误

Unable to open a display
Aborted (core dumped)

stackexchange 上有对此问题的解决方法,这里总结一下,附上源链接:

https://blender.stackexchange.com/questions/144083/how-to-get-blender-2-80-to-render-through-an-ssh-connection-minimal-working-ex

  1. 下载 mesa-utils
$ sudo apt install mesa-utils

输入 glxinfo 会遇到如下错误

$ glxinfo
Error: unable to open display
  1. 获取 GPU PCI BusID
$ nvidia-xconfig --query-gpu-info
Number of GPUs: 1

GPU #0:
  Name      : TITAN X (Pascal)
  UUID      : GPU-9adbb93a-e6c6-b54c-651c-66d1414a6b82
  PCI BusID : PCI:1:0:0
  1. 新建虚拟 display, --busid 使用刚刚获取的 PCI BusID
$ sudo nvidia-xconfig --busid=PCI:1:0:0 --use-display-device=none --virtual=1280x1024
[sudo] password for user:

Using X configuration file: "/etc/X11/xorg.conf".
Backed up file '/etc/X11/xorg.conf' as '/etc/X11/xorg.conf.backup'
New X configuration file written to '/etc/X11/xorg.conf'
  1. 新建 Xorg 服务器
$ sudo Xorg :1

如果遇到错误,说明服务器正在运行,使用如下代码查看正在运行的 Xorg 程序

pc -C Xorg

然后关闭服务器,或再多建立一个服务器

$ sudo Xorg :2

保留这个终端或断开连接,Xorg 服务器不受影响,可新打开一个终端进行渲染。

我们终于可以开始渲染啦! 首先要选择已建立的 display,拿 display1 举例 (对应 sudo Xorg :1)

export DISPLAY=:1
source ./bashrc

先来一张做测试,-b 背景模式不打开 blenderUI, -o 输出文件夹, -f 设置渲染帧。

blender --addons mmd_tools -b 雪景琼楼_packed.blend -o //eevee/ -f 3000

最后渲染动画, -s 开始帧, -e 结束帧, -a 渲染动画

blender --addons mmd_tools -b 雪景琼楼_packed.blend -s start -e end -o //eevee/ -a

渲染好的 png 会保存在 eevee 文件夹,下载到本地电脑就可以啦!

评论