Three.js图像像素坐标到世界坐标的映射

时间:2018-10-31 17:44:16

标签: three.js

我正在Three.js中创建6个面的3D对象。每个面都有一个使用THREE.PlaneGeometry(宽度和高度均为256)的网格。在网格上,我正在使用JPEG图片,该图片的256 x 256纹理。我正在尝试找到一种方法来查找与该图片用作纹理的位置相对应的Object3D的PlaneGeometry上的像素坐标(例如200,250是像素坐标)的世界坐标。 对象层次结构: Object3D-> face(object3d)(共6个面)->每个面都有一个网格(planegeometry)并使用jpeg文件作为纹理。

Picture1像素坐标->用于为Plane1创建纹理->与该像素坐标对应的世界坐标。

有人可以帮我吗?

其他信息:- 感谢您的回答。我正在尝试比较2个结果。 方法1:-偏航/俯仰是通过使用鼠标单击3d对象中的特定点(例如,特定的汽车大灯的中心,即正面)并使用光线投射获得与正面的交点来获得的

方法2:-通过获取相同点(特定汽车前灯的中心)的像素坐标并计算该像素点的世界空间坐标,可以获得另一个偏航/俯仰角。请注意,像素坐标是从用作纹理的JPEG文件中提取的,该JPEG文件用于创建网格(是正面的子级)的PlaneGeometry。

假设两种方法之间的所有其他参数都相同,您是否认为上述比较方法应该产生相同的结果?

1 个答案:

答案 0 :(得分:0)

假设您的飞机是PlaneGeometry(1,1),则给定像素的局部坐标X / Y / ZZ为pixelX / 256,pixelY / 256和Z为0.5

类似:

var localPoint = new THREE.Vector3(px/256,py/256,0.5)
var worldPoint = thePlaneObject.localToWorld(localPoint)