2014-06-11 48 views
0

我試圖使用threeCSGthreeCSG包裝爲constructive solid geometry庫中的OBJ加載three.js OBJ loader的橫截面。使用ThreeCSG的three.js中的OBJ的橫截面

當我使用常規網格(如球體/立方體)時,交點csg操作的效果非常好。我還可以在其初始位置一個OBJ製作出精美的橫截面(白色物體,在以下顯示爲紅色橫截面):

cross section

然而,當我旋轉對象,橫部分是相同的,無論我怎麼改變它的旋轉:

bad cross section

我怎樣才能獲得CSG交集操作考慮到物體的旋轉?它與正常的three.js網格(立方體)按預期工作。

這可能與three.js加載OBJ文件的方式有關 - 它似乎在父對象中存儲了一堆網格物體,然後可以在場景中添加/操作這些網格物體。這是我做的CSG操作:

threeOBJ.traverse(function (child) { 
    if (child instanceof THREE.Mesh) { 
     cc = crossSection(child); 
     scene.add(cc); 
    } 
}); 

crossSection()功能執行與在圖像中看到藍色透明的平面和每個孩子網的CSG交集操作。它返回一個THREE.MESH,然後我添加到現場。

我覺得我必須錯誤地提及某些事情,因爲它沒有考慮輪換,但我不知道是什麼。有沒有更好的方式來使用csg與three.js加載的OBJs;將所有子網格合併到一個父網格中然後執行布爾操作會更好嗎?

回答

0

爲了解決這個問題,我旋轉了飛機而不是OBJ,它的工作完美。要查看物體的所有側面,您可以簡單地旋轉攝像機,交替使用軌跡球控制並控制飛機的移動以獲得所需的視圖。