Browse Source

geometryContext -> geometry.

Ben Houston 9 years ago
parent
commit
9bc5094ad5

+ 17 - 20
src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl

@@ -1,27 +1,24 @@
-vec3 viewDir = normalize( -mvPosition.xyz );
-vec3 normal = normalize( transformedNormal );
-
 vec3 diffuse = vec3( 1.0 );
 
-
 IncidentLight incidentLight;
+
+GeometricContext geometry = GeometricContext( mvPosition.xyz, normalize( transformedNormal ), normalize( -mvPosition.xyz ) );
+GeometricContext backGeometry = GeometricContext( geometry.position, -geometry.normal, geometry.viewDir );
+
 ReflectedLight frontReflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ) );
 ReflectedLight backReflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ) );
 
-GeometricContext geometricContext = GeometricContext( mvPosition.xyz, normal, viewDir );
-GeometricContext backGeometricContext = GeometricContext( mvPosition.xyz, -normal, viewDir );
-
 #if MAX_POINT_LIGHTS > 0
 
 	for ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {
 
-		getPointIncidentLight( pointLights[ i ], geometricContext, incidentLight );
+		getPointIncidentLight( pointLights[ i ], geometry, incidentLight );
 
-		BRDF_Lambert( incidentLight, geometricContext, diffuse, frontReflectedLight );
+		BRDF_Lambert( incidentLight, geometry, diffuse, frontReflectedLight );
 
 		#ifdef DOUBLE_SIDED
 
-			BRDF_Lambert( incidentLight, backGeometricContext, diffuse, backReflectedLight );
+			BRDF_Lambert( incidentLight, backGeometry, diffuse, backReflectedLight );
 
 		#endif
 
@@ -33,13 +30,13 @@ GeometricContext backGeometricContext = GeometricContext( mvPosition.xyz, -norma
 
 	for ( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {
 
-		getSpotIncidentLight( spotLights[ i ], geometricContext, incidentLight );
+		getSpotIncidentLight( spotLights[ i ], geometry, incidentLight );
 
-		BRDF_Lambert( incidentLight, geometricContext, diffuse, frontReflectedLight );
+		BRDF_Lambert( incidentLight, geometry, diffuse, frontReflectedLight );
 
 		#ifdef DOUBLE_SIDED
 
-			BRDF_Lambert( incidentLight, backGeometricContext, diffuse, backReflectedLight );
+			BRDF_Lambert( incidentLight, backGeometry, diffuse, backReflectedLight );
 
 		#endif
 
@@ -51,13 +48,13 @@ GeometricContext backGeometricContext = GeometricContext( mvPosition.xyz, -norma
 
 	for ( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {
 
-		getDirIncidentLight( directionalLights[ i ], geometricContext, incidentLight );
+		getDirIncidentLight( directionalLights[ i ], geometry, incidentLight );
 
-		BRDF_Lambert( incidentLight, geometricContext, diffuse, frontReflectedLight );
+		BRDF_Lambert( incidentLight, geometry, diffuse, frontReflectedLight );
 
 		#ifdef DOUBLE_SIDED
 
-			BRDF_Lambert( incidentLight, backGeometricContext, diffuse, backReflectedLight );
+			BRDF_Lambert( incidentLight, backGeometry, diffuse, backReflectedLight );
 
 		#endif
 
@@ -69,15 +66,15 @@ GeometricContext backGeometricContext = GeometricContext( mvPosition.xyz, -norma
 
 	for ( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {
 
-		getHemisphereLightIndirect( hemisphereLights[ i ], geometricContext, , incidentLight );
+		getHemisphereLightIndirect( hemisphereLights[ i ], geometry, incidentLight );
 
-		BRDF_Lambert( incidentLight, geometricContext, , diffuse, frontReflectedLight );
+		BRDF_Lambert( incidentLight, geometry, diffuse, frontReflectedLight );
 
 		#ifdef DOUBLE_SIDED
 	
-			getHemisphereIncidentLight( hemisphereLights[ i ], backGeometricContext, incidentLight );
+			getHemisphereIncidentLight( hemisphereLights[ i ], backGeometry, incidentLight );
 
-			BRDF_Lambert( incidentLight, backGeometricContext, diffuse, backReflectedLight );
+			BRDF_Lambert( incidentLight, backGeometry, diffuse, backReflectedLight );
 
 		#endif
 

+ 18 - 19
src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl

@@ -1,5 +1,3 @@
-vec3 viewDir = normalize( vViewPosition );
-
 vec3 diffuse = diffuseColor.rgb;
 
 #ifdef METAL
@@ -19,21 +17,22 @@ vec3 diffuse = diffuseColor.rgb;
 #endif
 
 IncidentLight incidentLight;
+
+GeometricContext geometry = GeometricContext( -vViewPosition, normal, normalize(vViewPosition ) );
+
 ReflectedLight directReflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ) );
 ReflectedLight indirectReflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ) );
 
-GeometricContext geometricContext = GeometricContext( -vViewPosition, normal, viewDir );
-
 #if MAX_POINT_LIGHTS > 0
 
 	for ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {
 
-		getPointIncidentLight( pointLights[ i ], geometricContext, incidentLight );
+		getPointIncidentLight( pointLights[ i ], geometry, incidentLight );
 
-		BRDF_Lambert( incidentLight, geometricContext, diffuse, directReflectedLight );
-		//BRDF_OrenNayar( incidentLight, geometricContext, diffuse, 0.5, directReflectedLight );
+		BRDF_Lambert( incidentLight, geometry, diffuse, directReflectedLight );
+		//BRDF_OrenNayar( incidentLight, geometry, diffuse, 0.5, directReflectedLight );
 
-		BRDF_BlinnPhong( incidentLight, geometricContext, specular, shininess, directReflectedLight );
+		BRDF_BlinnPhong( incidentLight, geometry, specular, shininess, directReflectedLight );
 
 	}
 
@@ -43,12 +42,12 @@ GeometricContext geometricContext = GeometricContext( -vViewPosition, normal, vi
 
 	for ( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {
 
-		getSpotIncidentLight( spotLights[ i ], geometricContext, incidentLight );
+		getSpotIncidentLight( spotLights[ i ], geometry, incidentLight );
 
-		BRDF_Lambert( incidentLight, geometricContext, diffuse, directReflectedLight );
-		//BRDF_OrenNayar( incidentLight, geometricContext, diffuse, 0.5, directReflectedLight );
+		BRDF_Lambert( incidentLight, geometry, diffuse, directReflectedLight );
+		//BRDF_OrenNayar( incidentLight, geometry, diffuse, 0.5, directReflectedLight );
 
-		BRDF_BlinnPhong( incidentLight, geometricContext, specular, shininess, directReflectedLight );
+		BRDF_BlinnPhong( incidentLight, geometry, specular, shininess, directReflectedLight );
 
 	}
 
@@ -58,12 +57,12 @@ GeometricContext geometricContext = GeometricContext( -vViewPosition, normal, vi
 
 	for( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {
 
-		getDirIncidentLight( directionalLights[ i ], geometricContext, incidentLight );
+		getDirIncidentLight( directionalLights[ i ], geometry, incidentLight );
 
-		BRDF_Lambert( incidentLight, geometricContext, diffuse, directReflectedLight );
-		//BRDF_OrenNayar( incidentLight, geometricContext, diffuse, 0.5, directReflectedLight );
+		BRDF_Lambert( incidentLight, geometry, diffuse, directReflectedLight );
+		//BRDF_OrenNayar( incidentLight, geometry, diffuse, 0.5, directReflectedLight );
 
-		BRDF_BlinnPhong( incidentLight, geometricContext, specular, shininess, directReflectedLight );
+		BRDF_BlinnPhong( incidentLight, geometry, specular, shininess, directReflectedLight );
 
 	}
 
@@ -73,10 +72,10 @@ GeometricContext geometricContext = GeometricContext( -vViewPosition, normal, vi
 
 	for( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {
 
-		getHemisphereIncidentLight( hemisphereLights[ i ], geometricContext, incidentLight );
+		getHemisphereIncidentLight( hemisphereLights[ i ], geometry, incidentLight );
 
-		BRDF_Lambert( incidentLight, geometricContext, diffuse, indirectReflectedLight );
-		//BRDF_OrenNayar( incidentLight, geometricContext, diffuse, 0.5, indirectReflectedLight );
+		BRDF_Lambert( incidentLight, geometry, diffuse, indirectReflectedLight );
+		//BRDF_OrenNayar( incidentLight, geometry, diffuse, 0.5, indirectReflectedLight );
 
 	}