我使用JSONloader在three.js中加载模型,它工作得很好,唯一的问题是步骤或甚至文档,这将帮助我预先加载纹理(这是图像),以便我创建一个交互(用鼠标点击切换图像)。
var loader = new THREE.JSONLoader(),
callbackKey = function(geometry,materials) {createScene(geometry,materials,0, 0, 0, 25)};
loader.load("3dmodel/Converse_obj/converse_obj.js", callbackKey);
window.addEventListener('resize', onWindowResize, false);
}
function createScene(geometry,materials, x, y, z, scale) {
zmesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
zmesh.position.set(x, y, z);
zmesh.scale.set(scale, scale, scale);
meshes.push(zmesh);
scene.add(zmesh);
}
发布于 2017-04-19 10:15:56
解决这个问题的方法有很多,可能与three.js没有太多关系。
LoadingManager类包含三个类,我相信它是这样的:
function onAllMyTexturesLoaded () {...}
function onSingleTextureLoaded() {...}
myTextureManager = new THREE.LoadingManager( onAllMyTexturesLoaded , onSingleTextureLoaded , onError )
myTextureLoader = new THREE.TextureLoader( myTextureManager )
加载完所有纹理后,即可开始加载网格。通过这个加载器加载的任何东西都应该触发这些回调。
你也可以把纹理id放在字典里,当它们进来的时候把它们标记为true,遍历键,看看它们是否都是真的,然后触发一个事件。
https://stackoverflow.com/questions/43463579
复制相似问题