我試圖使用threeCSG的threeCSG包裝爲constructive solid geometry庫中的OBJ加載three.js OBJ loader的橫截面。使用ThreeCSG的three.js中的OBJ的橫截面
當我使用常規網格(如球體/立方體)時,交點csg操作的效果非常好。我還可以在其初始位置一個OBJ製作出精美的橫截面(白色物體,在以下顯示爲紅色橫截面):
然而,當我旋轉對象,橫部分是相同的,無論我怎麼改變它的旋轉:
我怎樣才能獲得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;將所有子網格合併到一個父網格中然後執行布爾操作會更好嗎?