我目前正在做一个小项目,我需要在mousemove上减去一个立方体的矩形区域(想想,一个用于在房子上放置门的缩进区域)。“门”将在点击时“放置”,但在用户决定其位置时需要“可视化”;实际上,除了用户不再移动它之外,没有任何变化。
这里的问题是找到一种允许用户移动门的有效方法,同时它可以交互和修改房屋网格。我一直在为Three.js 玩CSG,但我认为可能有更好的算法适合我的用例。我觉得从场景中移除立方体,将其转换为 CSG 网格,减去,然后转换回网格并在每一帧将其添加回场景中,直到用户确定其位置,成本真的很高。
CSG在这里是错误的方法吗?我应该直接修改顶点吗?如果是这样,我将如何计算/添加在正方形中创建“缩进”所需的顶点?真的,我正在寻找游戏和 3D 应用程序程序员认为处理此类案例的最佳实践。像 SketchUp 这样的应用程序如何处理诸如推/拉几何图形之类的事情?
谢谢。