为什么使用Combined.js使用CombinedCamera.js时,正交投影不能正常工作?

时间:2013-01-04 00:40:08

标签: three.js orthographic perspectivecamera

我已经完成了CombinedCamera的实时工作示例,并且在我的作品中融入了相同的灵感。

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

但是在使用Perspective Camera时,我的应用程序运行正常:

enter image description here

但同样的应用,虽然使用正交投影根本不起作用,它看起来很奇怪。

enter image description here

我的代码中的问题是什么?我希望在对象的所有x,y和z方向上进行正交投影。怎么做?

1 个答案:

答案 0 :(得分:1)

CombinedCamera正投影的宽度和高度来自透视投影的近平面和远平面中间的平面的交点。如果您的物体较小但靠近相机,它将会像第二张图像一样变得非常小。

您的设置有0.1, 1000作为近距离和远距离平面,所以它试图从相机中构建一个约500个单位的对象,这比您的对象大得多。

您有多种选择:

  1. 在正交模式下使用setFov或setZoom可以更好地构建对象。
  2. 放大物体并放置相机/物体,使其中心位于相机远近平面的中间位置。
  3. 修改相机的近处和远处平面,使它们更接近您的场景 - 例如如果您的相机距物体中心25个单位,请将相机的近距离和远距离设置为0.1, 50 - 中点将为~25个单位,并在切换模式时根据需要构建对象。