3

我在页面上提供了两个相机(透视和正交)的下拉列表。现在我的三个场景正在使用透视相机。但是根据下拉列表中的选择,如果我在下拉列表中选择透视,我的相机应该更改为“正交”并变为透视。我怎么能做到这一点?请帮我。

有关详细代码,这里是 Jsfiddle 链接:http: //jsfiddle.net/sagh0900/7Anag/9/

camera = new THREE.PerspectiveCamera( 45, width / height, 0.1, 1000 );
camera.position.y = 0;
camera.position.z = 40;
camera.lookAt(new THREE.Vector3(0, 0, 0));  
scene = new THREE.Scene();
scene.add(camera);
mesh = new THREE.Mesh(new THREE.Geometry());
scene.add(mesh);

提前致谢

4

2 回答 2

5

我曾建议使用CombinedCamera。它不再存在。您可以使用@prisoner849 在这篇文章中建议的三个 JS,组合相机文档和支持

您可以使用一个变量,将一个或另一个摄像机分配给该变量。– 囚犯849

于 2012-12-27T21:43:42.683 回答
4

我认为您不能即时更改相机实例的相机类型,因为它们是单独的类,需要单独实例化。

但是,您可以创建两个相机实例,一个 Ortographic 和一个 Perspective 相机,并在您的 render() 调用中指定哪个相机处于活动状态。您需要在 UI 事件处理程序上更新相机的位置等,或者在渲染函数中克隆位置等。

不过,查看three.js 源代码,看起来将支持orto/perspective 模式切换的自定义相机类组合在一起并不难......不过,这将是一种黑客行为。

于 2012-12-27T21:42:28.577 回答