Browse Source

ShaderChunks: Simplified normals vertex code.

Mr.doob 10 years ago
parent
commit
28fed3a304

+ 2 - 0
src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl

@@ -0,0 +1,2 @@
+
+vec3 objectNormal = vec3( normal );

+ 0 - 14
src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl

@@ -1,17 +1,3 @@
-#ifdef USE_SKINNING
-
-	vec3 objectNormal = skinnedNormal.xyz;
-
-#elif defined( USE_MORPHNORMALS )
-
-	vec3 objectNormal = morphedNormal;
-
-#else
-
-	vec3 objectNormal = normal;
-
-#endif
-
 #ifdef FLIP_SIDED
 #ifdef FLIP_SIDED
 
 
 	objectNormal = -objectNormal;
 	objectNormal = -objectNormal;

+ 4 - 5
src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl

@@ -1,9 +1,8 @@
 #ifdef USE_MORPHNORMALS
 #ifdef USE_MORPHNORMALS
 
 
-	vec3 morphedNormal = vec3( normal );
-	morphedNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];
-	morphedNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];
-	morphedNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];
-	morphedNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];
+	objectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];
+	objectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];
+	objectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];
+	objectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];
 
 
 #endif
 #endif

+ 1 - 9
src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl

@@ -7,14 +7,6 @@
 	skinMatrix += skinWeight.w * boneMatW;
 	skinMatrix += skinWeight.w * boneMatW;
 	skinMatrix  = bindMatrixInverse * skinMatrix * bindMatrix;
 	skinMatrix  = bindMatrixInverse * skinMatrix * bindMatrix;
 
 
-	#ifdef USE_MORPHNORMALS
-
-	vec4 skinnedNormal = skinMatrix * vec4( morphedNormal, 0.0 );
-
-	#else
-
-	vec4 skinnedNormal = skinMatrix * vec4( normal, 0.0 );
-
-	#endif
+	objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;
 
 
 #endif
 #endif

+ 3 - 0
src/renderers/shaders/ShaderLib.js

@@ -41,6 +41,7 @@ THREE.ShaderLib = {
 
 
 			"	#ifdef USE_ENVMAP",
 			"	#ifdef USE_ENVMAP",
 
 
+				THREE.ShaderChunk[ "beginnormal_vertex" ],
 				THREE.ShaderChunk[ "morphnormal_vertex" ],
 				THREE.ShaderChunk[ "morphnormal_vertex" ],
 				THREE.ShaderChunk[ "skinnormal_vertex" ],
 				THREE.ShaderChunk[ "skinnormal_vertex" ],
 				THREE.ShaderChunk[ "defaultnormal_vertex" ],
 				THREE.ShaderChunk[ "defaultnormal_vertex" ],
@@ -154,6 +155,7 @@ THREE.ShaderLib = {
 				THREE.ShaderChunk[ "uv2_vertex" ],
 				THREE.ShaderChunk[ "uv2_vertex" ],
 				THREE.ShaderChunk[ "color_vertex" ],
 				THREE.ShaderChunk[ "color_vertex" ],
 
 
+				THREE.ShaderChunk[ "beginnormal_vertex" ],
 				THREE.ShaderChunk[ "morphnormal_vertex" ],
 				THREE.ShaderChunk[ "morphnormal_vertex" ],
 				THREE.ShaderChunk[ "skinbase_vertex" ],
 				THREE.ShaderChunk[ "skinbase_vertex" ],
 				THREE.ShaderChunk[ "skinnormal_vertex" ],
 				THREE.ShaderChunk[ "skinnormal_vertex" ],
@@ -293,6 +295,7 @@ THREE.ShaderLib = {
 				THREE.ShaderChunk[ "uv2_vertex" ],
 				THREE.ShaderChunk[ "uv2_vertex" ],
 				THREE.ShaderChunk[ "color_vertex" ],
 				THREE.ShaderChunk[ "color_vertex" ],
 
 
+				THREE.ShaderChunk[ "beginnormal_vertex" ],
 				THREE.ShaderChunk[ "morphnormal_vertex" ],
 				THREE.ShaderChunk[ "morphnormal_vertex" ],
 				THREE.ShaderChunk[ "skinbase_vertex" ],
 				THREE.ShaderChunk[ "skinbase_vertex" ],
 				THREE.ShaderChunk[ "skinnormal_vertex" ],
 				THREE.ShaderChunk[ "skinnormal_vertex" ],

+ 1 - 0
utils/build/includes/common.json

@@ -96,6 +96,7 @@
 	"src/renderers/shaders/ShaderChunk/aomap_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/aomap_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/begin_vertex.glsl",
 	"src/renderers/shaders/ShaderChunk/begin_vertex.glsl",
+	"src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl",
 	"src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/color_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/color_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl",