2012-06-23 46 views
0

在ThreeJS,我使用的OrthographicCamera因为我有几个对象应当从前面示出的,而没有任何透视畸变。这可以很好地解决一个问题:我创建的一堆对象应该总是大致填满屏幕,但不会小或太大。使用例如ThreeJS正交相机:调整场景的大小,以窗口

var factor = 4.5; 
this.camera = new THREE.OrthographicCamera(-window.innerWidth/factor, window.innerWidth/factor, window.innerHeight/factor, -window.innerHeight/factor, 1, 1000); 

...我可以得到它的1920×1080像素的分辨率运行良好,但是当我再调整窗口的大小,以更小的东西,并重新加载页面,对象将开始过大,因为它们充当如果他们是固定的。 (当透视使用CombinedCamera时,调整大小是动态的,并且效果很好。)如何使用OrthographicCamera修复此问题?或者有一种方法可以关闭CombinedCamera中的视角?

谢谢!

回答

7

我不知道这是否会与您的特定问题或没有帮助。我不确定这是否正确,或者是否有更好或更标准的方法来处理此问题。但这是我迄今为止在我的拼写代码中使用的。它不能以任何方式完美工作,但你可以尝试一下。如果你找出更好的东西,请回复并告诉我。

 $(window).on('resize', function() { 
      // notify the renderer of the size change 
      renderer.setSize(window.innerWidth, window.innerHeight); 
      // update the camera 
      camera.left = -window.innerWidth/camFactor; 
      camera.right = window.innerWidth/camFactor; 
      camera.top = window.innerHeight/camFactor; 
      camera.bottom = -window.innerHeight/camFactor; 
      camera.updateProjectionMatrix(); 
     }); 
+0

所以我猜只是创建新实例? –