我在我的项目中使用正交相机。我的问题是射线投射器。它工作了,但不正确。对象的选择并不是在其全部宽度或高度内进行的。有时它仅使用对象的一半。但当我通过轨道控制移动相机时,射线投射器可以正常工作。我忘了说我使用GPUpicker库。
我的项目:https://alovert.ru 默认情况下相机是透视的,要切换为正交,请按键盘上的“O”键。
要查看问题,您必须单击立方体侧面和梁的小侧面。这样,您可以向场景中添加一个新对象。当您尝试添加新对象时,您会发现该对象的某些部分直到您移动相机才会相交。使用透视相机没有问题。感谢任何帮助!
我的代码交集
我的项目:https://alovert.ru 默认情况下相机是透视的,要切换为正交,请按键盘上的“O”键。
要查看问题,您必须单击立方体侧面和梁的小侧面。这样,您可以向场景中添加一个新对象。当您尝试添加新对象时,您会发现该对象的某些部分直到您移动相机才会相交。使用透视相机没有问题。感谢任何帮助!
![enter image description here](https://istack.dev59.com/thAD4.webp)
我的代码交集
function onMouseClick(e) {
e.preventDefault();
mouse.x = e.clientX;
mouse.y = e.clientY;
var raymouse = new THREE.Vector2();
raymouse.x = ((event.clientX - renderer.domElement.offsetLeft) / renderer.domElement.width) * 2 - 1;
raymouse.y = - ((event.clientY - renderer.domElement.offsetTop) / renderer.domElement.height) * 2 + 1;
raycaster.setFromCamera(raymouse, activeCamera);
var intersect = gpuPicker.pick(mouse, raycaster);
}