2016-03-25 3 views
0

こんにちはみんなうまくいきませんでした。ここでThree.js - Using CubeTextureLoader to create a different image on each face of a cubeThree.jsキューブ - 異なるテクスチャは、私がtheardこのtheardに準拠して、私のthee.jsの各面に6つのテクスチャを入れたかった

を私のコードです:

scene = new THREE.Scene(); 
    var textureLoader = new THREE.TextureLoader(); 

    var texture0 = textureLoader.load('crate1.gif'); 
    var texture1 = textureLoader.load('crate3.gif'); 
    var texture2 = textureLoader.load('crate4.gif'); 
    var texture3 = textureLoader.load('crate5.gif'); 
    var texture4 = textureLoader.load('crate6.gif'); 
    var texture5 = textureLoader.load('crate7.gif'); 

    var materials = [ 
     new THREE.MeshBasicMaterial({ map: texture0 }), 
     new THREE.MeshBasicMaterial({ map: texture1 }), 
     new THREE.MeshBasicMaterial({ map: texture2 }), 
     new THREE.MeshBasicMaterial({ map: texture3 }), 
     new THREE.MeshBasicMaterial({ map: texture4 }), 
     new THREE.MeshBasicMaterial({ map: texture5 }) 
    ]; 

    var faceMaterial = new THREE.MultiMaterial(materials); 

    var geometry = new THREE.BoxGeometry(20, 20, 20,1,1,1); 
    var mesh = new THREE.Mesh(geometry, faceMaterial); 

    scene.add(mesh); 
    renderer = new THREE.WebGLRenderer(); 

ページをロードするとき、キューブはありません。何もない。 私は唯一のテクスチャを使用するときには、このjsfiddleが役立つかもしれない...

+0

私はこれを試してみてください。サーバーインスタンスでこれを実行していますか(システム上の差分ロードを感じていますか?) var texture0 = new THREE.TextureLoader()。load( 'var texture1 = new THREE.TextureLoader()。load( 'crate3.gif'); var texture2 = new THREE.TextureLoader()。load( 'crate4.gif'); var texture3 =var THREE.TextureLoader()。( 'crate6.gif'); var texture5 =新しいTHREE.TextureLoader()。load( 'crate5.gif'); crate7.gif '); –

答えて

0

を動作します。それは、単一のテクスチャで動作するかどうか、それをこのように初期化http://jsfiddle.net/plotnik/8RtTy/3/

をしてから設定します。

mesh.material = faceMaterial; 
mesh.material.needsUpdate = true; 

render()を呼び出してください。

関連する問題