Материалы three.js не применяются с использованием файлов .obj и .mtl

Я скачал бесплатную 3D-модель и пытаюсь просмотреть ее с помощью three.js. Модель загружается нормально, но материалы загружаются неправильно. Загружаются только винные бутылки за стойкой, ни к чему другому не применена текстура.

Пример сайта, показывающего проблему здесь

Вот как я загружаю модель:

// load in the bar 3d model
var mtlLoader = new THREE.MTLLoader();
mtlLoader.load( 'bar1/3d-model.mtl', function ( materials ) {

    materials.preload();

    var objLoader2 = new THREE.OBJLoader2();
    objLoader2.setMaterials( materials.materials );
    objLoader2.load( 'bar1/3d-model.obj', function ( event ) {

    scene.add( event.detail.loaderRootNode );

    }, function() {
        // success
    }, function() {
        // error
    });
});

Ваш .mtl файл не содержит никаких ссылок на файлы текстур, я думаю, вы можете посмотреть на источник: откуда вы это экспортируете и как? (если вы не использовали слово «текстура» для обозначения «процедурного определения материала с определенной спецификой» ... что намного сложнее получить похожий вид от источника к модулю визуализации в реальном времени).

Paul-Jan 10.08.2018 17:29

Ах хорошо. Я скачал его отсюда: cgtrader.com/free-3d-models/interior/office/wine-bar и использовал zip-архивы obj и MTL. Я просто предполагал, что он будет визуализирован, как на изображении. Я должен сам связывать текстуры с материалами или что-то в этом роде?

geoffs3310 11.08.2018 18:06
1
2
493
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы посмотрите на файл MTL, используемый вашим файлом OBJ, вы заметите, что он не имеет ссылки на карты текстур. На текстурные карты обычно ссылаются с помощью таких строк, как:

map_Ka image.jpg
map_Kd image.jpg
map_Ks image.jpg    
map_Nd image.jpg
map_d image.jpg
map_bump image.jpg

Если ваша модель не включает их, вы можете использовать 3D-редактор (например, Блендер), чтобы добавить их. Для получения дополнительной информации взгляните на Раздел текстурных карт формата файла OBJ.

Другие вопросы по теме