Преглед изворни кода

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) )
 	{
 		this.texture.generateMipmaps = false;
+		this.texture.minFilter = THREE.LinearFilter;
 		this.tempTexture.generateMipmaps = false;
+		this.tempTexture.minFilter = THREE.LinearFilter;
 	}
 
 	this.updateTextureMatrix();

+ 1 - 1
examples/webgl_terrain_dynamic.html

@@ -314,7 +314,7 @@
 				var normalShader = THREE.NormalMapShader;
 
 				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.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 {
 
@@ -4424,7 +4424,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 				}
 
-				if ( isTargetPowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_2D );
+				if ( renderTarget.generateMipmaps && isTargetPowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_2D );
 
 			}