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



我正在Three.js中创建一个有6个面的3D对象。每个面都有一个网格,该网格使用THREE.PlaneGeometry(宽度和高度均为256(。在网格上,我使用的是一张256乘256的JPEG图片作为纹理。我正试图找到一种方法,在Object3D的PlaneGeometry上找到一个像素坐标(例如200250是像素坐标(的世界坐标,该坐标对应于该图片用作纹理的位置。对象层次结构:-Object3D-->面(Object3D((共6个面(-->每个面都有一个网格(平面几何体(,并使用jpeg文件作为纹理。

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

有人能帮帮我吗?

附加信息:-谢谢你的回答。我试图比较两个结果。方法1:-使用鼠标点击三维对象中的特定点(例如,特定汽车前照灯的中心,即正面(,并使用光线投射获得与正面的交点,即可获得一个偏航/俯仰。

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

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

假设你的平面是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)

最新更新