0

众所周知,3D 渲染的计算成本很高。

我想Apache Hadoop用于分布式 3D 渲染(渲染图像或视频)以减少渲染时间。所以在了解了 Hadoop 之后,我明白我需要两件事:

  • 数据,将被可视化(可能是某种文件,其中包含指令(如绘制矩形、设置坐标、设置颜色等))
  • 一些工具/程序/实用程序来呈现上述文件。我想从我的程序中调用它,将它指向带有数据的文件。(如果这个程序有命令行 API 就好了)。

但是我对 3D 渲染一无所知,所以我需要您的帮助来推荐用于渲染 3D 图像/视频的工具(开源)。另外我对输入数据一无所知。所以如果你建议我渲染工具+文件格式来渲染会很好。

我听说过使用具有.rib文件格式的 Hadoop 作为数据来可视化,并使用rndr程序来呈现这些数据。所以我需要一些类似的东西。

请注意,我的目标是更深入地了解 Hadoop 和分布式计算,而不是 3D 渲染,所以请建议我最简单的解决方案。

谢谢。

4

1 回答 1

0

吻:Gnuplot

如果您真的只关心使用 Hadoop,并且您对渲染的唯一要求是它需要一个输入文件并制作图像以便您可以显示完整的动画,那么我建议gnuplot. 它实际上是一个绘图程序,但它需要脚本并生成图像文件,而且对您最有用的是,您可以输入数学公式进行绘图,而不是构建 3d 世界进行渲染。

您只需准备n 个文件,除了自启动以来的时间偏移值外,所有文件都相同,gnuplot 将生成适当的帧。

这是最简单的选项,可以让您专注于 Hadoop 方面。为了向您展示多么简单,这将为 3 叶片风扇旋转的动画生成一个帧:

set xrange[-1:1]
set yrange[-1:1]
set polar
unset key
unset border
unset tics
set terminal png size 1000,1000
set output "frame_$FRAME.png" 
plot cos(3*t+$FRAME/5)

Gnuplot 的一大优点是您可以在交互式提示中输入命令来操作图形,这些命令与您在脚本中输入的命令相同。因此,一旦您有了满意的东西,您就可以执行save 'newscript.gpt'或复制您使用的命令。您可以通过gnuplot newscript.gpt在提示符下运行来重新创建图形。

顺便说一句,模拟难以渲染的场景比实际构建它们更容易,所以只需在 gnuplot 脚本中添加一个 sleep 命令,使其花费 15 秒或多长时间。

整根香蕉:搅拌机

Blender一个 3D 渲染系统。我相信它被用作服务器场上一些主流动画的渲染系统,就像你描述的那样。它有相当长的学习曲线,但我认为您应该能够学习教程或其他预先存在的动画项目文件。从那里你需要弄清楚如何调用渲染引擎作为特定帧的命令。我只在搅拌机中做过静态渲染,所以我不能带你走得更远。这在视觉上会更令人印象深刻,但在学术上不会更令人印象深刻,而且你会在这方面浪费更多时间。

我的选择

我个人会选择gnuplot。splot您可以使用命令而不是 2d来制作 3d 绘图plot,虽然它不是您想象的 3d 场景渲染,但它达到了使用脚本制作图片的目的。您可以从像上面这样完全基本的东西开始,直到您进行设置,然后引入更多复杂性;从实现的角度来看,运行 gnuplot 脚本比运行还需要数据文件的脚本更容易,但是当您想要执行命令 + 脚本 + 数据而不是命令时,预先生成数据并让 gnuplot 读取它仍然很容易+ 脚本。关键是逐渐增加难度,而不是在你能走路之前跑步。

如果您最终发现自己有空闲时间并将其更改为使用搅拌机,那么这一切都是免费的,而且您并没有危及您的 hadoop 项目使其变得漂亮。

于 2013-03-10T10:35:37.903 回答