У меня есть набор моделей в формате *.obj, которые поставляются без файлов материалов (файлы *.mtl). Некоторые онлайн-сервисы отображают эти модели корректно: https://3dviewer.net/ , https://sketchfab.com/. Но, согласно документации three.js, в моем проекте я получаю только неправильное отображение модели:
вместо:
Разработчик https://3dviewer.net/ рассказал, что идея на этом сервисе в том, что если *.mtl файл не найден, то скрипт устанавливает цвет/материал по умолчанию - окрашивает все изделие в один цвет.
Как раскрасить объект из файла *.obj в выбранный цвет с помощью инструментов three.js?
Для тестирования прилагаю файл модели, которая идет без файла материала: тестовый образец *.obj файл.
🤔 А знаете ли вы, что...
JavaScript позволяет создавать динамические и интерактивные веб-приложения.
Кажется, OBJ не экспортируется правильно. При использовании предварительного просмотра macOS, BabylonJS или OBJLoader
of three.js кажется, что лица имеют неправильный порядок намотки. Вы должны получить желаемый результат, выполнив следующие действия в обратном вызове onLoad()
:
const material = new THREE.MeshPhongMaterial( { color: 0xff0000, side: THREE.BackSide } );
obj.traverse( function( child ) {
if ( child.isMesh ) child.material = material;
} );