Ao usar o SMAAPass, um aviso é registrado:
THREE.WebGLRenderer: Texture marked for update but image is incomplete
Este aviso ocorre porque Image.complete
é falso, após definir Image.complete
parece que é assíncrono.
Inclua também um exemplo ao vivo, se possível. Você pode começar com estes modelos:
Você está certo. Uma correção simples pode ser semelhante à seção de código a seguir. Idealmente, seria colocado após esta linha em SMAAPass
:
var self = this;
setTimeout( function () {
// assigning data to HTMLImageElement.src is asynchronous (see #15162)
// using setTimeout() avoids the warning "Texture marked for update but image is incomplete"
self.searchTexture.needsUpdate = true;
self.areaTexture.needsUpdate = true;
}, 0 );
Você gostaria de fazer uma RP com as mudanças?
Isso parece um hack para mim. Considere um padrão mais convencional:
var image = new Image();
image.src = dataURL;
var texture = new THREE.Texture( image );
image.onload = function () {
texture.needsUpdate = true;
};
Na verdade, isso é melhor 👍
Vou alterá-lo para retornos de chamada onload.
Comentários muito úteis
Isso parece um hack para mim. Considere um padrão mais convencional: