【发布时间】:2019-10-04 23:33:01
【问题描述】:
我已经将一个 .obj 文件导入到 Three-js 中,但它没有按预期渲染模型。该模型正在渲染为线框,甚至似乎正在添加不存在的几何图形。
我已经在浏览器中使用https://3dviewer.net/ 预览了对象并且没有问题,所以我知道它不是对象本身。
我为我的机器添加了一个新的 .obj 格式的 MIME 类型(应用程序/八位字节流),这似乎没有任何区别。
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
【问题讨论】:
标签: javascript asp.net three.js 3d