我最近从r58更新到版本r61并且发现使用JSONLoader即使我只想返回几何体,我仍然在我的model.js文件中的着色器的纹理调用中获得404。
loadModel: function( label, domobject, callback ) {
var model_path = '/models/js/' + label + '.js';
var texture_place = '/textures/' + label + '.jpg';
var loader = new THREE.JSONLoader()
function onLoad(event) {
domobject.append( Set.renderer.domElement );
}
var texture = new THREE.ImageUtils.loadTexture( texture_place, null, onLoad );
loader.load( model_path, function ( geometry ) {
var material = new THREE.MeshLambertMaterial({map: texture});
Set.asset = new THREE.Mesh( geometry, material );
Set.asset.position.x = Set.asset.position.y = Set.asset.position.z = 0;
Set.asset.scale.x = Set.asset.scale.y = Set.asset.scale.z = 1;
if ( callback ) callback();
});
},
我这样设置,以防止模型加载黑色然后弹出纹理,这是很好的。我期望使用JSONLoader的行为是
loader.load(model_path,函数(geometry,materials)将深入到模型文件中并查找材质和纹理,只需指定'geometry'就会忽略着色器/纹理。
此外,
有没有更简单的方法来使用JSONLoader它的texturePath参数和onLoad函数来确保我的geo在纹理加载完成之前不会被渲染?
谢谢!