2012-12-20 2 views
7

sto usando Three.js revisione 53ImageUtils.loadTexture con richiamata in Canvas renderer

durante il caricamento di una texture in Canvas Renderer (IE su Win7) e l'aggiunta di un callback per l'evento onLoad, la trama non è sempre visualizzato. Quando rimuovo la funzione di callback, la trama è sempre visualizzato come previsto:

// che non funziona con callback aggiunto

var material = new THREE.MeshBasicMaterial({ 
      map: THREE.ImageUtils.loadTexture('text_build.png', {}, function() 
      { 
//do something 
      }) 
}); 
var plane = new THREE.Mesh(new THREE.PlaneGeometry(135, 135), material); 
plane .overdraw = true; 
scene.add(plane); 

// lavoro senza callback

var material = new THREE.MeshBasicMaterial({ 
      map: THREE.ImageUtils.loadTexture('text_build.png') 
}); 
var plane = new THREE.Mesh(new THREE.PlaneGeometry(135, 135), material); 
plane .overdraw = true; 
scene.add(plane); 

Quando si esegue lo stesso codice in WebGL Renderer (FF, Chrome su WIn7), entrambi gli esempi funzionano bene.

Forse qualcuno può indicarmi l'errore che sto ovviamente facendo qui.

Grazie mille.

risposta

14

Prova questa:

var material = new THREE.MeshBasicMaterial({  
    map: THREE.ImageUtils.loadTexture('text_build.png', new THREE.UVMapping(), function() { ... }) 
}); 
+2

Eccellente! Funziona quando si aggiunge THREE.UVMapping() come mapping. –