首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相机滚筒

相机滚筒
EN

Stack Overflow用户
提问于 2014-09-16 19:42:30
回答 1查看 978关注 0票数 1

我正试着在一个特定的位置/方向设置一个照相机。我可以得到正确的位置和目标,但相机的“向上”方向是不正确的。

例如,我的相机位于+Z轴上,观察着原点的立方体。我想“滚动”我的相机顺时针沿Z轴,45°角相对于+Y。

当我在动画循环中应用旋转时,它可以工作。当我在init中应用旋转时,或者在动画循环之外的任何地方,它都不能工作。

我正在使用TrackballControls.js。没有控制,设置角度很好。我尝试过一些事情来使TrackballControls.js屈服于我的意志,但我一定是错过了什么。再一次,我可以在没有任何问题的情况下设定位置和目标,似乎是轮换造成了问题。

这是我的小提琴,虽然没有太多的东西:http://jsfiddle.net/TheJim01/f75q9rz0/30/

代码语言:javascript
复制
var hostDiv, scene, renderer, camera, root, controls, light, shape, theta;

var WIDTH = window.innerWidth,
    HEIGHT = window.innerHeight,
    FOV = 35,
    NEAR = 0.1,
    FAR = 100;

function init() {
    hostDiv = document.createElement('div');
    document.body.appendChild(hostDiv);

    renderer = new THREE.WebGLRenderer({ antialias: true, preserverDrawingBuffer: true });
    renderer.setSize(WIDTH, HEIGHT);
    hostDiv.appendChild(renderer.domElement);

    camera = new THREE.PerspectiveCamera(FOV, WIDTH / HEIGHT, NEAR, FAR);
    camera.position.z = 75;

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

    light = new THREE.PointLight(0xffffff, 1, Infinity);
    light.position.copy(camera.position);

    scene = new THREE.Scene();
    scene.add(camera);
    scene.add(light);

    var geo = new THREE.BoxGeometry(5, 5, 5);
    var mat = new THREE.MeshPhongMaterial({color:'red'});
    var msh = new THREE.Mesh(geo, mat);
    scene.add(msh);

    theta = 0.78;

    //camera.rotateZ(theta);
    controls.object.rotateZ(theta);

    animate();
}

function animate() {
    //camera.rotateZ(theta);

    light.position.copy(camera.position);

    requestAnimationFrame(animate);
    renderer.render(scene, camera);
    controls.update();
}

init();

r68

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-25 20:08:52

我终于想出了办法。我用一种新的方法修改了TrackballControl.js以重置,然后设置摄像机的位置/旋转。旋转必须通过修改相机的向上矢量来完成,而不是通过旋转相机来完成(尽管人们会认为它们会产生同样的效果)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25877137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档