2012-10-07 114 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

它應該是可能的 - 因爲大多數幾何任務可以以並行方式執行(您有頂點和三角形,並根據投影矩陣對它們進行計算),並以流水線的方式執行,因爲不可見的基元將從進一步的計算中丟棄