2010-12-14 84 views
1

所以我有一些3D點發電機,給點像Away3d如何從給定的3d點陣列渲染表面?

{1,1,1} 
{1,2,3} 
{1,3,3} 
{2,4,5} 
{2,5,6} 
{4,4,4} 

我需要生成一個光滑的表面,會去thrue定的點。如何做這樣的事情?

順便說一句我知道我們可以使用一種方法shown in here生成一些表面,這些表面會在選定的控制點數組中,但是我需要生成一個傳遞thrue我的控制數組的表面。

+0

有趣的是,我想我正在尋找類似的東西。你需要將點雲轉換爲網格嗎? – 2010-12-14 11:50:06

+0

@George Profenza是的,我做到了!)我需要用Away3d來做到這一點,並且通常我想給engene提供一系列內部bezier表面的點,而不僅僅是控制點的表面... – Rella 2010-12-14 11:57:22

+0

我不知道如何到此爲止,但我正在研究它。我也需要這樣做。谷歌搜索我發現,我們需要的可能是「delaunay四面體化」三維版本的基本三角形。在這裏找到一些非常好的論文:http://www.cs.cmu.edu/~jrs/jrspapers.html還發現這個開源項目:http://tetgen.berlios.de/features.html,快速瀏覽來源和它是巨大的。如果我不是太侵入,你是否試圖用Away3D顯示來自Kinect的點雲? – 2010-12-14 12:22:03

回答

1

我認爲最好的方法是創建一個Mesh對象,然後創建一個循環來遍歷三角形來創建FaceObjects,然後用戶Mesh.addFace() 一個面將包含一個三點三角形和一個UV地圖座標如果需要。

請考慮一下 - 你的列表不能是任意的。每個面必須使用三個彼此最接近的點,並且不會與其他點三角形的面積重疊。 (否則它會看起來「怪異」/「壞」)

我不確定如何平滑你的網格,但它可能是用材質完成的。

您也可以將此問題發佈到Google羣組for away3d。 http://groups.google.com/group/away3d-dev?pli=1 項目主管在列表中處於活動狀態並經常發帖。他們喜歡一個很好的挑戰。