Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js raycaster到底在做什么?_Javascript_Three.js - Fatal编程技术网

Javascript Three.js raycaster到底在做什么?

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

我见过使用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/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 );