【发布时间】:2013-11-15 00:44:26
【问题描述】:
我从turbosquid 下载了一个免费模型。它包含一个 obj 和 mtl,以及纹理(镜面反射、凹凸贴图等)。现在我只对 mtl 和 obj 文件感兴趣。所以我下载了一个免费模型from here(它是一辆车)。然后我使用以下代码加载模型:
var loader= new THREE.OBJMTLLoader();
loader.load("./L200-Obj/L200-Obj.obj","./L200-Obj/L200-Obj.mtl",function(object) {
scene.add(object);
}
我已经检查了路径并且它们没问题(我尝试记录object,它是一个有效且有效的对象)。现在的问题是我看到黑屏,原因是 mtl 文件以某种方式“不考虑”。如果我尝试添加材料:
object.traverse(function(child) {
child.material= someMaterial;
});
然后我看到了我设置的材料的汽车,汽车的形状很好。我还尝试加载纹理:
var map= THREE.ImageUtils.loadTexture("./L200-Obj/truck_color-silver.jpg");
var bumpMap= THREE.ImageUtils.loadTexture("./L200-Obj/truck_bump.jpg");
var specularMap= THREE.ImageUtils.loadTexture("./L200-Obj/truck_spec.jpg");
var material= new THREE.MeshPhongMaterial({
map: map,
specularMap: specularMap,
bumpMap: bumpMap
});
// Set it as material with the above code
它们很好,汽车看起来不错,但问题是:obj 和 mtl 文件不应该足以显示汽车的颜色吗?即使我不设置材料,我不应该看到汽车的颜色吗?我做错了吗?
【问题讨论】:
-
您链接的汽车模型被描述为使用 Quads...我认为不是由 THREE.js 处理的?
标签: javascript three.js