2012-12-20 5 views
7

i Three.js Revision 53ImageUtils.loadTexture mit Rückruf in Canvas Renderer

bin mit, wenn eine Textur in Canvas Renderer (IE auf Win7) geladen und einen Rückruf für das Ereignis onLoad hinzugefügt wird, wird die Textur nicht immer angezeigt. Wenn ich die Callback-Funktion zu entfernen, wird die Textur angezeigt bekommen, wie erwartet:

// ARBEITET NICHT mit Rückruf

hinzugefügt Rückruf ohne
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); 

// ARBEITS

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); 

Wenn den gleichen Code ausgeführt wird In WebGL Renderer (FF, Chrome auf Win7) funktionieren beide Beispiele gut.

Vielleicht bin offensichtlich hier tun ich kann mir jemand auf den Fehler hinweisen.

Vielen Dank.

Antwort

14

Versuchen Sie folgendes:

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

Excellent! Funktioniert beim Hinzufügen von THREE.UVMapping() als Mapping. –