我很困惑将屏幕位置转换为three.js中的世界位置 . 我已经查看了有关Stackoverflow问题的几个答案,但无法理解公式和/或从示例中的光线投射或鼠标测试中提取它们(我都没有这样做) . 我只想根据场景/窗口的宽度将平面定位在世界位置 . 例如,窗口的右下角减去平面的宽度和高度,因此它在屏幕上并且可见 . 像这样的东西:

//geometry and material of the plane
var geometry = new THREE.PlaneGeometry(50, 50);
var material = new THREE.MeshPhongMaterial( { color: 0xff0000 } );

//create plane
plane = new THREE.Mesh( geometry,  material);

position = new THREE.Vector3();
position.x = ( window.innerWidth / 2 ) - asquare.geometry.parameters.width;
position.y = - ( window.innerHeight / 2 ) - asquare.geometry.parameters.height;
position.z = 0;

plane.position.set( position.x, position.y, position.z );

它是在正确的方向,但太远,我想这是相机和平面z位置之间的差异,这是问题 . 如果我的相机处于z 500且平面处于z 0,我该如何相应地调整x和y?