最近、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, function (geometry, materials) はモデル ファイルを掘り下げてマテリアルとテクスチャを探しますが、「geometry」を指定するだけではシェーダ/テクスチャが無視されます。
さらに、
JSONLoader の texturePath 引数と onLoad 関数を使用して、テクスチャの読み込みが完了する前にジオメトリがレンダリングされないようにする、より簡単な方法はありますか?
ありがとう!