Я импортировал файл .obj в Three-js, но модель не отображается должным образом. Модель отображается в виде каркаса и даже, кажется, добавляет геометрию, которая не существует.
Я предварительно просмотрел объект в браузере, используя https://3dviewer.net/, и проблем не было, поэтому я знаю, что это не сам объект.
Я добавил новый тип MIME для формата .obj (application / octet-stream) на мою машину, который, казалось, не имел никакого значения.
var crescentMaterial;
var crescentTexture;
var loader = new THREE.TextureLoader();
crescentTexture = loader.load(
'Textures/crescent.png', function () { }, function () {
renderer.render(scene);
});
crescentMaterial = new THREE.MeshPhongMaterial();
crescentMaterial.map = crescentTexture;
//Load 3d model
var modelLoader = new THREE.OBJLoader();
modelLoader.load(
'Models/concerto_crescent.obj',
function (obj) {
obj.traverse(function (child) {
if (child.isMesh) {
child.material = crescentMaterial;
}
});
scene.add(obj);
},
function (xhr) {
console.log((xhr.loaded / xhr.total * 100) + '% loaded');
},
function (error) {
console.log(error);
}
);
Первоначально это не было бысделать на всех. Я добавил это в файл web.config согласно полученному ответу, и он начал рендеринг
<staticContent>
<mimeMap fileExtension=".obj" mimeType="application/octet-stream" />
</staticContent>
Как модель рендерит: https://imgur.com/zu7rnyZ
Дополнительная геометрия: https://imgur.com/9fvrhLF
Как выглядит модель в Blender: https://imgur.com/A7xm4LB