Javascript 如何在ThreeJS中检测立方体网格与浏览器边界的碰撞

Javascript 如何在ThreeJS中检测立方体网格与浏览器边界的碰撞,javascript,html,three.js,webgl,Javascript,Html,Three.js,Webgl,我是3D游戏和3J的新手。如上图所示。我的网格位于浏览器的左边界,此时网格位置为-1035而不是0。 这意味着ThreeJS中的mesh.position.x不是浏览器窗口x像素,那么ThreeJS中的mesh.position.x是什么呢。是否有将浏览器内部宽度和高度转换为与mesh.position.x相同的计算。如何检测与浏览器边界的碰撞。Three.js使用三维空间坐标系,其中X和Z轴水平,Y轴垂直。原点(0,0,0)只是该空间中的任意点,您可以在3D世界中“环顾四周”,以便原点可能不在

我是3D游戏和3J的新手。如上图所示。我的网格位于浏览器的左边界,此时网格位置为-1035而不是0。
这意味着ThreeJS中的mesh.position.x不是浏览器窗口x像素,那么ThreeJS中的mesh.position.x是什么呢。是否有将浏览器内部宽度和高度转换为与mesh.position.x相同的计算。如何检测与浏览器边界的碰撞。

Three.js使用三维空间坐标系,其中X和Z轴水平,Y轴垂直。原点(0,0,0)只是该空间中的任意点,您可以在3D世界中“环顾四周”,以便原点可能不在屏幕上。出于所有目的,Three.js-space中对象的坐标也是任意单位

可以使用在二维屏幕空间和三维世界空间之间进行转换。从3D到2D已经很成功了,在这个话题上也有一个很好的例子


因此,要确定网格是否在屏幕上,应将其三维位置投影到二维屏幕空间,然后检查其是否超出窗口或画布的大小。

Three.js使用三维空间坐标系,其中X轴和Z轴水平,Y轴垂直。原点(0,0,0)只是该空间中的任意点,您可以在3D世界中“环顾四周”,以便原点可能不在屏幕上。出于所有目的,Three.js-space中对象的坐标也是任意单位

可以使用在二维屏幕空间和三维世界空间之间进行转换。从3D到2D已经很成功了,在这个话题上也有一个很好的例子

因此,要确定网格是否在屏幕上,应将其3D位置投影到2D屏幕空间,然后检查其是否超出窗口或画布的大小