blender静态图像渲染

cpjpxq1n  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(677)

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

我的要求

设置如下:
hadoop mapreduce
搅拌机
任何软件/库都必须是开源的

项目:

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

目标/问题:

我需要渲染相机路径并将结果输出为视频格式。在一台机器上,你可能非常清楚,一分钟的视频可能需要很长的时间来渲染,我将渲染不同长度的视频,从秒到可能一小时不等。其思想是使用hadoop跨集群分发渲染,以减少渲染时间。
我对mapreduce有点熟悉,但不知道如何将这个问题分解成块。我正在寻找如何解决这个问题,以提高渲染时间的想法。如有任何建议,将不胜感激。

aij0ehis

aij0ehis1#

我不熟悉mapreduce,也不认为它适合您想做的事情—至少不适合现有的解决方案。
您要查找的对象称为渲染场。这是多台机器各自渲染最终结果的一部分。对于动画,通过让每台机器渲染不同的帧,可以很容易地将其拆分,也可以通过拆分静态图像的方式让每台机器渲染各个部分。
为了快速入门,有些商业渲染场(如render street)安装了机器来为您进行渲染,有些免费服务(如sheepit)在用户和计算机之间分发渲染。
如果有多台*nix机器安装了blender,则可以使用blender的cli参数在每台机器上呈现不同的帧范围。

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"'

要运行自己的渲染场,对于带有admin的简单场,blender附带了network render addon,要获得更高级的解决方案,请查看flamenco。

相关问题