Lors de l'utilisation du SMAAPass, un avertissement est enregistré:
THREE.WebGLRenderer: Texture marked for update but image is incomplete
Cet avertissement se produit car Image.complete
est faux, après avoir défini Image.complete
il semble qu'il est asynchrone.
Veuillez également inclure un exemple en direct si possible. Vous pouvez partir de ces modèles:
Tu as raison. Un correctif simple pourrait ressembler à la section de code suivante. Idéalement, il serait placé après cette ligne dans 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 );
Souhaitez-vous faire un PR avec les changements?
Cela ressemble à un hack pour moi. Veuillez considérer un modèle plus conventionnel:
var image = new Image();
image.src = dataURL;
var texture = new THREE.Texture( image );
image.onload = function () {
texture.needsUpdate = true;
};
En effet, c'est mieux 👍
Je vais le changer pour les rappels onload.
Commentaire le plus utile
Cela ressemble à un hack pour moi. Veuillez considérer un modèle plus conventionnel: