Bläddra i källkod

Clarify capability and extension checks.

yellowtailfan 4 år sedan
förälder
incheckning
4737c9ee98
1 ändrade filer med 19 tillägg och 6 borttagningar
  1. 19 6
      src/renderers/webgl/WebGLLights.js

+ 19 - 6
src/renderers/webgl/WebGLLights.js

@@ -407,19 +407,32 @@ function WebGLLights( extensions, capabilities ) {
 
 		if ( rectAreaLength > 0 ) {
 
-			if ( capabilities.isWebGL2 || extensions.has( 'OES_texture_float_linear' ) ) {
+			if ( capabilities.isWebGL2 ) {
+
+				// WebGL 2
 
 				state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;
 				state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;
 
-			} else if ( extensions.has( 'OES_texture_half_float_linear' ) ) {
+			} else {
 
-				state.rectAreaLTC1 = UniformsLib.LTC_HALF_1;
-				state.rectAreaLTC2 = UniformsLib.LTC_HALF_2;
+				// WebGL 1
 
-			} else {
+				if ( extensions.has( 'OES_texture_float_linear' ) == true ) {
+
+					state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;
+					state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;
+
+				} else if ( extensions.has( 'OES_texture_half_float_linear' ) == true ) {
 
-				console.error( 'THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.' );
+					state.rectAreaLTC1 = UniformsLib.LTC_HALF_1;
+					state.rectAreaLTC2 = UniformsLib.LTC_HALF_2;
+
+				} else {
+
+					console.error( 'THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.' );
+
+				}
 
 			}