我有這個物體/點雲,用pyopengl和pygame渲染。從點雲繪製一個3d三角形網格
我的目的是該點的座標的numpy的陣列。我希望生成這個對象的一個3d三角形網格,如果你可以減少三角形的數量,它也會很好。
我試過scipy.spatial.Delaunay,它不會爲三維對象生成三角形。
我有這個物體/點雲,用pyopengl和pygame渲染。從點雲繪製一個3d三角形網格
我的目的是該點的座標的numpy的陣列。我希望生成這個對象的一個3d三角形網格,如果你可以減少三角形的數量,它也會很好。
我試過scipy.spatial.Delaunay,它不會爲三維對象生成三角形。
雙輪廓在這裏可能會工作得很好,它是一種採用體素化數據並將其變爲網格的算法。我不明白它在這裏簡單地描述它,但基本上你會把你的點數組放在一個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
感謝您的回答。我是否必須自己實現它,還是可以在某處找到預製的模塊或函數? – rjpj1998