Javascript Three.js raycaster到底在做什么?
我见过使用Three.js的碰撞检测示例代码,它们都有一段代码,如下所示:Javascript Three.js raycaster到底在做什么?,javascript,three.js,Javascript,Three.js,我见过使用Three.js的碰撞检测示例代码,它们都有一段代码,如下所示: var vector = new THREE.Vector3( ( event.clientX / window.innerWidth ) * 2 - 1, - ( event.clientY / window.innerHeight ) * 2 + 1, 0.5 ); projector.unprojectVector( vector, camera ); 我的问题是,究竟什么是event.clientX/windo
var vector = new THREE.Vector3( ( event.clientX / window.innerWidth ) * 2 - 1, - ( event.clientY / window.innerHeight ) * 2 + 1, 0.5 );
projector.unprojectVector( vector, camera );
我的问题是,究竟什么是event.clientX/window.innerWidth)*2-1和event.clientY/window.innerHeight)*2?为什么会有这些价值观
我需要编写一个正交摄影机命中检测代码,但我首先需要了解透视摄影机的情况
( event.clientX / window.innerWidth ) * 2 - 1, - ( event.clientY / window.innerHeight ) * 2 + 1
将像素坐标从屏幕空间映射到标准化设备坐标(NDC)空间中的点
将点从NDC空间映射到世界空间中的点
Raycaster
然后从摄影机位置通过该世界点创建光线
如果您需要帮助理解这些概念,请参阅中的参考资料
此外,对于正交摄影机,需要使用稍微不同的方法。有关更多信息,请参阅
3.js r.66
将像素坐标从屏幕空间映射到标准化设备坐标(NDC)空间中的点
将点从NDC空间映射到世界空间中的点
Raycaster
然后从摄影机位置通过该世界点创建光线
如果您需要帮助理解这些概念,请参阅中的参考资料
此外,对于正交摄影机,需要使用稍微不同的方法。有关更多信息,请参阅
3.js r.66
将像素坐标从屏幕空间映射到标准化设备坐标(NDC)空间中的点
将点从NDC空间映射到世界空间中的点
Raycaster
然后从摄影机位置通过该世界点创建光线
如果您需要帮助理解这些概念,请参阅中的参考资料
此外,对于正交摄影机,需要使用稍微不同的方法。有关更多信息,请参阅
3.js r.66
将像素坐标从屏幕空间映射到标准化设备坐标(NDC)空间中的点
将点从NDC空间映射到世界空间中的点
Raycaster
然后从摄影机位置通过该世界点创建光线
如果您需要帮助理解这些概念,请参阅中的参考资料
此外,对于正交摄影机,需要使用稍微不同的方法。有关更多信息,请参阅
3.js r.66
projector.unprojectVector( vector, camera );