搅拌器静止图像渲染与Hadoop

时间:2017-01-06 21:18:32

标签: python hadoop blender

我一直在网上搜索这个,并且没有找到任何有关如何执行此任务的可靠想法。

我的要求

这些已设置:

  • Hadoop mapreduce
  • 混合机
  • 任何软件/库必须是开源的

项目:

我正在使用python在blender中生成一个场景。我有这个完美的工作,并创建一个相机路径。当我打开在UI中创建的混合文件时,一切都是应有的。我目前正在使用python渲染静态图像,但即使在降低质量设置后,我仍然以每秒1帧的速度渲染。在渲染完所有静止图像之后,我使用blender将帧动画为一个序列。所有这一切都是独立工作,但渲染30秒的视频大约需要5分钟。

目标/问题:

我需要渲染摄像机路径并将结果输出为视频格式。在一台机器上,您可能非常清楚1分钟的视频可能需要很长时间才能渲染,我将渲染不同长度的视频,从几秒到可能一小时。我们的想法是使用hadoop在一个集群中分配渲染,以减少渲染时间。

我对mapreduce有点熟悉,但我不确定如何将这个问题分解成块。我正在寻找如何解决这个问题以改善渲染时间的想法。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不熟悉mapreduce,并且认为它不适合您想要做的事情 - 至少不适用于现有的解决方案。

您要查找的内容称为渲染农场。这是多台机器各自渲染最终结果的一部分的地方。对于动画,可以通过让每台机器渲染不同的帧来轻松分割,还可以分割静止图像以使每台机器渲染零件。

为了快速入门,有像Render Street这样的商业渲染农场,可以为您设置渲染机器,或者在用户计算机之间分配渲染的免费服务,例如sheepit

如果你有多台* nix机器可以安装blender,你可以使用blender's cli arguments在每台机器上渲染不同的帧范围。

ssh m1.local 'sh -c "blender -b myanim.blend -s 1 -e 10 -a"'
ssh m2.local 'sh -c "blender -b myanim.blend -s 11 -e 20 -a"'

要运行您自己的渲染服务器场,对于具有管理员的简单服务器场,blender中包含network render addon,以便在flamenco处查看更高级的解决方案。