gpt4 book ai didi

javascript - 使用 ThreeCSG 的 three.js 中的 OBJ 横截面

转载 作者:行者123 更新时间:2023-11-30 05:35:15 24 4
gpt4 key购买 nike

我正在尝试制作 OBJ 的横截面加载了 three.js OBJ loader使用 threeCSG JavaScript 的包装器 constructive solid geometry图书馆。

当我使用常规网格(如球体/立方体)时,相交 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 加载的 OBJ 一起使用?将所有子网格合并到一个父网格中然后执行 bool 运算会更好/可能吗?

最佳答案

为了解决这个问题,我旋转了平面而不是 OBJ,并且效果很好。要查看物体的所有侧面,您还可以简单地旋转相机、交替控制轨迹球和控制平面的移动以获得所需的 View 。

关于javascript - 使用 ThreeCSG 的 three.js 中的 OBJ 横截面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24167190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com