我使用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);
}
答案 0 :(得分:0)
有很多方法可以解决这个问题,它可能与three.js没什么关系。
三个确实来自LoadingManager课程,我相信它是这样的:
function onAllMyTexturesLoaded () {...}
function onSingleTextureLoaded() {...}
myTextureManager = new THREE.LoadingManager( onAllMyTexturesLoaded , onSingleTextureLoaded , onError )
myTextureLoader = new THREE.TextureLoader( myTextureManager )
加载完所有纹理后,您可以开始加载网格物体。通过此加载程序加载的任何内容都应该触发这些回调。
您还可以将纹理ID放在字典中,当它们进入时将它们标记为true,遍历键并查看它们是否都为真,触发事件。