Модель Three.js GLTF центрирована, но вращается по круговой кривой, а не по центру - PullRequest
0 голосов
/ 26 мая 2019

Я загрузил модель glTF с помощью загрузчика three.js glTF. Хотя объект центрирован в начале координат (0, 0, 0), он, кажется, вращается вдоль кривой круга на плоскости x .

Это изображение модели до того, как она начнет вращаться. Обратите внимание, что это на происхождение. Вот GIF-файл о том, как он вращается после добавления mesh.rotation.y += 0.01; к коду.

enter image description here

Визуальное представление того, что я получаю, и того, что я ищу:

enter image description here

Мне удалось отцентрировать объект с помощью этого решения , но, похоже, он не исправляет вращение. Ограничительная коробка:

    var loader = new THREE.GLTFLoader();
    loader.load( 'model/empire_vase/scene.gltf', function ( gltf ) {

        mesh = gltf.scene;
        gltf.scene.traverse( function ( child ) {

        } );

        var box = new THREE.Box3().setFromObject( mesh );
        box.center( mesh.position ); 
        mesh.position.multiplyScalar( - 1 );

        var pivot = new THREE.Group();
        scene.add( pivot );
        pivot.add( mesh );

        var axesHelper = new THREE.AxesHelper( 100 );
        scene.add( axesHelper );

    } );

Rotation:

function animate() {

    if (mesh) {
        mesh.rotation.y += 0.01;
    }

    requestAnimationFrame( animate );
    renderer.render( scene, camera );

}

Модель была взята из Sketchfab / Geoffrey Marchal , но я заметил эту проблему с другими моделями Sketchfab. Заранее спасибо!

...