【问题标题】:Calculate the rendered size of a 3D object in a view计算视图中 3D 对象的渲染大小
【发布时间】:2011-05-25 15:23:29
【问题描述】:

我正在开发一个用户通过单击 3d 空间中的图标进行导航的项目。当用户使用这些图标之一时,相机应平移和缩放,以便所选图标以其原始高度和大小出现在屏幕中心(当在图标上创建 2d 叠加层时,它是与 3d 对应的大小相同。

我的问题是如何计算 3d 视图中渲染对象的大小,我应该提到这是使用 Alternativa 3D 平台。

因此,在 (x1, y1, z1) 处有一个 FOV 为 f 的相机,指向 (x2, y2, z2) 处的图标,所有这些都在尺寸为 w 和 h 的视图中渲染。我正在努力解决这个问题,任何帮助将不胜感激。

【问题讨论】:

  • 那么使用 BitmapData 绘制 3d 对象投影并使用 getPixel 获取其大小和形状呢?
  • 您是否能够取消投影视图或以其他方式获取对象的(世界或对象相关的)边界框?这通常是正确的做法。
  • 如果对象被绘制在舞台上,应该可以用它截取屏幕截图。目前截取的 3d 对象应该变成白色,而场景的其余部分 - 变成黑色。并且计算白色区域的大小、位置和形状将相当容易。 顺便问一下 - 你的 3d 对象的形状如何?

标签: actionscript-3 3d render


【解决方案1】:

我在另一个论坛上找到了答案,我真正想要的是如何让 3d 对象以 1:1 的大小比例在视图中渲染。

我遇到了计算 3d 相机焦距的公式:

F = d / tan(fov/2)

其中 d 是您的意见高度^2 + 宽度^2 平方根的二分之一

F 的值是您的对象应以 1:1 的大小渲染到相机的距离。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2011-02-12
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    相关资源
    最近更新 更多