0

我有一个要添加到场景中的 papervision3d 球体原语。球体的半径为 285。但是,由于我的相机属性(缩放、焦点和 z),球体渲染为 206 像素,而不是我想要的 570 像素(2 * 半径)。

不久前,我发现了一篇关于这个问题的博客文章,并解释说您可以使用以下命令将场景中任何对象的 z 设置为出现在 3D 空间中的大小与在 2D 空间中出现的大小相同:

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

当我使用几个块时,上面的方法有效,其中半径被替换为宽度/2。由于某种原因,这不适用于球体。

关于如何让直径为 570px 的球体显示在屏幕上的任何想法和指示?

谢谢。

4

1 回答 1

0

这是无法实现的,至少不能精确地实现。透视投影不会将球体映射到圆。看看这张图片边缘的球体是如何变形的? (来源:uni-stuttgart.de球体网格

于 2010-05-25T17:24:35.027 回答