فهرست منبع

Normalize reflected vector

WestLangley 8 سال پیش
والد
کامیت
acc62553b4
1فایلهای تغییر یافته به همراه8 افزوده شده و 0 حذف شده
  1. 8 0
      src/renderers/shaders/ShaderChunk/envmap_fragment.glsl

+ 8 - 0
src/renderers/shaders/ShaderChunk/envmap_fragment.glsl

@@ -30,13 +30,21 @@
 	#elif defined( ENVMAP_TYPE_EQUIREC )
 	#elif defined( ENVMAP_TYPE_EQUIREC )
 
 
 		vec2 sampleUV;
 		vec2 sampleUV;
+
+		reflectVec = normalize( reflectVec );
+
 		sampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
 		sampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
+
 		sampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;
 		sampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;
+
 		vec4 envColor = texture2D( envMap, sampleUV );
 		vec4 envColor = texture2D( envMap, sampleUV );
 
 
 	#elif defined( ENVMAP_TYPE_SPHERE )
 	#elif defined( ENVMAP_TYPE_SPHERE )
 
 
+		reflectVec = normalize( reflectVec );
+
 		vec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );
 		vec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );
+
 		vec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );
 		vec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );
 
 
 	#else
 	#else