2012-10-07 79 views
1

可能重复:
Hadoop and 3d Rendering of images使用Apache Hadoop的渲染3D图像

它可以使用Apache的Hadoop(MapReduce的)渲染3D图像?

+0

Java支持线程,这意味着您可以使用并行处理。我不确定是否必须将JVM设置为使用更多的处理器/内核(如果可用),或者默认情况下(或由操作系统)由JVM处理。 –

+2

本文是关于同一主题:http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6106549 –

回答

1

没有理由不能使用Hadoop。

如果你同时使用“地图” “减少”的Hadoop的阶段,每个跨越的Hadoop节点意味着分裂。

如果您只是使用每个节点呈现单独的帧,那么使用Hadoop几乎没有什么收获,尽管上述注释中提到的论文摘要表明HDFS可以很好地用于访问场景数据和渲染帧。

我已经写了一个Java中的随机射线跟踪器,它是目前多线程的。在这段代码中,我为每个像素收集了大量的样本,因此在Hadoop中,收集这些样本以生成最终的像素输出将很好地符合Hadoop的“缩小”阶段。

+0

感谢您的回答。 Hadoop的“地图”和“缩小”阶段,这意味着拆分每个帧。为什么呢?我认为在Map上,我需要将一个大框架分成多个“小框架”,然后将每个小框架放入Hadoop节点。在Reduce步骤中,我需要从节点获取结果,并将处理后的迷你帧合并为一个BIG帧。这是对的?哪个尺寸必须有框架?每帧一百GigaBytes?并且每个帧必须以千兆像素为单位进行测量? (我认为没有理由在较小尺寸的帧上使用Hadoop)。 – MyTitle

+0

那么在Hadoop节点之间分割整个框架呢?每一帧都会处理一个大帧,最后我会得到几帧,并将这些帧合并成一个“小电影”? – MyTitle

+0

@MyTitle还原阶段也应该能够并行化 - 当需要将(线性)帧序列编码为视频时,这不太可能有用。对于单个帧,您可以根据您的渲染模型将它们按像素行或(如)64x64块进行拆分,根据您的需要进行拆分。 – Alnitak

1

我不明白为什么不这样做,只要你的应用程序不需要很短的响应时间(比如不到一分钟)。即它对于3D游戏很可能没用,但如果你正在制作电影并且需要处理大量的素材或者其他东西,那么这可能是有道理的。

1

它应该是可能的 - 因为大多数几何任务可以以并行方式执行(您有顶点和三角形,并根据投影矩阵对它们进行计算),并以流水线的方式执行,因为不可见的基元将从进一步的计算中丢弃