2017-07-11 97 views
0

我有這個物體/點雲,用pyopengl和pygame渲染。從點雲繪製一個3d三角形網格

enter image description here

我的目的是該點的座標的numpy的陣列。我希望生成這個對象的一個​​3d三角形網格,如果你可以減少三角形的數量,它也會很好。

我試過scipy.spatial.Delaunay,它不會爲三維對象生成三角形。

回答

1

雙輪廓在這裏可能會工作得很好,它是一種採用體素化數據並將其變爲網格的算法。我不明白它在這裏簡單地描述它,但基本上你會把你的點數組放在一個3D網格數組中,如果這個網格單元格包含一個被設置爲1(滿)的點,並且if它沒有被設置爲0(空),那麼你會在這個網格上運行DC算法,並且它會輸出一個網格。這種算法的好處在於它支持內部腔體和凹面形狀。

下面是一些鏈接,我發現可能會幫助你,如果你決定使用DC:

Basic Dual Contouring Theory http://ngildea.blogspot.com/2014/11/implementing-dual-contouring.html

這是GitHub庫的時候我在Unity3D執行這個算法我使用的源: https://github.com/nickgildea/DualContouringSample

+0

感謝您的回答。我是否必須自己實現它,還是可以在某處找到預製的模塊或函數? – rjpj1998