فهرست منبع

Refactored shadow coordinates generation to use less matrix multiplications.

alteredq 13 سال پیش
والد
کامیت
8c25afa53f
3فایلهای تغییر یافته به همراه12 افزوده شده و 10 حذف شده
  1. 0 0
      build/Three.js
  2. 0 0
      build/custom/ThreeWebGL.js
  3. 12 10
      src/renderers/WebGLShaders.js

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
build/Three.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
build/custom/ThreeWebGL.js


+ 12 - 10
src/renderers/WebGLShaders.js

@@ -1357,25 +1357,27 @@ THREE.ShaderChunk = {
 
 		"#ifdef USE_SHADOWMAP",
 
-			"for( int i = 0; i < MAX_SHADOWS; i ++ ) {",
+			"vec4 transformedPosition;",
 
-				"#ifdef USE_MORPHTARGETS",
+			"#ifdef USE_MORPHTARGETS",
 
-					"vShadowCoord[ i ] = shadowMatrix[ i ] * objectMatrix * vec4( morphed, 1.0 );",
+				"transformedPosition = objectMatrix * vec4( morphed, 1.0 );",
 
-				"#else",
+			"#else",
+			"#ifdef USE_SKINNING",
 
-				"#ifdef USE_SKINNING",
+				"transformedPosition = objectMatrix * skinned;",
 
-					"vShadowCoord[ i ] = shadowMatrix[ i ] * objectMatrix * skinned;",
+			"#else",
 
-				"#else",
+				"transformedPosition = objectMatrix * vec4( position, 1.0 );",
 
-					"vShadowCoord[ i ] = shadowMatrix[ i ] * objectMatrix * vec4( position, 1.0 );",
+			"#endif",
+			"#endif",
 
-				"#endif",
+			"for( int i = 0; i < MAX_SHADOWS; i ++ ) {",
 
-				"#endif",
+				"vShadowCoord[ i ] = shadowMatrix[ i ] * transformedPosition;",
 
 			"}",
 

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است