Я загрузил бесплатную 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, используемый вашим 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-редактор (например, Blender), чтобы добавить их. Дополнительные сведения см. В разделе "Карты текстур" в формате файла OBJ.