Преглед на файлове

Do not generate mipmaps if render target generateMipmaps is not set.

This also fixes two examples that had generateMipmaps set to false but
requested LinearMipMapLinearFilter which after the changes results in
a WebGL error.

Fixes #6316
Jan Wrobel преди 10 години
родител
ревизия
c24855eedf
променени са 3 файла, в които са добавени 5 реда и са изтрити 3 реда
  1. 2 0
      examples/js/WaterShader.js
  2. 1 1
      examples/webgl_terrain_dynamic.html
  3. 2 2
      src/renderers/WebGLRenderer.js

+ 2 - 0
examples/js/WaterShader.js

@@ -177,7 +177,9 @@ THREE.Water = function ( renderer, camera, scene, options ) {
 	if ( !THREE.Math.isPowerOfTwo(width) || !THREE.Math.isPowerOfTwo(height) )
 	if ( !THREE.Math.isPowerOfTwo(width) || !THREE.Math.isPowerOfTwo(height) )
 	{
 	{
 		this.texture.generateMipmaps = false;
 		this.texture.generateMipmaps = false;
+		this.texture.minFilter = THREE.LinearFilter;
 		this.tempTexture.generateMipmaps = false;
 		this.tempTexture.generateMipmaps = false;
+		this.tempTexture.minFilter = THREE.LinearFilter;
 	}
 	}
 
 
 	this.updateTextureMatrix();
 	this.updateTextureMatrix();

+ 1 - 1
examples/webgl_terrain_dynamic.html

@@ -314,7 +314,7 @@
 				var normalShader = THREE.NormalMapShader;
 				var normalShader = THREE.NormalMapShader;
 
 
 				var rx = 256, ry = 256;
 				var rx = 256, ry = 256;
-				var pars = { minFilter: THREE.LinearMipmapLinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBFormat };
+				var pars = { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBFormat };
 
 
 				heightMap  = new THREE.WebGLRenderTarget( rx, ry, pars );
 				heightMap  = new THREE.WebGLRenderTarget( rx, ry, pars );
 				heightMap.generateMipmaps = false;
 				heightMap.generateMipmaps = false;

+ 2 - 2
src/renderers/WebGLRenderer.js

@@ -4383,7 +4383,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 				}
 				}
 
 
-				if ( isTargetPowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_CUBE_MAP );
+				if ( renderTarget.generateMipmaps && isTargetPowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_CUBE_MAP );
 
 
 			} else {
 			} else {
 
 
@@ -4424,7 +4424,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 				}
 				}
 
 
-				if ( isTargetPowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_2D );
+				if ( renderTarget.generateMipmaps && isTargetPowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_2D );
 
 
 			}
 			}