首页 > 解决方案 > AFrame / Three.js - 有没有办法获取 object3D 的像素尺寸来计算每米的像素数?

问题描述

我对 3D 编程很陌生,想知道是否可以得到 3D 空间中已知对象的像素宽度/高度。

我的用例如下:

我有一个 2D 图像,我想把它放在一个<a-image>但只有像素大小的图像大小。在给定的情况下<a-image>应该看起来尽可能逼真<a-scene>,所以我尝试了不同的东西,但没有一个让我满意,因为 AFrame / Three.js 与米一起工作。

我尝试的解决方案:

  1. 计算比率pixelWidth/pixelHeight并将pixelHeight/pixelWidth它们用作以 m 为单位的新图像宽度。但是这里的结果是 1024x512 a-image 与 512x256 图像具有相同的宽度和高度(以米为单位),例如,这不是我们想要的。

  2. 以 1024x512 原始图像为例,将尺寸除以 1000 并将其用作以米为单位的新宽度和高度(这是我们目前的方法)。它给出了非常现实的结果,但在我看来并不像最佳解决方案。

我的一个朋友说我只需要一个已知的场景参考对象,并以像素和米为单位获取其宽度或高度,以计算每米的像素widthInMeters / widthInPixels。然后我可以轻松地将我的 2D 图像分辨率转换为完全适合我的 3D 场景的米。

但我没有找到任何方法来获取 object3d 的像素尺寸。也许我是盲人或者这个问题是完全错误的。这里有人可以启发我吗?

提前致谢!

标签: javascriptthree.js3daframe

解决方案


推荐阅读