Ver código fonte

Merge pull request #15165 from cadenasgmbh/SMAAPass_texture_complete

SMAAPass: Texture marked for update but image is incomplete
Mr.doob 6 anos atrás
pai
commit
4bda01ea27
1 arquivos alterados com 15 adições e 6 exclusões
  1. 15 6
      examples/js/postprocessing/SMAAPass.js

+ 15 - 6
examples/js/postprocessing/SMAAPass.js

@@ -27,29 +27,38 @@ THREE.SMAAPass = function ( width, height ) {
 	this.weightsRT.texture.name = "SMAAPass.weights";
 
 	// textures
+	var self = this;
 
 	var areaTextureImage = new Image();
-	areaTextureImage.src = this.getAreaTexture();
-
 	this.areaTexture = new THREE.Texture();
+
+	areaTextureImage.src = this.getAreaTexture();
+	areaTextureImage.onload = function() {
+		// assigning data to HTMLImageElement.src is asynchronous (see #15162)
+		self.areaTexture.needsUpdate = true;
+	};
+	
 	this.areaTexture.name = "SMAAPass.area";
 	this.areaTexture.image = areaTextureImage;
 	this.areaTexture.format = THREE.RGBFormat;
 	this.areaTexture.minFilter = THREE.LinearFilter;
 	this.areaTexture.generateMipmaps = false;
-	this.areaTexture.needsUpdate = true;
 	this.areaTexture.flipY = false;
 
 	var searchTextureImage = new Image();
-	searchTextureImage.src = this.getSearchTexture();
-
 	this.searchTexture = new THREE.Texture();
+	
+	searchTextureImage.src = this.getSearchTexture();
+	searchTextureImage.onload = function() {
+		// assigning data to HTMLImageElement.src is asynchronous (see #15162)
+		self.searchTexture.needsUpdate = true;
+	};
+	
 	this.searchTexture.name = "SMAAPass.search";
 	this.searchTexture.image = searchTextureImage;
 	this.searchTexture.magFilter = THREE.NearestFilter;
 	this.searchTexture.minFilter = THREE.NearestFilter;
 	this.searchTexture.generateMipmaps = false;
-	this.searchTexture.needsUpdate = true;
 	this.searchTexture.flipY = false;
 
 	// materials - pass 1