Browse Source

#ifdef vertex lighting shader code.
Added missing dependency for GLSL shaders.

Lasse Öörni 14 years ago
parent
commit
9478103cd0
3 changed files with 20 additions and 16 deletions
  1. 1 1
      CMakeLists.txt
  2. 7 5
      SourceAssets/GLSLShaders/Lighting.vert
  3. 12 10
      SourceAssets/HLSLShaders/Lighting.hlsl

+ 1 - 1
CMakeLists.txt

@@ -97,7 +97,7 @@ if (USE_OPENGL)
         add_custom_command (
             OUTPUT ../../Bin/CoreData/Shaders/GLSL/${NAME}.vert
             COMMAND ../../Bin/GLShaderProcessor ${NAME}.xml ../../Bin/CoreData/Shaders/GLSL
-            DEPENDS GLShaderProcessor ${NAME}.vert ${NAME}.frag Uniforms.vert Transform.vert ScreenPos.vert Uniforms.frag Samplers.frag Lighting.frag Fog.frag ${NAME}.xml
+            DEPENDS GLShaderProcessor ${NAME}.vert ${NAME}.frag Uniforms.vert Transform.vert ScreenPos.vert Lighting.vert Uniforms.frag Samplers.frag Lighting.frag Fog.frag ${NAME}.xml
         )
         
         set (ALL_SHADERS ${ALL_SHADERS} ../../Bin/CoreData/Shaders/GLSL/${NAME}.vert)

+ 7 - 5
SourceAssets/GLSLShaders/Lighting.vert

@@ -1,3 +1,9 @@
+vec3 GetAmbient(float zonePos)
+{
+    return cAmbientStartColor + zonePos * cAmbientEndColor;
+}
+
+#ifdef NUMVERTEXLIGHTS
 float GetVertexLight(int index, vec3 worldPos, vec3 normal)
 {
     vec3 lightDir = cVertexLights[index * 3 + 1].xyz;
@@ -41,8 +47,4 @@ float GetVertexLight(int index, vec3 worldPos, vec3 normal)
         }
     #endif
 }
-
-vec3 GetAmbient(float zonePos)
-{
-    return cAmbientStartColor + zonePos * cAmbientEndColor;
-}
+#endif

+ 12 - 10
SourceAssets/HLSLShaders/Lighting.hlsl

@@ -29,6 +29,17 @@ float GetSpecular(float3 normal, float3 eyeVec, float3 lightDir, float specularP
     return pow(dot(normal, halfVec), specularPower);
 }
 
+float3 GetAmbient(float zonePos)
+{
+    return cAmbientStartColor + zonePos * cAmbientEndColor;
+}
+
+float GetIntensity(float3 color)
+{
+    return dot(color, float3(0.333, 0.333, 0.333));
+}
+
+#ifdef NUMVERTEXLIGHTS
 float GetVertexLight(int index, float3 worldPos, float3 normal)
 {
     float3 lightDir = cVertexLights[index * 3 + 1].xyz;
@@ -73,16 +84,7 @@ float GetVertexLight(int index, float3 worldPos, float3 normal)
         }
     #endif
 }
-
-float3 GetAmbient(float zonePos)
-{
-    return cAmbientStartColor + zonePos * cAmbientEndColor;
-}
-
-float GetIntensity(float3 color)
-{
-    return dot(color, float3(0.333, 0.333, 0.333));
-}
+#endif
 
 #ifdef SHADOW
 float GetShadow(float4 shadowPos)