Saludos,
en este fragmento de código, ¿podemos evitar configurar d.crossOrigin cuando estamos tratando con una URL de datos?
THREE.ImageUtils = {crossOrigin: "",loadTexture: function(a, b, c) {
var d = new Image, e = new THREE.Texture(d, b);
d.onload = function() {
e.needsUpdate = !0;
c && c(this)
};
d.crossOrigin = this.crossOrigin;
d.src = a;
return e
Puede agregar un cheque como este:
if( a.substr(0,4) != "data" )
d.crossOrigin = this.crossOrigin;
esto hace el truco. De lo contrario, Chrome 17 arroja una carga de imagen de origen cruzado denegada por la política de uso compartido de recursos de origen cruzado para una URL de datos.
T.
Hmm ... Creo que no deberías usar ImageUtils.loadTexture en ese caso. Solo haz esto:
var image = document.createElement( 'img' );
image.src = dataurl;
var texture = new THREE.Texture( image );
texture.needsUpdate = true;
Funciona perfectamente, gracias!
@mrdoob , ¡gracias por la muestra de arriba!
Comentario más útil
Hmm ... Creo que no deberías usar ImageUtils.loadTexture en ese caso. Solo haz esto: