threeJs相机位置错误(太低)

时间:2019-03-08 12:33:16

标签: javascript three.js 3d gltf

我是ThreeJS的新手,我要完成的工作是加载gltf模型,该模型正确显示在three-gltf-viewer中,这是有效的。

model from gltf web validator

当我将其加载到threeJS中时,模型加载正常,但相机放置在模型的水平线上,并且在尝试放大或缩小场景或进行任何其他场景旋转时,轨道控件不起作用被禁用。

model from threeJS

我试图调整摄像机和场景的任何可能值,但是我无法“跳到模型顶部”并从上方看到它。这是代码。

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 800, window.innerWidth / window.innerHeight, 500, 1500000 );
camera.position.set(1, 1, 1);

var renderer = new THREE.WebGLRenderer({ alpha: false });
renderer.setClearColor( 0xC5C5C3 );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

var controls = new THREE.OrbitControls( camera, renderer.domElement ); 
var ambientLight = new THREE.AmbientLight( 0xcccccc );
scene.add( ambientLight );
var directionalLight = new THREE.DirectionalLight( 0xffffff );
directionalLight.position.set( 0, 1, 1 ).normalize();
scene.add( directionalLight );      

// Instantiate a loader
var loader = new THREE.GLTFLoader();
loader.load('GLTF_local_coord_sys/GEOTIFF_local_coord_sys.gltf', 
    function(gltf) {
        var object = gltf.scene;
        gltf.scene.scale.set( 0.65, 0.65, 0.65 );              
        gltf.scene.position.x = 1;                  
        gltf.scene.position.y = 1;                  
        gltf.scene.position.z = 1;                  

        scene.add( gltf.scene );
        camera.lookAt(scene.position);
    },
    function ( xhr ) {
        console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
    },
    function ( error ) {
        console.log( 'An error happened' );
    }
);
camera.position.z =25;
function animate() {
    render();
    requestAnimationFrame( animate );
}

function render() {
    renderer.render( scene, camera );
}
render();
animate();

有人知道如何解决此问题吗?

0 个答案:

没有答案