2017-04-18 10 views
0

JSONloaderを使用してthree.jsでモデルを読み込むと、それはうまく動作しますが、唯一の問題はステップまたはドキュメントであり、テクスチャ(画像)をプリロードするのに役立ちます。私はインタラクションを作成します(マウスクリックで画像を切り替えます)。three.js内のJSONLOADER

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

この問題には多くの方法がありますが、3つの.jsとはあまり関係がありません。三つはLoadingManagerクラスが付属していません

、私はそれがこのようなものだと信じて:

function onAllMyTexturesLoaded() {...} 
function onSingleTextureLoaded() {...} 
myTextureManager = new THREE.LoadingManager(onAllMyTexturesLoaded , onSingleTextureLoaded , onError) 

myTextureLoader = new THREE.TextureLoader(myTextureManager) 

すべてのテクスチャがロードされるとあなたのメッシュのロードを開始することができます。このローダ経由でロードするものは、それらのコールバックを起動する必要があります。

また、テクスチャIDを辞書に入れ、入力時にtrueに設定し、キーを繰り返して、それらがすべて真であるかどうかを確認してイベントを発生させることができます。

関連する問題