THREE.js (r70) 为什么必须创建 OrbitControls 对象?

THREE.js (r70) Why must an OrbitControls object be created?

一个非常简单的THREE.js脚本。 运行在这个 JSFiddle 没问题。

但是如果下面一行代码:

controls = new THREE.OrbitControls(camera, renderer.domElement);

被注释掉,JSFiddle 被重新 运行 然后没有图形显示。我使用 Chrome 调试器 运行 来自本地主机 html 文件的等效代码,但它没有显示任何警告或异常。 Firefox 中的行为相同。所有 运行 都是在 Windows 7 笔记本电脑上完成的。

那么为什么 THREE.js 在这个例子中似乎需要一个 OrbitControls 对象?

(我并不特别需要应用程序中的 OrbitControl 功能)。

问题不在于 controls,而在于相机。 .lookAt() 采用矢量,因此您需要将其称为 camera.lookAt(new THREE.Vector3(0,0,0));。否则您会使相机实例无效。如果您在 fiddle 中注释掉 controlscamera.lookAt(),它会起作用。