【发布时间】:2012-05-06 16:39:52
【问题描述】:
在 Three.js 中,我希望将相机指向 3D 空间中的某个点。
为此,我尝试使用camera.lookAt 函数,如下所示:
camera.lookAt(new THREE.Vector3(-100,-100,0));
但是,我发现调用没有任何效果。它什么都不做。我尝试更改向量中的数字,但当它应该更改时,我总是在屏幕上看到相同的外观。
我现在刚刚发现,如果我删除了代码中的THREE.TrackballControls,camera.lookAt() 就会正常工作。我使用 THREE.TrackballControls 的方式有问题吗?这就是我初始化它们的方式:
controls = new THREE.TrackballControls( camera, renderer.domElement );
controls.rotateSpeed = 10.0;
controls.zoomSpeed = 1.2;
controls.panSpeed = 0.2;
controls.noZoom = false;
controls.noPan = false;
controls.staticMoving = true;
controls.dynamicDampingFactor = 1.0;
var radius = 5;
controls.minDistance = radius * 1.1;
controls.maxDistance = radius * 100;
controls.keys = [ 65, 83, 68 ]; // [ rotateKey, zoomKey, panKey ]*/
然后在我的渲染函数中:
function render() {
controls.update();
renderer.render(scene, camera);
}
有关 Three.js 的文档非常稀缺,所以我想在这里问一下。我做错了吗?
【问题讨论】:
-
向我们展示更多代码。看看这个简单的示例:jsfiddle.net/TE5bM
-
你有一个更新循环来重新渲染场景吗?听起来你没有更新/渲染。
-
@Juan George:我在设置场景时调用 .lookAt(),在渲染任何内容之前,所以我的调用应该有效果。但是,我想我刚刚发现了问题;我的代码中有 THREE.TrackballControls,我认为这会干扰我告诉 .lookAt() 的内容,因为当我删除 THREE.TrackballControls 时,.lookAt() 函数会正常工作。我对 THREE.TrackballControls 做错了什么?
-
@GeorgeProfenza Juan :我也在这里放了代码:github.com/houbysoft/js-pdb/blob/master/js-pdb.js 相应的 HTML 在 github.com/houbysoft/js-pdb/blob/master/index.html
-
您使用的是最新版本吗?更新日志上有一些东西。
标签: javascript macos google-chrome 3d three.js