【问题标题】:Three.js Image Pixel coordinate to World Coordinate Mapping三.js 图像像素坐标到世界坐标映射
【发布时间】:2018-10-31 17:44:16
【问题描述】:

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

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

谁能帮帮我。

附加信息:- 感谢你的回答。我正在尝试比较 2 个结果。 方法 1:- 通过使用鼠标单击 3d 对象中的特定点(例如,作为前脸的特定汽车前灯的中心)并使用光线投射获取与前脸的交点来获得一个偏航/俯仰.

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

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

【问题讨论】:

  • 你在哪里卡住了?
  • 如果您解释了为什么需要这个世界坐标,我们可以提供一些关于找到它的最佳方法的指导。
  • 通过查找世界坐标,我试图计算这个特定 3d 场景中该点的偏航角/俯仰角。这是预先映射的,如果我有世界坐标 (x,y,z),我可以使用标准公式计算偏航角/俯仰角。
  • 对于mypetlion的问题,我真的不知道如何计算,现在我不知道如何解决这个问题!

标签: three.js


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 1970-01-01
    • 2012-07-31
    • 2023-04-01
    • 1970-01-01
    • 2018-07-07
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多