Three.js,从Collada导入的相机无法查看对象场景

萨姆西

我正在与Three.js挣扎,以了解Collada Animation如何锻炼!我在3Dsmax中使用移动相机拍摄了动画,然后将场景导出到Collada。

loader.load( ColladaName, function ( collada ) {

    model = collada.scene;
    model.updateMatrix();
    animations = collada.animations;
    kfAnimationsLength = animations.length;
    model.scale.x = model.scale.y = model.scale.z = 0.001; // 1/8 scale, modeled in cm
    document.getElementById('preload').style.opacity = '0';

    callback()

} );

我从collada捕获相机对象:

 model.traverse(function(child) {

    if (child instanceof THREE.PerspectiveCamera) {

        camera = child;
        camera.near = 1;
        camera.fov = 30;
        camera.castShadow = true;
    }

    if (child instanceof THREE.SpotLight) {

        child.castShadow = true;

        child.shadowBias = 0.02;

        child.shadowCameraNear = 1;
        child.shadowCameraFov = 60;
        child.intensity = 1.2;

        child.shadowMapWidth = 1024; // default is 1024
        child.shadowMapHeight = 1024; // default is 1024
        child.shadowDarkness = 0.06; // default is 512

    }

});

 camera.aspect = window.innerWidth / window.innerHeight;

 camera.updateProjectionMatrix();

然后我在场景中对其进行渲染:camera.lookAt(scene.position)renderer.render(scene,camera);

一切都显示出来了,我可以使用导入的相机看到我的模型,但是我的相机没有看到场景,也没有像3Dsm放大和缩小那样再现x旋转!如果我记录相机的位置,它总是显示:0,0,0。更好的是,如果我记录了model.children [0]的位置,该位置与导入到collada中的透视相机相对应,则它始终显示0,0,0

我究竟做错了什么 ?

编辑1:

我尝试使用从collada导入的相机设置相机矩阵:

camera.matrixNeedsUpdate = true;
model.children[0].matrixNeedsUpdate = true;
model.children[0].lookAt(model.position)

camera.matrix.elements = model.children[0].matrix.elements

但不幸的是没有结果。

Mrdoob

我怀疑问题在于您正在将camera.lookAt()移到“本地空间”中的某个位置。

尝试这样做:

var vector = new THREE.Vector3();
vector.setFromMatrixPosition( object.matrixWorld );

camera.lookAt( vector );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Three.js导入Collada动画不起作用

来自分类Dev

场景中的静态对象-Three.js

来自分类Dev

Three.js在场景的左右移动相机

来自分类Dev

无法获得场景以Three.js呈现

来自分类Dev

无法使Three.js相机向上

来自分类Dev

Three.js Collada-在三个js中加载多个Collada对象

来自分类Dev

无法添加到场景 - 伪造查看器。错误:“THREE.Object3D.add:对象不是 THREE.Object3D 的实例。”

来自分类Dev

Three.js相机的理解

来自分类Dev

Three.js-拖动Collada文件

来自分类Dev

缓慢地从Three.js场景中删除许多对象

来自分类Dev

three.js:按名称或ID访问场景对象

来自分类Dev

three.js从场景中删除特定对象

来自分类Dev

无法从Three.js场景中删除精灵?

来自分类Dev

three.js正交相机对象拾取

来自分类Dev

Three.JS通过移动设备围绕对象旋转相机

来自分类Dev

Three.js将对象移动到相机前面

来自分类Dev

three.js初始化,对象靠近相机

来自分类Dev

当对象旋转时Three.js旋转相机

来自分类Dev

在Three.js中从相机中排除对象

来自分类Dev

Three.js相机外观无法正常工作

来自分类Dev

Three.js相机外观无法正常工作

来自分类Dev

在three.js中旋转相机无法正常工作

来自分类Dev

初始加载时,在Three.JS Canvas中适合3D对象(Collada文件)

来自分类Dev

无法使用Three.js加载从搅拌机导出的纹理Collada

来自分类Dev

如何清除THREE.JS场景

来自分类Dev

在画布中渲染Three.js场景

来自分类Dev

Three.js获得场景的中心

来自分类Dev

无法使用Three.js导入OrbitControls.js

来自分类Dev

Three.js:为相机添加光线