Threejs / glTF - черные пятна на сетке - PullRequest
0 голосов
/ 04 июля 2018

Я получаю странные черные пятна на сетке, загруженной в три раза в glTF. У кого-нибудь уже были такие проблемы раньше?

Сетка тяжелая 145 663 вершин, большая часть имеет 89 000 вершин

Я использую версию r94 of threejs и загружаю меш следующим кодом:

`

function setup(scene, camera, renderer) {
    var loader = new THREE.GLTFLoader();
    THREE.DRACOLoader.setDecoderPath( 'js/libs/draco/gltf/' );
    loader.setDRACOLoader( new THREE.DRACOLoader() );

    // Load a glTF resource
    loader.load(
        // resource URL
        'mesh/ExportAllcleanNoMap.glb',
        // called when the resource is loaded
        function ( gltf ) {

            gltf.scene.scale.set(10,10,10);
            scene.add( gltf.scene );
            var anim = gltf.animations[0];

            mixer = new THREE.AnimationMixer( gltf.scene );

            var action = mixer.clipAction(anim);
            action.play();

            orbitControls = new THREE.OrbitControls( camera, renderer.domElement );
            orbitControls.target.set( 0, 1, 0 );
            orbitControls.update();

            light = new THREE.HemisphereLight( 0xbbbbff, 0x444422, 2 );
            light.position.set( 0, 1, 0 );
            scene.add( light );

            scene.add(light);
            var ambient = new THREE.AmbientLight( 0x222222 );
            scene.add( ambient );
        },
        // called while loading is progressing
        function ( xhr ) {

            console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );

        },
        // called when loading has errors
        function ( error ) {
            console.log(error);
            console.log( 'An error happened' );

        }
    );
}
`

Спасибо.

Редактировать: Черное пятно не появляется, когда сжатие дракона отключено. Похоже, проблема между Threejs, Draco и Heavy Mesh.

Черное пятно на сетке
Black spot on mesh

1 Ответ

0 голосов
/ 05 июля 2018

Это похоже на удвоенную геометрию. У вас есть две копии модели, идеально расположенные друг над другом.

Проверьте программное обеспечение для моделирования, выбрав вершины одного объекта и переместив их, и посмотрите, не скрывается ли за ними дубликат.

Если вы используете blender, вы можете выбрать одну вершину в соответствующей области в режиме редактирования и выполнить ctrl L, чтобы выбрать связанные вершины ... затем отодвинуть их в сторону и посмотреть, не скрывается ли за ними геометрия.

...