Как можно равномерно (проверяющие блоки одинакового размера) настраиваемого клетчатого изображения текстуры, которое применяется ко всем объектам Model, загруженным в Three Js? - PullRequest
0 голосов
/ 09 января 2019

Я загрузил одну модель (файл obj) в три js и применил пользовательское изображение текстуры проверки для всех объектов. Текстура наносится на модель. Но проблема в том, что - контролеры не одинаковы - некоторые контролеры выглядят маленькими, а некоторые - больше.

Вот ссылка скриншота.

Есть ли способ это исправить? Я имею в виду - любой расчет по геометрии или любые встроенные свойства текстуры и т. Д. В течение трех js.

Вот ссылка файла модели Model.obj

загрузил эту модель в три js и применил текстуру image .

// Ниже некоторого кода, который я пробовал.

function loadModel() {
    object.traverse( function ( child ) {

        if (child.type.toLowerCase() == "mesh" && child.material) {

            if (child.material.length) {
                for (var i=0; i < child.material.length; i++) {
                    child.material[i].map = texture;
                    child.material[i].needsUpdate = true;
                }
            }
            else {
                child.material.map = texture;
                child.material.needsUpdate = true;
            }               
        }
    } );
    scene.add( object );
}

manager = new THREE.LoadingManager( loadModel );

manager.onProgress = function ( item, loaded, total ) {

  console.log( item, loaded, total );
};

textureLoader = new THREE.TextureLoader( manager );

texture = textureLoader.load(currentTextureUrl); // texture checker image

texture.onUpdate = true;


function onProgress( xhr ) {

    if ( xhr.lengthComputable ) {
        var percentComplete = xhr.loaded / xhr.total * 100;
        console.log( 'model ' + Math.round( percentComplete, 2 ) + '% downloaded' );
    }
}

                function onError() {}

var loader = new THREE.OBJLoader( manager );


loader.load(modals.currentModal.objectFile, function ( obj ) {

 object = obj;                      
}, onProgress, onError );
...