0

我正在使用版本 THREE.js57。我想在运行时隐藏选定的面。这在three.js中是否可行

感谢和问候

4

1 回答 1

1

确实这是可能的,您需要查看 Raycaster 库,这是高级步骤

  • 将鼠标单击坐标取消投影到 3D 场景中。
  • 将光线投射到场景中并返回相交的碰撞对象数组
  • 这个相交的对象将具有受影响的人脸和 faceIndex 作为参数
  • 碰撞时将面部@faceIndex 透明度设置为 0

看看这些文档页面: http: //threejs.org/docs/#Reference/Core/Projector http://threejs.org/docs/#Reference/Core/Raycaster

这个例子开始: https ://github.com/mrdoob/three.js/blob/master/examples/canvas_interactive_cubes.html

编辑:好的,然后隐藏你可以在另一个SO帖子中达到顶峰的脸:

我可以在 three.js 中隐藏网格的面吗?

要点是您有一个多材质对象,第一种材质是您的默认材质,第二种材质是完全不透明的。然后,当您相交时,您将面设置为使用第二个 materialIndex。无论如何,上面的链接应该可以完成这项工作。投票赞成该回应。:)

于 2013-08-19T13:31:41.730 回答