将2D对象映射到3D空间,保持2D大小

时间:2009-12-07 20:07:34

标签: actionscript-3 papervision3d

我有一个papervision3d球体基元,我将其添加到场景中。球体的大小为半径285.但是,由于我的相机属性(缩放,焦点和z),球体渲染为206px而不是570px这是我想要的(2 *半径)。

前段时间我发现了一篇关于这个问题的博客文章,并解释说你可以设置场景中任何对象的z在3D空间中显示的大小与2D空间中显示的大小相同,方法如下:

mySphere.z = (this.camera.zoom * this.camera.focus) - Math.abs(this.camera.z) + radius;

当我使用几个块时,上面的工作有效,其中radius用width / 2替换。由于某种原因,这不适用于球体。

有关如何将直径为570px的球体显示在屏幕上的任何想法,指示?

感谢。

1 个答案:

答案 0 :(得分:0)

这是不可能实现的,至少不是精确的。透视投影不会将球体映射到圆形。看看此图像边缘的球体是如何变形的? grid of spheres http://www.vis.uni-stuttgart.de/depthcue/spheres_saturation_big.jpg