2009-12-07 95 views
0

我有添加到场景中的papervision3d球体基元。该球体的半径为285。但是,由于我的相机属性(变焦,焦点和z),该球体正在渲染206px而不是570px,这正是我想要的(2 * radius)。将2D对象映射到3D空间,保持2D尺寸

后来我发现了一篇关于这个问题的博客文章,并解释说您可以设置场景中任何对象的z值,使其出现在3D空间中,其尺寸与2D空间中出现的尺寸相同:

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

上面的工作,当我使用几个块,其中半径被替换为宽度/ 2。出于某种原因,这不适用于球体。

任何想法,如何获得一个570像素直径的球体显示在屏幕上的指针?

谢谢。

回答

0

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

+0

我明白你在说什么。但在我的情况下,我有一个单一的球体,就像你的格子中间的球体(红色的)。这似乎映射到像我想要做的一个圆圈 - 我只需要它是一个固定的大小。 – sberry 2010-05-26 14:20:27