我已经能够使用three.js API从具有OBJ格式的3D模型文件中的相应纹理加载和渲染3D模型。我想尝试使用 JSON (.js) 格式加载模型。所以我下载了一个 3D 模型(这个工厂)并使用mrdoob python 脚本将其转换为 JSON 格式。它输出了一个 .js 文件以及文件夹内的纹理。我将所有内容原封不动地复制到我的 localhost 文件夹中,并将下面的代码插入到我的 html 页面中,希望得到具有所有纹理的磨机:
var loader = new THREE.JSONLoader();
loader.load( 'mill.js', function ( geometry ) {
var mesh = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial({overdraw: true}));
mesh.scale.set(0.005, 0.005, 0.005);
mesh.castShadow=true;
scene.add( mesh ); });
但我得到的结果是这样的:
显然它缺少相应的纹理。我看了看里面的mill.js
文件;虽然我不明白,但我可以看到纹理是在materials
数组中引入的。虽然 JSON 文件引用了相应的纹理,但我应该在我的代码中做什么才能将纹理带到模型表面?