2011-11-05 47 views
9

所以,我正在尋找一個C++庫(面向遊戲)的體素圖形引擎。只是爲了好玩,這將是我第一次使用圖形庫,所以它不一定非常複雜或強大,只是容易理解。知道任何體素圖形C++庫嗎?

+0

Google嗎?寫一個? – NickLH

+0

你在說什麼樣的體素?我的世界風格的體素(正方形是大的紋理)還是傳統的體素(正方形儘可能小)? –

+0

@Nicol Bolas,我的世界風格,可能不那麼大,但足夠大以確保它是一個立方體。但最後它真的沒關係,我只是想挖掘一點體素圖形。 –

回答

21

請記住,體素只是一個概念。有幾種方法可以將它們作爲數據處理,以及將它們可視化的幾種方法(提取幾何圖形,光線投影......)。

這是固定間隔網格中的數據點,就是這樣。這一點代表什麼,或者你與它相關的幾何基元,這完全是特定於實現的。人們通常將它們視爲佔據固定空間網格中整個單元格的立方體,這就是爲什麼您將它們與立方體相關聯的原因。

最着名/最受歡迎的基於體素的應用程序Minecraft使用標準光柵化管道將它們可視化爲以網格爲中心的立方體。 (學術)像GigaVoxels這樣的系統將光線追蹤轉換爲稀疏體素八叉樹結構來生成圖像。

我遇到以下爲本體素庫:

:用於產生程序的體素的地形的發動機

這裏是一個有20年體素引擎代碼的書籤交易帖子:https://www.reddit.com/r/VoxelGameDev/comments/3fvjb4/20_years_of_voxel_engines_source_code_included/

+0

+1爲我的世界。 –

6

我參加顯影稱爲PolyVox現代體素庫,其提供容積儲存(包括尋呼),表面提取以及補充功能,如光線投射和環境光遮擋計算。這不是一個遊戲引擎,但提供了所有需要插入其他物體的體素。它是完全開源的,它有一個很好的developer community。在論壇上,人們總是願意回答關於體素渲染等的一般問題。

+0

謝謝!我一定會深入研究它。 –

6

這一切都在實施和執行。我希望這些可以幫助你追求你所需要的東西。不過,我發現這一個鏈接可能是有用的..

Field3D - 一個開源庫存儲體素數據。它提供了處理內存中的存儲的C++類,以及基於HDF5的文件格式,使得C++對象可以輕鬆地從磁盤寫入和讀取。

Minetest - 開源遊戲非常相似,我的世界

Voxel Article - 的體素是什麼圖形的解釋。