用于3D渲染的工具

时间:2013-03-08 10:31:45

标签: hadoop 3d rendering visualization distributed-computing

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

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

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

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

我听说使用带有.rib文件格式的Hadoop作为可视化数据,并使用rndr程序来呈现此数据。所以我需要一些模拟。

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

感谢。

1 个答案:

答案 0 :(得分:0)

KISS: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

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

我的选择

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

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