0

我已经浏览了CombinedCamera的实际工作示例,并且受到启发,我将combinedcamera 嵌入到我的工作中。

 camera = new THREE.CombinedCamera( width /2, height/2, 45, 0.1, 1000, -1000, 1000, 1000 );

但是在使用透视相机时,我的应用程序运行良好:

在此处输入图像描述

但是同样的应用程序,在使用正交投影时根本不起作用,而且看起来很奇怪。

在此处输入图像描述

我的代码有什么问题?我想要对象上所有 x、y 和 z 方向的正交投影。怎么做?

4

1 回答 1

1

正交投影的宽度和高度CombinedCamera来自透视投影的近平面和远平面的中间平面的交点。如果您的对象很小但靠近相机,它将被渲染得非常小,就像在您的第二张图像中一样。

您的设置具有0.1, 1000近平面和远平面,因此它试图从相机构图约 500 个单位的对象,这比您的对象大得多。

您有多种选择:

  1. 在正交模式下使用 setFov 或 setZoom 可以更好地构图对象。
  2. 放大您的对象并放置相机/对象,使其中心位于相机近平面和远平面的中间。
  3. 修改相机的近平面和远平面,以便它们更接近您的场景 - 例如,如果您的相机距离对象中心 25 个单位,则将相机上的近平面和远平面距离设置为0.1, 50- 中点约为 25 个单位和切换模式时将根据需要对您的对象进行构图。
于 2013-01-04T19:28:50.450 回答