Overview
注意!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!此方法测试于2.79b作为一个blender爱好者,在下没有强大的计算机来渲染动画,这时就需要想一些方法来稍微加速加速。这里只是粗略地介绍了一下,另外在Ubuntu命令行配置时默认具有一定的Linux基础,否则可能会看不懂。2.80中的eevee渲染器貌似支持使用gpu集群渲染,等稳定版出来再测试(又要收一波垃圾)(滑稽)
硬件准备
作为垃圾佬玩家,自然只能捡几个垃圾来搭建集群了,首先你要准备几台主机并将它们连接到局域网之中,这里可以选择所有系统无论是Mac还是Windows亦或Linux,为了管理方便吾辈选择的是Ubuntu server操作系统,不用图形界面,省点计算资源,毕竟是捡来的垃圾,能省则省
注意!!!!!!!!!
!!!!!!!!!!!
!!!!!!!!!!!
此方法测试于2.79b
启用blender自带的ADD-ON渲染器NET_RENDER
在新版本的blender里是自带了NET_RENDER插件的,steam上的版本肯定是支持的,只是需要我们来启用一下它。
如图上所示打开User Preferences,或者使用快捷键Ctrl+Alt+U也可,打开之后在搜索框输入net:
把Render:Network Renderer之前的小勾勾上,之后在点一下save user settings就可以关掉user preferences了。此时,我们已经启用了net render这个自带的add-on了。
配置NET_RENDER
启用net render之后,现在就要使用它来渲染了,在这之前,首先要对它进行配置。
首先在blender之中将渲染器换成net render,如图:
然后我们可以看到在右边的properties面板里有client master 和slave三个选项:
其中client就是你自己正在用的那个blender程序,你在这个blender上建模,贴图,模拟,动画等等,master则是另一个blender程序,它负责将渲染任务进行分配,所以master只能有一个,而slave就是负责实际渲染的blender程序了,可以有很多slave,slave越多,就等于一起干活的电脑越多,速度自然就越快了。
带有GUI界面的系统测试
注意!此处的试验无论是Windows还是Linux还是mac都可,只要操作系统带图形界面并且能够启动带gui的blender即可。
接上文,由于blender的net render中的client master和slave都可以在同一台机器上,所以这里演示一下如何在同一台机器上实现这个过程。
首先,打开分别启动三个blender客户端,这个是无法直接通过steam启动的,steam默认只能启动一个,这时需要找到steam的blender安装目录,双击blender.exe启动。
启动完三个blender程序之后就可以配置了,一个作为master,一个作为slave,最后一个作为client。
首先配置master:
直接点击start service即可,然后将窗口最小化即可。
接下来配置slave:
这次是首先点击图书那个类似刷新的按钮,接下来等他自己搜索到master,再点击start service即可
最后是client:
同slave,首先点击刷新按钮,然后会变成一下模样:
此时点击红圈中的刷新按钮,左边框内就会显示当前集群中的slave机器,然后你就可以开始渲染了,你也可以点击红线的open master monitor来查看当前集群中的任务和机器状态。
下图为渲染中,只有一台slave机器。
注意!client在发送任务之前必须先保存,否则无法发送任务!
注意!!!!!!!!!!!
!!!!!!!!!
!!!!
所有操作一定不能删除场景中的camera!!!!!!!
在不带图形界面的Linux纯命令界面配置
由于我在使用时会把client和master都放在本地电脑上,所以master的配置就略过了,现在讲如何将Linux服务主机配置为slave(默认master设置在本地电脑上)。
此处使用的系统为ubuntu-18.04.2-live-server-amd64。
首先需要在系统上安装blender ,但是由于Ubuntu自身apt安装的blender是不带net render的,所以需要去blender官网[link]下载tar安装包。这里我在本地主机上下好(因为Ubuntu下载比较慢,我在win用百度网盘下快得多),然后使用scp命令:
scp blender-2.79b-linux-glibc219-x86_64.tar.bz2 ubuntu@ip:/dir
拷贝到远程主机(此处使用Windows 10自带的Ubuntu子系统,具体实现百度)
其中ip为远程主机ip,ubuntu为远程电脑登录名,/dir是你要拷贝到的远程主机目录,接下来输一下登录密码即可。
之后ssh登录远程主机,Windows下也可用putty等软件远程连接,切换到文件所在目录
解压:
tar -xf blender-2.79b-linux-glibc219-x86_64.tar.bz2
由于此安装包要求gui界面,所以在这里无法安装,我们需要的只是它的net render
因此接下来安装apt版blender:
sudo apt install blender
安装完之后将apt版的blender的dependency和library等等都删掉,将解压包中的库链接到apt版blender即可,运行以下命令:
sudo rm -r /usr/bin/blender
sudo rm -r /usr/lib/blender
sudo cp -r blender-2.79b-linux-glibc219-x86_64 /usr/lib/blender
sudo ln -s /usr/lib/blender/blender /usr/bin/blender
现在Ubuntu上的blender也拥有了net render了,接下来将此机器配置为slave:
首先在本地电脑(windows)打开一个blender,按照之前教程设置为slave,但是一定注意以下几点:
!!!
不要点刷新按钮与start service;
ip地址手动填写为局域网中本地电脑的ip(因为master在本地电脑上)(如果远程主机是局域网的话,广域网就填master所在的广域网ip),端口默认8000,path(即路径)需要按照Ubuntu上的规则来,我的是:
/home/ubuntu/
然后保存为blend文件,为了方便我保存为slave.blend,然后用scp命令将其拷贝到远程主机上,在远程主机上执行以下命令即可:
blender -b slave.blend –addons netrender -a -noaudio -nojoystick
此时Ubuntu就被配置为slave机,可以用来进行渲染。
其他client和master的使用按上一章节配置即可。
而slave可以用同样的方法配置多台,于是垃圾佬就可以愉快地去收破烂啦(滑稽)
补充
在blender的新版本2.80中的eevee渲染器可以支持gpu集群渲染,由于是beta版本所以没有测试,等稳定版出来再测试。
另外,这里的加速渲染其实只适用于渲染动画或者多图片时使用,由于blender自身不支持并行计算,无法将同一个场景分割渲染,所以如果是渲染单个场景就不适用了,不过这也有解决方案,能够将单个场景切割分别交给不同的计算机渲染的多路技术。
欢迎各路大佬补充指教