Explorar o código

Refactored techniques + more GLSL & HLSL shaders. Fixed shader code loading for cases where only vertex or pixel shader source is present.

Lasse Öörni %!s(int64=12) %!d(string=hai) anos
pai
achega
0bcb95e6a2
Modificáronse 100 ficheiros con 489 adicións e 778 borrados
  1. 0 9
      Bin/CoreData/Shaders/GLSL/Skybox.frag
  2. 9 3
      Bin/CoreData/Shaders/GLSL/Skybox.glsl
  3. 0 3
      Bin/CoreData/Shaders/GLSL/Skybox.xml
  4. 61 6
      Bin/CoreData/Shaders/GLSL/TerrainBlend.glsl
  5. 0 81
      Bin/CoreData/Shaders/GLSL/TerrainBlend.vert
  6. 0 50
      Bin/CoreData/Shaders/GLSL/TerrainBlend.xml
  7. 23 5
      Bin/CoreData/Shaders/GLSL/Unlit.glsl
  8. 0 28
      Bin/CoreData/Shaders/GLSL/Unlit.vert
  9. 0 16
      Bin/CoreData/Shaders/GLSL/Unlit.xml
  10. 11 11
      Bin/CoreData/Shaders/GLSL/Vegetation.glsl
  11. 0 28
      Bin/CoreData/Shaders/GLSL/Vegetation.xml
  12. 3 3
      Bin/CoreData/Shaders/GLSL/VegetationDepth.glsl
  13. 0 6
      Bin/CoreData/Shaders/GLSL/VegetationDepth.xml
  14. 3 3
      Bin/CoreData/Shaders/GLSL/VegetationShadow.glsl
  15. 0 6
      Bin/CoreData/Shaders/GLSL/VegetationShadow.xml
  16. 0 33
      Bin/CoreData/Shaders/GLSL/Water.frag
  17. 59 0
      Bin/CoreData/Shaders/GLSL/Water.glsl
  18. 0 30
      Bin/CoreData/Shaders/GLSL/Water.vert
  19. 0 4
      Bin/CoreData/Shaders/GLSL/Water.xml
  20. 0 3
      Bin/CoreData/Shaders/HLSL/Skybox.xml
  21. 0 51
      Bin/CoreData/Shaders/HLSL/TerrainBlend.xml
  22. 0 28
      Bin/CoreData/Shaders/HLSL/Vegetation.xml
  23. 0 6
      Bin/CoreData/Shaders/HLSL/VegetationDepth.xml
  24. 0 6
      Bin/CoreData/Shaders/HLSL/VegetationShadow.xml
  25. 0 4
      Bin/CoreData/Shaders/HLSL/Water.xml
  26. 1 1
      Bin/CoreData/Techniques/DiffAlpha.xml
  27. 6 6
      Bin/CoreData/Techniques/DiffEmissive.xml
  28. 3 3
      Bin/CoreData/Techniques/DiffEmissiveAlpha.xml
  29. 6 6
      Bin/CoreData/Techniques/DiffEnvCube.xml
  30. 3 3
      Bin/CoreData/Techniques/DiffEnvCubeAlpha.xml
  31. 0 10
      Bin/CoreData/Techniques/DiffHeightFog.xml
  32. 6 6
      Bin/CoreData/Techniques/DiffLightMap.xml
  33. 3 3
      Bin/CoreData/Techniques/DiffLightMapAlpha.xml
  34. 2 2
      Bin/CoreData/Techniques/DiffMultiply.xml
  35. 6 6
      Bin/CoreData/Techniques/DiffNormalAO.xml
  36. 3 3
      Bin/CoreData/Techniques/DiffNormalAOAlpha.xml
  37. 8 8
      Bin/CoreData/Techniques/DiffNormalAOAlphaMask.xml
  38. 3 3
      Bin/CoreData/Techniques/DiffNormalAlpha.xml
  39. 9 9
      Bin/CoreData/Techniques/DiffNormalAlphaMask.xml
  40. 6 6
      Bin/CoreData/Techniques/DiffNormalEmissive.xml
  41. 3 3
      Bin/CoreData/Techniques/DiffNormalEmissiveAlpha.xml
  42. 6 6
      Bin/CoreData/Techniques/DiffNormalEnvCube.xml
  43. 3 3
      Bin/CoreData/Techniques/DiffNormalEnvCubeAlpha.xml
  44. 6 6
      Bin/CoreData/Techniques/DiffNormalPackedAO.xml
  45. 3 3
      Bin/CoreData/Techniques/DiffNormalPackedAOAlpha.xml
  46. 8 8
      Bin/CoreData/Techniques/DiffNormalPackedAOAlphaMask.xml
  47. 3 3
      Bin/CoreData/Techniques/DiffNormalPackedAlpha.xml
  48. 9 9
      Bin/CoreData/Techniques/DiffNormalPackedAlphaMask.xml
  49. 6 6
      Bin/CoreData/Techniques/DiffNormalPackedEmissive.xml
  50. 3 3
      Bin/CoreData/Techniques/DiffNormalPackedEmissiveAlpha.xml
  51. 6 6
      Bin/CoreData/Techniques/DiffNormalPackedEnvCube.xml
  52. 3 3
      Bin/CoreData/Techniques/DiffNormalPackedEnvCubeAlpha.xml
  53. 0 5
      Bin/CoreData/Techniques/DiffNormalPackedEnvCubeAlphaHeightFog.xml
  54. 7 7
      Bin/CoreData/Techniques/DiffNormalPackedSpec.xml
  55. 6 6
      Bin/CoreData/Techniques/DiffNormalPackedSpecAO.xml
  56. 3 3
      Bin/CoreData/Techniques/DiffNormalPackedSpecAOAlpha.xml
  57. 8 8
      Bin/CoreData/Techniques/DiffNormalPackedSpecAOAlphaMask.xml
  58. 3 3
      Bin/CoreData/Techniques/DiffNormalPackedSpecAlpha.xml
  59. 9 9
      Bin/CoreData/Techniques/DiffNormalPackedSpecAlphaMask.xml
  60. 6 6
      Bin/CoreData/Techniques/DiffNormalPackedSpecEmissive.xml
  61. 3 3
      Bin/CoreData/Techniques/DiffNormalPackedSpecEmissiveAlpha.xml
  62. 7 7
      Bin/CoreData/Techniques/DiffNormalSpec.xml
  63. 6 6
      Bin/CoreData/Techniques/DiffNormalSpecAO.xml
  64. 3 3
      Bin/CoreData/Techniques/DiffNormalSpecAOAlpha.xml
  65. 8 8
      Bin/CoreData/Techniques/DiffNormalSpecAOAlphaMask.xml
  66. 3 3
      Bin/CoreData/Techniques/DiffNormalSpecAlpha.xml
  67. 9 9
      Bin/CoreData/Techniques/DiffNormalSpecAlphaMask.xml
  68. 6 6
      Bin/CoreData/Techniques/DiffNormalSpecEmissive.xml
  69. 3 3
      Bin/CoreData/Techniques/DiffNormalSpecEmissiveAlpha.xml
  70. 0 10
      Bin/CoreData/Techniques/DiffNormalSpecHeightFog.xml
  71. 2 2
      Bin/CoreData/Techniques/DiffOverlay.xml
  72. 2 2
      Bin/CoreData/Techniques/DiffSkybox.xml
  73. 2 2
      Bin/CoreData/Techniques/DiffSkyplane.xml
  74. 7 7
      Bin/CoreData/Techniques/DiffSpec.xml
  75. 3 3
      Bin/CoreData/Techniques/DiffSpecAlpha.xml
  76. 9 9
      Bin/CoreData/Techniques/DiffSpecAlphaMask.xml
  77. 2 2
      Bin/CoreData/Techniques/DiffUnlit.xml
  78. 2 2
      Bin/CoreData/Techniques/DiffUnlitAlpha.xml
  79. 2 2
      Bin/CoreData/Techniques/DiffVColAdd.xml
  80. 2 2
      Bin/CoreData/Techniques/DiffVColMultiply.xml
  81. 2 2
      Bin/CoreData/Techniques/DiffVColUnlitAlpha.xml
  82. 6 6
      Bin/CoreData/Techniques/NoTextureEnvCube.xml
  83. 3 3
      Bin/CoreData/Techniques/NoTextureEnvCubeAlpha.xml
  84. 0 10
      Bin/CoreData/Techniques/NoTextureHeightFog.xml
  85. 2 2
      Bin/CoreData/Techniques/NoTextureMultiply.xml
  86. 7 7
      Bin/CoreData/Techniques/NoTextureNormal.xml
  87. 3 3
      Bin/CoreData/Techniques/NoTextureNormalAlpha.xml
  88. 7 7
      Bin/CoreData/Techniques/NoTextureNormalPacked.xml
  89. 3 3
      Bin/CoreData/Techniques/NoTextureNormalPackedAlpha.xml
  90. 2 2
      Bin/CoreData/Techniques/NoTextureOverlay.xml
  91. 2 2
      Bin/CoreData/Techniques/NoTextureUnlit.xml
  92. 2 2
      Bin/CoreData/Techniques/NoTextureUnlitAlpha.xml
  93. 2 2
      Bin/CoreData/Techniques/NoTextureUnlitVCol.xml
  94. 2 2
      Bin/CoreData/Techniques/NoTextureVColAdd.xml
  95. 2 2
      Bin/CoreData/Techniques/NoTextureVColMultiply.xml
  96. 7 7
      Bin/CoreData/Techniques/TerrainBlend.xml
  97. 7 7
      Bin/CoreData/Techniques/VegetationDiff.xml
  98. 9 9
      Bin/CoreData/Techniques/VegetationDiffAlphaMask.xml
  99. 2 2
      Bin/CoreData/Techniques/VegetationDiffUnlit.xml
  100. 3 3
      Bin/CoreData/Techniques/VegetationDiffUnlitAlphaMask.xml

+ 0 - 9
Bin/CoreData/Shaders/GLSL/Skybox.frag

@@ -1,9 +0,0 @@
-#include "Uniforms.frag"
-#include "Samplers.frag"
-
-varying vec3 vTexCoord;
-
-void main()
-{
-    gl_FragColor = cMatDiffColor * textureCube(sDiffCubeMap, vTexCoord);
-}

+ 9 - 3
Bin/CoreData/Shaders/GLSL/Skybox.vert → Bin/CoreData/Shaders/GLSL/Skybox.glsl

@@ -1,9 +1,10 @@
-#include "Uniforms.vert"
-#include "Transform.vert"
+#include "Uniforms.glsl"
+#include "Samplers.glsl"
+#include "Transform.glsl"
 
 varying vec3 vTexCoord;
 
-void main()
+void VS()
 {
     mat4 modelMatrix = iModelMatrix;
     vec3 worldPos = GetWorldPos(modelMatrix);
@@ -12,3 +13,8 @@ void main()
     gl_Position.z = gl_Position.w;
     vTexCoord = iPos.xyz;
 }
+
+void PS()
+{
+    gl_FragColor = cMatDiffColor * textureCube(sDiffCubeMap, vTexCoord);
+}

+ 0 - 3
Bin/CoreData/Shaders/GLSL/Skybox.xml

@@ -1,3 +0,0 @@
-<shaders>
-    <shader />
-</shaders>

+ 61 - 6
Bin/CoreData/Shaders/GLSL/TerrainBlend.frag → Bin/CoreData/Shaders/GLSL/TerrainBlend.glsl

@@ -1,7 +1,9 @@
-#include "Uniforms.frag"
-#include "Samplers.frag"
-#include "Lighting.frag"
-#include "Fog.frag"
+#include "Uniforms.glsl"
+#include "Samplers.glsl"
+#include "Transform.glsl"
+#include "ScreenPos.glsl"
+#include "Lighting.glsl"
+#include "Fog.glsl"
 
 varying vec2 vTexCoord;
 #ifdef HEIGHTFOG
@@ -28,14 +30,67 @@ varying vec2 vTexCoord;
     varying vec4 vScreenPos;
 #endif
 
+#ifdef COMPILEPS
 uniform sampler2D sWeightMap0;
 uniform sampler2D sDetailMap1;
 uniform sampler2D sDetailMap2;
 uniform sampler2D sDetailMap3;
-
 uniform vec2 cDetailTiling;
+#endif
+
+void VS()
+{
+    mat4 modelMatrix = iModelMatrix;
+    vec3 worldPos = GetWorldPos(modelMatrix);
+    gl_Position = GetClipPos(worldPos);
+    vTexCoord = GetTexCoord(iTexCoord);
+    vNormal = GetWorldNormal(modelMatrix);
+
+    #ifdef HEIGHTFOG
+        vWorldPos = worldPos;
+    #endif
+
+    #ifdef PERPIXEL
+        // Per-pixel forward lighting
+        vec4 projWorldPos = vec4(worldPos, 1.0);
+
+        #ifdef SHADOW
+            // Shadow projection: transform from world space to shadow space
+            for (int i = 0; i < NUMCASCADES; i++)
+                vShadowPos[i] = GetShadowPos(i, projWorldPos);
+        #endif
+
+        #ifdef SPOTLIGHT
+            // Spotlight projection: transform from world space to projector texture coordinates
+            vSpotPos = cLightMatrices[0] * projWorldPos;
+        #endif
+
+        #ifdef POINTLIGHT
+            vCubeMaskVec = mat3(cLightMatrices[0][0].xyz, cLightMatrices[0][1].xyz, cLightMatrices[0][2].xyz) * (cLightPos.xyz - worldPos);
+        #endif
+
+        #ifdef DIRLIGHT
+            vLightVec = vec4(cLightDir, GetDepth(gl_Position));
+        #else
+            vLightVec = vec4((cLightPos.xyz - worldPos) * cLightPos.w, GetDepth(gl_Position));
+        #endif
+        #ifdef SPECULAR
+            vEyeVec = cCameraPos - worldPos;
+        #endif
+    #else
+        // Ambient & per-vertex lighting
+        vVertexLight = vec4(GetAmbient(GetZonePos(worldPos)), GetDepth(gl_Position));
+
+        #ifdef NUMVERTEXLIGHTS
+            for (int i = 0; i < NUMVERTEXLIGHTS; ++i)
+                vVertexLight.rgb += GetVertexLight(i, worldPos, vNormal) * cVertexLights[i * 3].rgb;
+        #endif
+        
+        vScreenPos = GetScreenPos(gl_Position);
+    #endif
+}
 
-void main()
+void PS()
 {
     // Get material diffuse albedo
     vec3 weights = texture2D(sWeightMap0, vTexCoord).rgb;

+ 0 - 81
Bin/CoreData/Shaders/GLSL/TerrainBlend.vert

@@ -1,81 +0,0 @@
-#include "Uniforms.vert"
-#include "Transform.vert"
-#include "ScreenPos.vert"
-#include "Lighting.vert"
-
-varying vec2 vTexCoord;
-#ifdef HEIGHTFOG
-    varying vec3 vWorldPos;
-#endif
-#ifdef PERPIXEL
-    varying vec4 vLightVec;
-    #ifdef SPECULAR
-        varying vec3 vEyeVec;
-    #endif
-    varying vec3 vNormal;
-    #ifdef SHADOW
-        varying vec4 vShadowPos[NUMCASCADES];
-    #endif
-    #ifdef SPOTLIGHT
-        varying vec4 vSpotPos;
-    #endif
-    #ifdef POINTLIGHT
-        varying vec3 vCubeMaskVec;
-    #endif
-#else
-    varying vec4 vVertexLight;
-    varying vec3 vNormal;
-    varying vec4 vScreenPos;
-#endif
-
-void main()
-{
-    mat4 modelMatrix = iModelMatrix;
-    vec3 worldPos = GetWorldPos(modelMatrix);
-    gl_Position = GetClipPos(worldPos);
-    vTexCoord = GetTexCoord(iTexCoord);
-    vNormal = GetWorldNormal(modelMatrix);
-
-    #ifdef HEIGHTFOG
-        vWorldPos = worldPos;
-    #endif
-
-    #ifdef PERPIXEL
-        // Per-pixel forward lighting
-        vec4 projWorldPos = vec4(worldPos, 1.0);
-
-        #ifdef SHADOW
-            // Shadow projection: transform from world space to shadow space
-            for (int i = 0; i < NUMCASCADES; i++)
-                vShadowPos[i] = GetShadowPos(i, projWorldPos);
-        #endif
-
-        #ifdef SPOTLIGHT
-            // Spotlight projection: transform from world space to projector texture coordinates
-            vSpotPos = cLightMatrices[0] * projWorldPos;
-        #endif
-
-        #ifdef POINTLIGHT
-            vCubeMaskVec = mat3(cLightMatrices[0][0].xyz, cLightMatrices[0][1].xyz, cLightMatrices[0][2].xyz) * (cLightPos.xyz - worldPos);
-        #endif
-
-        #ifdef DIRLIGHT
-            vLightVec = vec4(cLightDir, GetDepth(gl_Position));
-        #else
-            vLightVec = vec4((cLightPos.xyz - worldPos) * cLightPos.w, GetDepth(gl_Position));
-        #endif
-        #ifdef SPECULAR
-            vEyeVec = cCameraPos - worldPos;
-        #endif
-    #else
-        // Ambient & per-vertex lighting
-        vVertexLight = vec4(GetAmbient(GetZonePos(worldPos)), GetDepth(gl_Position));
-
-        #ifdef NUMVERTEXLIGHTS
-            for (int i = 0; i < NUMVERTEXLIGHTS; ++i)
-                vVertexLight.rgb += GetVertexLight(i, worldPos, vNormal) * cVertexLights[i * 3].rgb;
-        #endif
-        
-        vScreenPos = GetScreenPos(gl_Position);
-    #endif
-}

+ 0 - 50
Bin/CoreData/Shaders/GLSL/TerrainBlend.xml

@@ -1,50 +0,0 @@
-<shaders>
-    <shader type="vs">
-        <option name="HeightFog" define="HEIGHTFOG" />
-        <variation name="" define="AMBIENT" />
-        <variation name="1VL" define="NUMVERTEXLIGHTS=1" />
-        <variation name="2VL" define="NUMVERTEXLIGHTS=2" />
-        <variation name="3VL" define="NUMVERTEXLIGHTS=3" />
-        <variation name="4VL" define="NUMVERTEXLIGHTS=4" />
-        <variation name="Dir">
-            <define name="DIRLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Spot">
-            <define name="SPOTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Point">
-            <define name="POINTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <option name="Spec" define="SPECULAR" require="PERPIXEL" />
-        <option name="Shadow" define="SHADOW" require="PERPIXEL" />
-        <variation name="" />
-        <variation name="Instanced" define="INSTANCED" />
-    </shader>
-    <shader type="ps">
-        <option name="Ambient" define="AMBIENT" require="PERPIXEL" />
-        <option name="HeightFog" define="HEIGHTFOG" />
-        <variation name="" define="AMBIENT" />
-        <variation name="Dir">
-            <define name="DIRLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Spot">
-            <define name="SPOTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Point">
-            <define name="POINTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Prepass" define="PREPASS" />
-        <variation name="Material" define="MATERIAL" />
-        <variation name="Deferred" define="DEFERRED" />
-        <option name="Mask" define="CUBEMASK" require="POINTLIGHT" />
-        <option name="Spec" define="SPECULAR" require="PERPIXEL" />
-        <option name="Shadow" define="SHADOW" require="PERPIXEL" />
-        <option name="LQ" define="LQSHADOW" require="SHADOW" />
-    </shader>
-</shaders>

+ 23 - 5
Bin/CoreData/Shaders/GLSL/Unlit.frag → Bin/CoreData/Shaders/GLSL/Unlit.glsl

@@ -1,6 +1,8 @@
-#include "Uniforms.frag"
-#include "Samplers.frag"
-#include "Fog.frag"
+#include "Uniforms.glsl"
+#include "Samplers.glsl"
+#include "Transform.glsl"
+#include "ScreenPos.glsl"
+#include "Fog.glsl"
 
 varying vec2 vTexCoord;
 #ifdef VERTEXCOLOR
@@ -11,7 +13,24 @@ varying vec2 vTexCoord;
 #endif
 varying float vDepth;
 
-void main()
+void VS()
+{
+    mat4 modelMatrix = iModelMatrix;
+    vec3 worldPos = GetWorldPos(modelMatrix);
+    gl_Position = GetClipPos(worldPos);
+    vTexCoord = GetTexCoord(iTexCoord);
+    vDepth = GetDepth(gl_Position);
+
+    #ifdef HEIGHTFOG
+        vWorldPos = worldPos;
+    #endif
+
+    #ifdef VERTEXCOLOR
+        vColor = iColor;
+    #endif
+}
+
+void PS()
 {
     #ifdef DIFFMAP
         vec4 diffColor = cMatDiffColor * texture2D(sDiffMap, vTexCoord);
@@ -35,4 +54,3 @@ void main()
 
     gl_FragColor = vec4(GetFog(diffColor.rgb, fogFactor), diffColor.a);
 }
-

+ 0 - 28
Bin/CoreData/Shaders/GLSL/Unlit.vert

@@ -1,28 +0,0 @@
-#include "Uniforms.vert"
-#include "Transform.vert"
-
-varying vec2 vTexCoord;
-#ifdef VERTEXCOLOR
-    varying vec4 vColor;
-#endif
-#ifdef HEIGHTFOG
-    varying vec3 vWorldPos;
-#endif
-varying float vDepth;
-
-void main()
-{
-    mat4 modelMatrix = iModelMatrix;
-    vec3 worldPos = GetWorldPos(modelMatrix);
-    gl_Position = GetClipPos(worldPos);
-    vTexCoord = GetTexCoord(iTexCoord);
-    vDepth = GetDepth(gl_Position);
-
-    #ifdef HEIGHTFOG
-        vWorldPos = worldPos;
-    #endif
-
-    #ifdef VERTEXCOLOR
-        vColor = iColor;
-    #endif
-}

+ 0 - 16
Bin/CoreData/Shaders/GLSL/Unlit.xml

@@ -1,16 +0,0 @@
-<shaders>
-    <shader type="vs">
-        <option name="VCol" define="VERTEXCOLOR" />
-        <option name="HeightFog" define="HEIGHTFOG" />
-        <variation name="" />
-        <variation name="Skinned" define="SKINNED" />
-        <variation name="Instanced" define="INSTANCED" />
-        <variation name="Billboard" define="BILLBOARD" />
-    </shader>
-    <shader type="ps">
-        <option name="Diff" define="DIFFMAP" />
-        <option name="VCol" define="VERTEXCOLOR" />
-        <option name="AlphaMask" define="ALPHAMASK" require="DIFFMAP" />
-        <option name="HeightFog" define="HEIGHTFOG" />
-    </shader>
-</shaders>

+ 11 - 11
Bin/CoreData/Shaders/GLSL/Vegetation.vert → Bin/CoreData/Shaders/GLSL/Vegetation.glsl

@@ -1,7 +1,7 @@
-#include "Uniforms.vert"
-#include "Transform.vert"
-#include "ScreenPos.vert"
-#include "Lighting.vert"
+#include "Uniforms.glsl"
+#include "Transform.glsl"
+#include "ScreenPos.glsl"
+#include "Lighting.glsl"
 
 uniform float cWindHeightFactor;
 uniform float cWindHeightPivot;
@@ -30,7 +30,7 @@ varying vec2 vTexCoord;
         varying vec3 vCubeMaskVec;
     #endif
 #else
-    varying vec4 vVertexLight;
+    varying vec4 vglslexLight;
     varying vec3 vNormal;
     #ifdef NORMALMAP
         varying vec3 vTangent;
@@ -39,7 +39,7 @@ varying vec2 vTexCoord;
     varying vec4 vScreenPos;
 #endif
 
-void main()
+void VS()
 {
     mat4 modelMatrix = iModelMatrix;
     vec3 worldPos = GetWorldPos(modelMatrix);
@@ -109,12 +109,12 @@ void main()
             #endif
         #endif
     #else
-        // Ambient & per-vertex lighting
-        vVertexLight = vec4(GetAmbient(GetZonePos(worldPos)), GetDepth(gl_Position));
+        // Ambient & per-glslex lighting
+        vglslexLight = vec4(GetAmbient(GetZonePos(worldPos)), GetDepth(gl_Position));
 
-        #ifdef NUMVERTEXLIGHTS
-            for (int i = 0; i < NUMVERTEXLIGHTS; ++i)
-                vVertexLight.rgb += GetVertexLight(i, worldPos, vNormal) * cVertexLights[i * 3].rgb;
+        #ifdef NUMglslEXLIGHTS
+            for (int i = 0; i < NUMglslEXLIGHTS; ++i)
+                vglslexLight.rgb += GetglslexLight(i, worldPos, vNormal) * cglslexLights[i * 3].rgb;
         #endif
         
         vScreenPos = GetScreenPos(gl_Position);

+ 0 - 28
Bin/CoreData/Shaders/GLSL/Vegetation.xml

@@ -1,28 +0,0 @@
-<shaders>
-    <shader type="vs">
-        <option name="Normal" define="NORMALMAP" />
-        <option name="HeightFog" define="HEIGHTFOG" />
-        <variation name="" define="AMBIENT" />
-        <variation name="1VL" define="NUMVERTEXLIGHTS=1" />
-        <variation name="2VL" define="NUMVERTEXLIGHTS=2" />
-        <variation name="3VL" define="NUMVERTEXLIGHTS=3" />
-        <variation name="4VL" define="NUMVERTEXLIGHTS=4" />
-        <variation name="Dir">
-            <define name="DIRLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Spot">
-            <define name="SPOTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Point">
-            <define name="POINTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <option name="Spec" define="SPECULAR" require="PERPIXEL" />
-        <option name="Shadow" define="SHADOW" require="PERPIXEL" />
-        <variation name="" />
-        <variation name="Instanced" define="INSTANCED" />
-        <variation name="Billboard" define="BILLBOARD" />
-    </shader>
-</shaders>

+ 3 - 3
Bin/CoreData/Shaders/GLSL/VegetationDepth.vert → Bin/CoreData/Shaders/GLSL/VegetationDepth.glsl

@@ -1,5 +1,5 @@
-#include "Uniforms.vert"
-#include "Transform.vert"
+#include "Uniforms.glsl"
+#include "Transform.glsl"
 
 uniform float cWindHeightFactor;
 uniform float cWindHeightPivot;
@@ -8,7 +8,7 @@ uniform vec2 cWindWorldSpacing;
 
 varying vec3 vTexCoord;
 
-void main()
+void VS()
 {
     mat4 modelMatrix = iModelMatrix;
     vec3 worldPos = GetWorldPos(modelMatrix);

+ 0 - 6
Bin/CoreData/Shaders/GLSL/VegetationDepth.xml

@@ -1,6 +0,0 @@
-<shaders>
-    <shader type="vs">
-        <variation name="" />
-        <variation name="Instanced" define="INSTANCED" />
-    </shader>
-</shaders>

+ 3 - 3
Bin/CoreData/Shaders/GLSL/VegetationShadow.vert → Bin/CoreData/Shaders/GLSL/VegetationShadow.glsl

@@ -1,5 +1,5 @@
-#include "Uniforms.vert"
-#include "Transform.vert"
+#include "Uniforms.glsl"
+#include "Transform.glsl"
 
 uniform float cWindHeightFactor;
 uniform float cWindHeightPivot;
@@ -8,7 +8,7 @@ uniform vec2 cWindWorldSpacing;
 
 varying vec2 vTexCoord;
 
-void main()
+void VS()
 {
     mat4 modelMatrix = iModelMatrix;
     vec3 worldPos = GetWorldPos(modelMatrix);

+ 0 - 6
Bin/CoreData/Shaders/GLSL/VegetationShadow.xml

@@ -1,6 +0,0 @@
-<shaders>
-    <shader type="vs">
-        <variation name="" />
-        <variation name="Instanced" define="INSTANCED" />
-    </shader>
-</shaders>

+ 0 - 33
Bin/CoreData/Shaders/GLSL/Water.frag

@@ -1,33 +0,0 @@
-#include "Uniforms.frag"
-#include "Samplers.frag"
-#include "Fog.frag"
-
-varying vec4 vScreenPos;
-varying vec2 vReflectUV;
-varying vec2 vWaterUV;
-varying vec3 vNormal;
-varying vec4 vEyeVec;
-
-uniform float cNoiseStrength;
-uniform float cFresnelPower;
-uniform vec3 cWaterTint;
-
-void main()
-{
-    vec2 refractUV = vScreenPos.xy / vScreenPos.w;
-    vec2 reflectUV = vReflectUV.xy / vScreenPos.w;
-
-    vec2 noise = (texture2D(sNormalMap, vWaterUV).rg - 0.5) * cNoiseStrength;
-    refractUV += noise;
-    // Do not shift reflect UV coordinate upward, because it will reveal the clipping of geometry below water
-    if (noise.y < 0.0)
-        noise.y = 0.0;
-    reflectUV += noise;
-
-    float fresnel = pow(1.0 - clamp(dot(normalize(vEyeVec.xyz), vNormal), 0.0, 1.0), cFresnelPower);
-    vec3 refractColor = texture2D(sEnvMap, refractUV).rgb * cWaterTint;
-    vec3 reflectColor = texture2D(sDiffMap, reflectUV).rgb;
-    vec3 finalColor = mix(refractColor, reflectColor, fresnel);
-
-    gl_FragColor = vec4(GetFog(finalColor, GetFogFactor(vEyeVec.w)), 1.0);
-}

+ 59 - 0
Bin/CoreData/Shaders/GLSL/Water.glsl

@@ -0,0 +1,59 @@
+#include "Uniforms.glsl"
+#include "Samplers.glsl"
+#include "Transform.glsl"
+#include "ScreenPos.glsl"
+#include "Fog.glsl"
+
+varying vec4 vScreenPos;
+varying vec2 vReflectUV;
+varying vec2 vWaterUV;
+varying vec3 vNormal;
+varying vec4 vEyeVec;
+
+#ifdef COMPILEVS
+uniform vec2 cNoiseSpeed;
+uniform float cNoiseTiling;
+#endif
+#ifdef COMPILEPS
+uniform float cNoiseStrength;
+uniform float cFresnelPower;
+uniform vec3 cWaterTint;
+#endif
+
+void VS()
+{
+    mat4 modelMatrix = iModelMatrix;
+    vec3 worldPos = GetWorldPos(modelMatrix);
+    gl_Position = GetClipPos(worldPos);
+    vScreenPos = GetScreenPos(gl_Position);
+    // GetQuadTexCoord() returns a vec2 that is OK for quad rendering; multiply it with output W
+    // coordinate to make it work with arbitrary meshes such as the water plane (perform divide in pixel shader)
+    // Also because the quadTexCoord is based on the clip position, and Y is flipped when rendering to a texture
+    // on OpenGL, must flip again to cancel it out
+    vReflectUV = GetQuadTexCoord(gl_Position);
+    vReflectUV.y = 1.0 - vReflectUV.y;
+    vReflectUV *= gl_Position.w;
+    vWaterUV = iTexCoord * cNoiseTiling + cElapsedTime * cNoiseSpeed;
+    vNormal = GetWorldNormal(modelMatrix);
+    vEyeVec = vec4(cCameraPos - worldPos, GetDepth(gl_Position));
+}
+
+void PS()
+{
+    vec2 refractUV = vScreenPos.xy / vScreenPos.w;
+    vec2 reflectUV = vReflectUV.xy / vScreenPos.w;
+
+    vec2 noise = (texture2D(sNormalMap, vWaterUV).rg - 0.5) * cNoiseStrength;
+    refractUV += noise;
+    // Do not shift reflect UV coordinate upward, because it will reveal the clipping of geometry below water
+    if (noise.y < 0.0)
+        noise.y = 0.0;
+    reflectUV += noise;
+
+    float fresnel = pow(1.0 - clamp(dot(normalize(vEyeVec.xyz), vNormal), 0.0, 1.0), cFresnelPower);
+    vec3 refractColor = texture2D(sEnvMap, refractUV).rgb * cWaterTint;
+    vec3 reflectColor = texture2D(sDiffMap, reflectUV).rgb;
+    vec3 finalColor = mix(refractColor, reflectColor, fresnel);
+
+    gl_FragColor = vec4(GetFog(finalColor, GetFogFactor(vEyeVec.w)), 1.0);
+}

+ 0 - 30
Bin/CoreData/Shaders/GLSL/Water.vert

@@ -1,30 +0,0 @@
-#include "Uniforms.vert"
-#include "Transform.vert"
-#include "ScreenPos.vert"
-
-varying vec4 vScreenPos;
-varying vec2 vReflectUV;
-varying vec2 vWaterUV;
-varying vec3 vNormal;
-varying vec4 vEyeVec;
-
-uniform vec2 cNoiseSpeed;
-uniform float cNoiseTiling;
-
-void main()
-{
-    mat4 modelMatrix = iModelMatrix;
-    vec3 worldPos = GetWorldPos(modelMatrix);
-    gl_Position = GetClipPos(worldPos);
-    vScreenPos = GetScreenPos(gl_Position);
-    // GetQuadTexCoord() returns a vec2 that is OK for quad rendering; multiply it with output W
-    // coordinate to make it work with arbitrary meshes such as the water plane (perform divide in pixel shader)
-    // Also because the quadTexCoord is based on the clip position, and Y is flipped when rendering to a texture
-    // on OpenGL, must flip again to cancel it out
-    vReflectUV = GetQuadTexCoord(gl_Position);
-    vReflectUV.y = 1.0 - vReflectUV.y;
-    vReflectUV *= gl_Position.w;
-    vWaterUV = iTexCoord * cNoiseTiling + cElapsedTime * cNoiseSpeed;
-    vNormal = GetWorldNormal(modelMatrix);
-    vEyeVec = vec4(cCameraPos - worldPos, GetDepth(gl_Position));
-}

+ 0 - 4
Bin/CoreData/Shaders/GLSL/Water.xml

@@ -1,4 +0,0 @@
-<shaders>
-    <shader type="vs" />
-    <shader type="ps" />
-</shaders>

+ 0 - 3
Bin/CoreData/Shaders/HLSL/Skybox.xml

@@ -1,3 +0,0 @@
-<shaders>
-    <shader />
-</shaders>

+ 0 - 51
Bin/CoreData/Shaders/HLSL/TerrainBlend.xml

@@ -1,51 +0,0 @@
-<shaders>
-    <shader type="vs">
-        <option name="HeightFog" define="HEIGHTFOG" require="SM3" />
-        <variation name="" define="AMBIENT" />
-        <variation name="1VL" define="NUMVERTEXLIGHTS=1" />
-        <variation name="2VL" define="NUMVERTEXLIGHTS=2" />
-        <variation name="3VL" define="NUMVERTEXLIGHTS=3" />
-        <variation name="4VL" define="NUMVERTEXLIGHTS=4" />
-        <variation name="Dir">
-            <define name="DIRLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Spot">
-            <define name="SPOTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Point">
-            <define name="POINTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <option name="Spec" define="SPECULAR" require="PERPIXEL" />
-        <option name="Shadow" define="SHADOW" require="PERPIXEL" />
-        <variation name="" />
-        <variation name="Instanced" define="INSTANCED" require="SM3" />
-    </shader>
-    <shader type="ps">
-        <option name="Ambient" define="AMBIENT" require="PERPIXEL" />
-        <option name="HeightFog" define="HEIGHTFOG" require="SM3" />
-        <variation name="" define="AMBIENT" />
-        <variation name="Dir">
-            <define name="DIRLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Spot">
-            <define name="SPOTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Point">
-            <define name="POINTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Prepass" define="PREPASS" />
-        <variation name="Material" define="MATERIAL" />
-        <variation name="Deferred" define="DEFERRED" />
-        <option name="Mask" define="CUBEMASK" require="POINTLIGHT" />
-        <option name="Spec" define="SPECULAR" require="PERPIXEL" />
-        <option name="Shadow" define="SHADOW" require="PERPIXEL" />
-        <option name="LQ" define="LQSHADOW" require="HWSHADOW" />
-        <option name="HW" define="HWSHADOW" require="SHADOW" />
-    </shader>
-</shaders>

+ 0 - 28
Bin/CoreData/Shaders/HLSL/Vegetation.xml

@@ -1,28 +0,0 @@
-<shaders>
-    <shader type="vs">
-        <option name="Normal" define="NORMALMAP" />
-        <option name="HeightFog" define="HEIGHTFOG" require="SM3" />
-        <variation name="" define="AMBIENT" />
-        <variation name="1VL" define="NUMVERTEXLIGHTS=1" />
-        <variation name="2VL" define="NUMVERTEXLIGHTS=2" />
-        <variation name="3VL" define="NUMVERTEXLIGHTS=3" />
-        <variation name="4VL" define="NUMVERTEXLIGHTS=4" />
-        <variation name="Dir">
-            <define name="DIRLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Spot">
-            <define name="SPOTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <variation name="Point">
-            <define name="POINTLIGHT" />
-            <define name="PERPIXEL" />
-        </variation>
-        <option name="Spec" define="SPECULAR" require="PERPIXEL" />
-        <option name="Shadow" define="SHADOW" require="PERPIXEL" />
-        <variation name="" />
-        <variation name="Instanced" define="INSTANCED" require="SM3" />
-        <variation name="Billboard" define="BILLBOARD" />
-    </shader>
-</shaders>

+ 0 - 6
Bin/CoreData/Shaders/HLSL/VegetationDepth.xml

@@ -1,6 +0,0 @@
-<shaders>
-    <shader type="vs">
-        <variation name="" />
-        <variation name="Instanced" define="INSTANCED" require="SM3" />
-    </shader>
-</shaders>

+ 0 - 6
Bin/CoreData/Shaders/HLSL/VegetationShadow.xml

@@ -1,6 +0,0 @@
-<shaders>
-    <shader type="vs">
-        <variation name="" />
-        <variation name="Instanced" define="INSTANCED" require="SM3" />
-    </shader>
-</shaders>

+ 0 - 4
Bin/CoreData/Shaders/HLSL/Water.xml

@@ -1,4 +0,0 @@
-<shaders>
-    <shader type="vs" />
-    <shader type="ps" />
-</shaders>

+ 1 - 1
Bin/CoreData/Techniques/DiffAlpha.xml

@@ -1,5 +1,5 @@
 <technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
-    <pass name="alpha"  depthwrite="false" blend="alpha" />
+    <pass name="alpha" depthwrite="false" blend="alpha" />
     <pass name="litalpha" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffEmissive.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_DiffEmissive" />
-    <pass name="light" vs="LitSolid" ps="LitSolid_Diff" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid" ps="LitSolid_DiffPrepass" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffEmissiveMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid" ps="LitSolid_DiffEmissiveDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" psdefines="EMISSIVEMAP" />
+    <pass name="light" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" psdefines="PREPASS" />
+    <pass name="material" psdefines="MATERIAL EMISSIVEMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" psdefines="DEFERRED EMISSIVEMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffEmissiveAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid" ps="LitSolid_DiffEmissive" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid" ps="LitSolid_Diff" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" psdefines="EMISSIVEMAP" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffEnvCube.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_EnvCube" ps="LitSolid_DiffEnvCube" />
-    <pass name="light" vs="LitSolid" ps="LitSolid_Diff" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid" ps="LitSolid_DiffPrepass" />
-    <pass name="material" vs="LitSolid_EnvCube" ps="LitSolid_DiffEnvCubeMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_EnvCube" ps="LitSolid_DiffEnvCubeDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" vsdefines="ENVCUBEMAP" psdefines="ENVCUBEMAP" />
+    <pass name="light" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" psdefines="PREPASS" />
+    <pass name="material" vsdefines="ENVCUBEMAP" psdefines="MATERIAL ENVCUBEMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="ENVCUBEMAP" psdefines="DEFERRED ENVCUBEMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffEnvCubeAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_EnvCube" ps="LitSolid_DiffEnvCube" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid" ps="LitSolid_Diff" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" vsdefines="ENVCUBEMAP" psdefines="ENVCUBEMAP" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 0 - 10
Bin/CoreData/Techniques/DiffHeightFog.xml

@@ -1,10 +0,0 @@
-<technique sm3="true" >
-    <pass name="base" vs="LitSolid_HeightFog" ps="LitSolid_DiffHeightFog" />
-    <pass name="litbase" vs="LitSolid_HeightFog" ps="LitSolid_DiffAmbientHeightFog" />
-    <pass name="light" vs="LitSolid_HeightFog" ps="LitSolid_DiffHeightFog" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_HeightFog" ps="LitSolid_DiffHeightFogPrepass" />
-    <pass name="material" vs="LitSolid_HeightFog" ps="LitSolid_DiffHeightFogMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_HeightFog" ps="LitSolid_DiffHeightFogDeferred" />
-    <pass name="depth" vs="Depth" ps="Depth" />
-    <pass name="shadow" vs="Shadow" ps="Shadow" />
-</technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffLightMap.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_LightMap" ps="LitSolid_DiffLightMap" />
-    <pass name="light" vs="LitSolid" ps="LitSolid_Diff" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid" ps="LitSolid_DiffPrepass" />
-    <pass name="material" vs="LitSolid_LightMap" ps="LitSolid_DiffLightMapMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_LightMap" ps="LitSolid_DiffLightMapDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" vsdefines="LIGHTMAP" psdefines="LIGHTMAP" />
+    <pass name="light" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" psdefines="PREPASS" />
+    <pass name="material" vsdefines="LIGHTMAP" psdefines="MATERIAL LIGHTMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="LIGHTMAP" psdefines="DEFERRED LIGHTMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffLightMapAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_LightMap" ps="LitSolid_DiffLightMap" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid" ps="LitSolid_Diff" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" vsdefines="LIGHTMAP" psdefines="LIGHTMAP" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/DiffMultiply.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit" ps="Unlit_Diff" depthwrite="false" blend="multiply" />
+<technique vs="Unlit" ps="Unlit" psdefines="DIFFMAP">
+    <pass name="alpha" depthwrite="false" blend="multiply" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffNormalAO.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_AO" ps="LitSolid_DiffAO" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormal" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPrepass" />
-    <pass name="material" vs="LitSolid_AO" ps="LitSolid_DiffAOMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_NormalAO" ps="LitSolid_DiffNormalAODeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" vsdefines="AO" psdefines="AO" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP" />
+    <pass name="material" vsdefines="AO" psdefines="MATERIAL AO" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP AO" psdefines="DEFERRED NORMALMAP AO" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalAOAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_AO" ps="LitSolid_DiffAO" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormal" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" vsdefines="AO" psdefines="AO" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 8 - 8
Bin/CoreData/Techniques/DiffNormalAOAlphaMask.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_AO" ps="LitSolid_DiffAOAlphaMask" alphamask="true" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalAlphaMask" depthtest="equal" depthwrite="false" blend="add" alphamask="true" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalAlphaMaskPrepass" alphamask="true" />
-    <pass name="material" vs="LitSolid_AO" ps="LitSolid_DiffAOAlphaMaskMaterial" depthtest="equal" depthwrite="false" alphamask="true" />
-    <pass name="deferred" vs="LitSolid_NormalAO" ps="LitSolid_DiffNormalAOAlphaMaskDeferred" alphamask="true" />
-    <pass name="depth" vs="Depth" ps="Depth_AlphaMask" alphamask="true" />
-    <pass name="shadow" vs="Shadow" ps="Shadow_AlphaMask" alphamask="true" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP ALPHAMASK" alphamask="true" >
+    <pass name="base" vsdefines="AO" psdefines="AO" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP" />
+    <pass name="material" vsdefines="AO" psdefines="MATERIAL AO" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP AO" psdefines="DEFERRED NORMALMAP AO" />
+    <pass name="depth" vs="Depth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="Shadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid" ps="LitSolid_Diff" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormal" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 9 - 9
Bin/CoreData/Techniques/DiffNormalAlphaMask.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_DiffAlphaMask" alphamask="true" />
-    <pass name="litbase" vs="LitSolid_Normal" ps="LitSolid_DiffNormalAlphaMaskAmbient" alphamask="true" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalAlphaMask" depthtest="equal" depthwrite="false" blend="add" alphamask="true" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalAlphaMaskPrepass" alphamask="true" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffAlphaMaskMaterial" depthtest="equal" depthwrite="false" alphamask="true" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_DiffNormalAlphaMaskDeferred" alphamask="true" />
-    <pass name="depth" vs="Depth" ps="Depth_AlphaMask" alphamask="true" />
-    <pass name="shadow" vs="Shadow" ps="Shadow_AlphaMask" alphamask="true" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP ALPHAMASK" alphamask="true">
+    <pass name="base" />
+    <pass name="litbase" vsdefines="NORMALMAP" psdefines="AMBIENT NORMALMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP" />
+    <pass name="material" psdefines="MATERIAL" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP" />
+    <pass name="depth" vs="Depth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="Shadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffNormalEmissive.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_Normal" ps="LitSolid_DiffNormalEmissive" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormal" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPrepass" />
-    <pass name="material" vs="LitSolid_Normal" ps="LitSolid_DiffNormalEmissiveMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_DiffNormalEmissiveDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" psdefines="EMISSIVEMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP" />
+    <pass name="material" psdefines="MATERIAL EMISSIVEMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP EMISSIVEMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalEmissiveAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalEmissive" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormal" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" psdefines="EMISSIVEMAP" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffNormalEnvCube.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_NormalEnvCube" ps="LitSolid_DiffNormalEnvCube" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormal" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPrepass" />
-    <pass name="material" vs="LitSolid_NormalEnvCube" ps="LitSolid_DiffNormalEnvCubeMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_NormalEnvCube" ps="LitSolid_DiffNormalEnvCubeDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" vsdefines="NORMALMAP ENVCUBEMAP" psdefines="NORMALMAP ENVCUBEMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP" />
+    <pass name="material" vsdefines="ENVCUBEMAP" psdefines="MATERIAL ENVCUBEMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP ENVCUBEMAP" psdefines="DEFERRED NORMALMAP ENVCUBEMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalEnvCubeAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_NormalEnvCube" ps="LitSolid_DiffNormalEnvCube" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormal" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" vsdefines="NORMALMAP ENVCUBEMAP" psdefines="NORMALMAP ENVCUBEMAP" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffNormalPackedAO.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_AO" ps="LitSolid_DiffAO" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPacked" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedPrepass" />
-    <pass name="material" vs="LitSolid_AO" ps="LitSolid_DiffAOMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_NormalAO" ps="LitSolid_DiffNormalPackedAODeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" vsdefines="AO" psdefines="AO" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL" />
+    <pass name="material" vsdefines="AO" psdefines="MATERIAL AO" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP AO" psdefines="DEFERRED NORMALMAP PACKEDNORMAL AO" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalPackedAOAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_AO" ps="LitSolid_DiffAO" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPacked" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" vsdefines="AO" psdefines="AO" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 8 - 8
Bin/CoreData/Techniques/DiffNormalPackedAOAlphaMask.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_AO" ps="LitSolid_DiffAOAlphaMask" alphamask="true" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedAlphaMask" depthtest="equal" depthwrite="false" blend="add" alphamask="true" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedAlphaMaskPrepass" alphamask="true" />
-    <pass name="material" vs="LitSolid_AO" ps="LitSolid_DiffAOAlphaMaskMaterial" depthtest="equal" depthwrite="false" alphamask="true" />
-    <pass name="deferred" vs="LitSolid_NormalAO" ps="LitSolid_DiffNormalPackedAOAlphaMaskDeferred" alphamask="true" />
-    <pass name="depth" vs="Depth" ps="Depth_AlphaMask" alphamask="true" />
-    <pass name="shadow" vs="Shadow" ps="Shadow_AlphaMask" alphamask="true" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP ALPHAMASK" alphamask="true" >
+    <pass name="base" vsdefines="AO" psdefines="AO" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL" />
+    <pass name="material" vsdefines="AO" psdefines="MATERIAL AO" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP AO" psdefines="DEFERRED NORMALMAP PACKEDNORMAL AO" />
+    <pass name="depth" vs="Depth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="Shadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalPackedAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid" ps="LitSolid_Diff" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPacked" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 9 - 9
Bin/CoreData/Techniques/DiffNormalPackedAlphaMask.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_DiffAlphaMask" alphamask="true" />
-    <pass name="litbase" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedAlphaMaskAmbient" alphamask="true" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedAlphaMask" depthtest="equal" depthwrite="false" blend="add" alphamask="true" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedAlphaMaskPrepass" alphamask="true" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffAlphaMaskMaterial" depthtest="equal" depthwrite="false" alphamask="true" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedAlphaMaskDeferred" alphamask="true" />
-    <pass name="depth" vs="Depth" ps="Depth_AlphaMask" alphamask="true" />
-    <pass name="shadow" vs="Shadow" ps="Shadow_AlphaMask" alphamask="true" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP ALPHAMASK" alphamask="true">
+    <pass name="base" />
+    <pass name="litbase" vsdefines="NORMALMAP" psdefines="AMBIENT NORMALMAP PACKEDNORMAL" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL" />
+    <pass name="material" psdefines="MATERIAL" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP PACKEDNORMAL" />
+    <pass name="depth" vs="Depth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="Shadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffNormalPackedEmissive.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedEmissive" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPacked" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedPrepass" />
-    <pass name="material" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedEmissiveMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedEmissiveDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" psdefines="EMISSIVEMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL" />
+    <pass name="material" psdefines="MATERIAL EMISSIVEMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP PACKEDNORMAL EMISSIVEMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalPackedEmissiveAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedEmissive" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPacked" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" psdefines="EMISSIVEMAP" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffNormalPackedEnvCube.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_NormalEnvCube" ps="LitSolid_DiffNormalPackedEnvCube" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPacked" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedPrepass" />
-    <pass name="material" vs="LitSolid_NormalEnvCube" ps="LitSolid_DiffNormalPackedEnvCubeMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_NormalEnvCube" ps="LitSolid_DiffNormalPackedEnvCubeDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" vsdefines="NORMALMAP ENVCUBEMAP" psdefines="NORMALMAP PACKEDNORMAL ENVCUBEMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL" />
+    <pass name="material" vsdefines="ENVCUBEMAP" psdefines="MATERIAL ENVCUBEMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP ENVCUBEMAP" psdefines="DEFERRED NORMALMAP PACKEDNORMAL ENVCUBEMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalPackedEnvCubeAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_NormalEnvCube" ps="LitSolid_DiffNormalPackedEnvCube" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPacked" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" vsdefines="NORMALMAP ENVCUBEMAP" psdefines="NORMALMAP PACKEDNORMAL ENVCUBEMAP" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 0 - 5
Bin/CoreData/Techniques/DiffNormalPackedEnvCubeAlphaHeightFog.xml

@@ -1,5 +0,0 @@
-<technique sm3="true" >
-    <pass name="alpha" vs="LitSolid_NormalEnvCubeHeightFog" ps="LitSolid_DiffNormalPackedEnvCubeHeightFog" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_NormalHeightFog" ps="LitSolid_DiffNormalPackedHeightFog" depthwrite="false" blend="addalpha" />
-    <pass name="shadow" vs="Shadow" ps="Shadow" />
-</technique>

+ 7 - 7
Bin/CoreData/Techniques/DiffNormalPackedSpec.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_Diff" />
-    <pass name="litbase" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapAmbient" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMap" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapPrepass" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffSpecMapMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" />
+    <pass name="litbase" vsdefines="NORMALMAP" psdefines="AMBIENT NORMALMAP PACKEDNORMAL SPECMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL SPECMAP" />
+    <pass name="material" psdefines="MATERIAL SPECMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP PACKEDNORMAL SPECMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffNormalPackedSpecAO.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_AO" ps="LitSolid_DiffAO" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMap" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapPrepass" />
-    <pass name="material" vs="LitSolid_AO" ps="LitSolid_DiffSpecMapAOMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_NormalAO" ps="LitSolid_DiffNormalPackedSpecMapAODeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" vsdefines="AO" psdefines="AO" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL SPECMAP" />
+    <pass name="material" vsdefines="AO" psdefines="MATERIAL SPECMAP AO" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP AO" psdefines="DEFERRED NORMALMAP PACKEDNORMAL SPECMAP AO" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalPackedSpecAOAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_AO" ps="LitSolid_DiffAO" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMap" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" vsdefines="AO" psdefines="AO" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL SPECMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 8 - 8
Bin/CoreData/Techniques/DiffNormalPackedSpecAOAlphaMask.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_AO" ps="LitSolid_DiffAOAlphaMask" alphamask="true" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapAlphaMask" depthtest="equal" depthwrite="false" blend="add" alphamask="true" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapAlphaMaskPrepass" alphamask="true" />
-    <pass name="material" vs="LitSolid_AO" ps="LitSolid_DiffSpecMapAOAlphaMaskMaterial" depthtest="equal" depthwrite="false" alphamask="true" />
-    <pass name="deferred" vs="LitSolid_NormalAO" ps="LitSolid_DiffNormalPackedSpecMapAOAlphaMaskDeferred" alphamask="true" />
-    <pass name="depth" vs="Depth" ps="Depth_AlphaMask" alphamask="true" />
-    <pass name="shadow" vs="Shadow" ps="Shadow_AlphaMask" alphamask="true" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP ALPHAMASK" alphamask="true" >
+    <pass name="base" vsdefines="AO" psdefines="AO" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL SPECMAP" />
+    <pass name="material" vsdefines="AO" psdefines="MATERIAL SPECMAP AO" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP AO" psdefines="DEFERRED NORMALMAP PACKEDNORMAL SPECMAP AO" />
+    <pass name="depth" vs="Depth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="Shadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalPackedSpecAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid" ps="LitSolid_Diff" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMap" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL SPECMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 9 - 9
Bin/CoreData/Techniques/DiffNormalPackedSpecAlphaMask.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_DiffAlphaMask" alphamask="true" />
-    <pass name="litbase" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapAlphaMaskAmbient" alphamask="true" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapAlphaMask" depthtest="equal" depthwrite="false" blend="add" alphamask="true" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapAlphaMaskPrepass" alphamask="true" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffSpecMapAlphaMaskMaterial" depthtest="equal" depthwrite="false" alphamask="true" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapAlphaMaskDeferred" alphamask="true" />
-    <pass name="depth" vs="Depth" ps="Depth_AlphaMask" alphamask="true" />
-    <pass name="shadow" vs="Shadow" ps="Shadow_AlphaMask" alphamask="true" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP ALPHAMASK" alphamask="true">
+    <pass name="base" />
+    <pass name="litbase" vsdefines="NORMALMAP" psdefines="AMBIENT NORMALMAP PACKEDNORMAL SPECMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL SPECMAP" />
+    <pass name="material" psdefines="MATERIAL SPECMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP PACKEDNORMAL SPECMAP" />
+    <pass name="depth" vs="Depth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="Shadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffNormalPackedSpecEmissive.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_DiffEmissive" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMap" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapPrepass" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffSpecMapEmissiveMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMapEmissiveDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" psdefines="EMISSIVEMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL SPECMAP" />
+    <pass name="material" psdefines="MATERIAL SPECMAP EMISSIVEMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP PACKEDNORMAL SPECMAP EMISSIVEMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalPackedSpecEmissiveAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid" ps="LitSolid_DiffEmissive" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalPackedSpecMap" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" psdefines="EMISSIVEMAP" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL SPECMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 7 - 7
Bin/CoreData/Techniques/DiffNormalSpec.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_Diff" />
-    <pass name="litbase" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapAmbient" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMap" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapPrepass" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffSpecMapMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" />
+    <pass name="litbase" vsdefines="NORMALMAP" psdefines="AMBIENT NORMALMAP SPECMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP SPECMAP" />
+    <pass name="material" psdefines="MATERIAL SPECMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP SPECMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffNormalSpecAO.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_AO" ps="LitSolid_DiffAO" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMap" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapPrepass" />
-    <pass name="material" vs="LitSolid_AO" ps="LitSolid_DiffSpecMapAOMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_NormalAO" ps="LitSolid_DiffNormalSpecMapAODeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" vsdefines="AO" psdefines="AO" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP SPECMAP" />
+    <pass name="material" vsdefines="AO" psdefines="MATERIAL SPECMAP AO" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP AO" psdefines="DEFERRED NORMALMAP SPECMAP AO" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalSpecAOAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_AO" ps="LitSolid_DiffAO" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMap" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" vsdefines="AO" psdefines="AO" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP SPECMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 8 - 8
Bin/CoreData/Techniques/DiffNormalSpecAOAlphaMask.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_AO" ps="LitSolid_DiffAOAlphaMask" alphamask="true" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapAlphaMask" depthtest="equal" depthwrite="false" blend="add" alphamask="true" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapAlphaMaskPrepass" alphamask="true" />
-    <pass name="material" vs="LitSolid_AO" ps="LitSolid_DiffSpecMapAOAlphaMaskMaterial" depthtest="equal" depthwrite="false" alphamask="true" />
-    <pass name="deferred" vs="LitSolid_NormalAO" ps="LitSolid_DiffNormalSpecMapAOAlphaMaskDeferred" alphamask="true" />
-    <pass name="depth" vs="Depth" ps="Depth_AlphaMask" alphamask="true" />
-    <pass name="shadow" vs="Shadow" ps="Shadow_AlphaMask" alphamask="true" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP ALPHAMASK" alphamask="true" >
+    <pass name="base" vsdefines="AO" psdefines="AO" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP SPECMAP" />
+    <pass name="material" vsdefines="AO" psdefines="MATERIAL SPECMAP AO" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP AO" psdefines="DEFERRED NORMALMAP SPECMAP AO" />
+    <pass name="depth" vs="Depth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="Shadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalSpecAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid" ps="LitSolid_Diff" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMap" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP SPECMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 9 - 9
Bin/CoreData/Techniques/DiffNormalSpecAlphaMask.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_DiffAlphaMask" alphamask="true" />
-    <pass name="litbase" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapAlphaMaskAmbient" alphamask="true" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapAlphaMask" depthtest="equal" depthwrite="false" blend="add" alphamask="true" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapAlphaMaskPrepass" alphamask="true" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffSpecMapAlphaMaskMaterial" depthtest="equal" depthwrite="false" alphamask="true" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapAlphaMaskDeferred" alphamask="true" />
-    <pass name="depth" vs="Depth" ps="Depth_AlphaMask" alphamask="true" />
-    <pass name="shadow" vs="Shadow" ps="Shadow_AlphaMask" alphamask="true" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP ALPHAMASK" alphamask="true">
+    <pass name="base" />
+    <pass name="litbase" vsdefines="NORMALMAP" psdefines="AMBIENT NORMALMAP SPECMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP SPECMAP" />
+    <pass name="material" psdefines="MATERIAL SPECMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP SPECMAP" />
+    <pass name="depth" vs="Depth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="Shadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/DiffNormalSpecEmissive.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_DiffEmissive" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMap" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapPrepass" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffSpecMapEmissiveMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMapEmissiveDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" psdefines="EMISSIVEMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP SPECMAP" />
+    <pass name="material" psdefines="MATERIAL SPECMAP EMISSIVEMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP SPECMAP EMISSIVEMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffNormalSpecEmissiveAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid" ps="LitSolid_DiffEmissive" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_DiffNormalSpecMap" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" psdefines="EMISSIVEMAP" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP SPECMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 0 - 10
Bin/CoreData/Techniques/DiffNormalSpecHeightFog.xml

@@ -1,10 +0,0 @@
-<technique sm3="true" >
-    <pass name="base" vs="LitSolidHeightFog" ps="LitSolid_DiffHeightFog" />
-    <pass name="litbase" vs="LitSolid_NormalHeightFog" ps="LitSolid_DiffNormalSpecMapAmbientHeightFog" />
-    <pass name="light" vs="LitSolid_NormalHeightFog" ps="LitSolid_DiffNormalSpecMapHeightFog" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_NormalHeightFog" ps="LitSolid_DiffNormalSpecMapHeightFogPrepass" />
-    <pass name="material" vs="LitSolid_HeightFog" ps="LitSolid_DiffSpecMapHeightFogMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_NormalHeightFog" ps="LitSolid_DiffNormalSpecMapHeightFogDeferred" />
-    <pass name="depth" vs="Depth" ps="Depth" />
-    <pass name="shadow" vs="Shadow" ps="Shadow" />
-</technique>

+ 2 - 2
Bin/CoreData/Techniques/DiffOverlay.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="postalpha" vs="Basic_Diff" ps="Basic_Diff" depthtest="always" depthwrite="false"/>
+<technique vs="Basic" ps="Basic" vsdefines="DIFFMAP" psdefines="DIFFMAP">
+    <pass name="postalpha" depthtest="always" depthwrite="false"/>
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/DiffSkybox.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="postopaque" vs="Skybox" ps="Skybox" depthwrite="false" />
+<technique vs="Skybox" ps="Skybox">
+    <pass name="postopaque" depthwrite="false" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/DiffSkyplane.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="postopaque" vs="Unlit" ps="Unlit_Diff" depthwrite="false" />
+<technique vs="Unlit" ps="Unlit" >
+    <pass name="postopaque" psdefines="DIFFMAP" depthwrite="false" />
 </technique>

+ 7 - 7
Bin/CoreData/Techniques/DiffSpec.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_Diff" />
-    <pass name="litbase" vs="LitSolid" ps="LitSolid_DiffSpecMapAmbient" />
-    <pass name="light" vs="LitSolid" ps="LitSolid_DiffSpecMap" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid" ps="LitSolid_DiffSpecMapPrepass" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffSpecMapMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid" ps="LitSolid_DiffSpecMapDeferred" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="base" />
+    <pass name="litbase" psdefines="AMBIENT SPECMAP" />
+    <pass name="light" psdefines="SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" psdefines="PREPASS SPECMAP" />
+    <pass name="material" psdefines="MATERIAL SPECMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" psdefines="DEFERRED SPECMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/DiffSpecAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid" ps="LitSolid_Diff" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid" ps="LitSolid_DiffSpecMap" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP">
+    <pass name="alpha" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" psdefines="SPECMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 9 - 9
Bin/CoreData/Techniques/DiffSpecAlphaMask.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid_DiffAlphaMask" alphamask="true" />
-    <pass name="litbase" vs="LitSolid" ps="LitSolid_DiffSpecMapAlphaMaskAmbient" alphamask="true" />
-    <pass name="light" vs="LitSolid" ps="LitSolid_DiffSpecMapAlphaMask"  depthtest="equal" depthwrite="false" blend="add" alphamask="true" />
-    <pass name="prepass" vs="LitSolid" ps="LitSolid_DiffSpecMapAlphaMaskPrepass" alphamask="true" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_DiffSpecMapAlphaMaskMaterial" depthtest="equal" depthwrite="false" alphamask="true" />
-    <pass name="deferred" vs="LitSolid" ps="LitSolid_DiffSpecMapAlphaMaskDeferred" alphamask="true" />
-    <pass name="depth" vs="Depth" ps="Depth_AlphaMask" alphamask="true" />
-    <pass name="shadow" vs="Shadow" ps="Shadow_AlphaMask" alphamask="true" />
+<technique vs="LitSolid" ps="LitSolid" psdefines="DIFFMAP ALPHAMASK" alphamask="true" >
+    <pass name="base" />
+    <pass name="litbase" psdefines="AMBIENT SPECMAP" />
+    <pass name="light" psdefines="SPECMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" psdefines="PREPASS SPECMAP" />
+    <pass name="material" psdefines="MATERIAL SPECMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" psdefines="DEFERRED SPECMAP" />
+    <pass name="depth" vs="Depth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="Shadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/DiffUnlit.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit" ps="Unlit_Diff" />
+<technique vs="Unlit" ps="Unlit" psdefines="DIFFMAP" >
+    <pass name="base" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/DiffUnlitAlpha.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit" ps="Unlit_Diff" depthwrite="false" blend="alpha" />
+<technique vs="Unlit" ps="Unlit" psdefines="DIFFMAP">
+    <pass name="alpha" depthwrite="false" blend="alpha" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/DiffVColAdd.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit_VCol" ps="Unlit_DiffVCol" depthwrite="false" blend="add" />
+<technique vs="Unlit" ps="Unlit" vsdefines="VERTEXCOLOR" psdefines="DIFFMAP VERTEXCOLOR">
+    <pass name="alpha" depthwrite="false" blend="add" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/DiffVColMultiply.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit_VCol" ps="Unlit_DiffVCol" depthwrite="false" blend="multiply" />
+<technique vs="Unlit" ps="Unlit" vsdefines="VERTEXCOLOR" psdefines="DIFFMAP VERTEXCOLOR">
+    <pass name="alpha" depthwrite="false" blend="multiply" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/DiffVColUnlitAlpha.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit_VCol" ps="Unlit_DiffVCol" depthwrite="false" blend="alpha" />
+<technique vs="Unlit" ps="Unlit" vsdefines="VERTEXCOLOR" psdefines="DIFFMAP VERTEXCOLOR">
+    <pass name="alpha" depthwrite="false" blend="alpha" />
 </technique>

+ 6 - 6
Bin/CoreData/Techniques/NoTextureEnvCube.xml

@@ -1,9 +1,9 @@
-<technique>
-    <pass name="base" vs="LitSolid_EnvCube" ps="LitSolid_EnvCube" />
-    <pass name="light" vs="LitSolid" ps="LitSolid" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid" ps="LitSolid_Prepass" />
-    <pass name="material" vs="LitSolid_EnvCube" ps="LitSolid_EnvCubeMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_EnvCube" ps="LitSolid_EnvCubeDeferred" />
+<technique vs="LitSolid" ps="LitSolid">
+    <pass name="base" vsdefines="ENVCUBEMAP" psdefines="ENVCUBEMAP" />
+    <pass name="light" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" psdefines="PREPASS" />
+    <pass name="material" vsdefines="ENVCUBEMAP" psdefines="MATERIAL ENVCUBEMAP" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="ENVCUBEMAP" psdefines="DEFERRED ENVCUBEMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/NoTextureEnvCubeAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid_EnvCube" ps="LitSolid_EnvCube" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid" ps="LitSolid" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid">
+    <pass name="alpha" vsdefines="ENVCUBEMAP" psdefines="ENVCUBEMAP" depthwrite="false" blend="alpha" />
+    <pass name="litalpha" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 0 - 10
Bin/CoreData/Techniques/NoTextureHeightFog.xml

@@ -1,10 +0,0 @@
-<technique sm3="true" >
-    <pass name="base" vs="LitSolid_HeightFog" ps="LitSolid_HeightFog" />
-    <pass name="litbase" vs="LitSolid_HeightFog" ps="LitSolid_AmbientHeightFog" />
-    <pass name="light" vs="LitSolid_HeightFog" ps="LitSolid_HeightFog" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_HeightFog" ps="LitSolid_HeightFogPrepass" />
-    <pass name="material" vs="LitSolid_HeightFog" ps="LitSolid_HeightFogMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_HeightFog" ps="LitSolid_HeightFogDeferred" />
-    <pass name="depth" vs="Depth" ps="Depth" />
-    <pass name="shadow" vs="Shadow" ps="Shadow" />
-</technique>

+ 2 - 2
Bin/CoreData/Techniques/NoTextureMultiply.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit" ps="Unlit" depthwrite="false" blend="multiply" />
+<technique vs="Unlit" ps="Unlit">
+    <pass name="alpha" depthwrite="false" blend="multiply" />
 </technique>

+ 7 - 7
Bin/CoreData/Techniques/NoTextureNormal.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid" />
-    <pass name="litbase" vs="LitSolid_Normal" ps="LitSolid_NormalAmbient" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_Normal" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_NormalPrepass" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_Material" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_NormalDeferred" />
+<technique vs="LitSolid" ps="LitSolid">
+    <pass name="base" />
+    <pass name="litbase" vsdefines="NORMALMAP" psdefines="AMBIENT NORMALMAP" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP" />
+    <pass name="material" psdefines="MATERIAL" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/NoTextureNormalAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid" ps="LitSolid" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_Normal" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid">
+    <pass name="alpha"  depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 7 - 7
Bin/CoreData/Techniques/NoTextureNormalPacked.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="LitSolid" ps="LitSolid" />
-    <pass name="litbase" vs="LitSolid_Normal" ps="LitSolid_NormalPackedAmbient" />
-    <pass name="light" vs="LitSolid_Normal" ps="LitSolid_NormalPacked" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="LitSolid_Normal" ps="LitSolid_NormalPackedPrepass" />
-    <pass name="material" vs="LitSolid" ps="LitSolid_Material" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="LitSolid_Normal" ps="LitSolid_NormalPackedDeferred" />
+<technique vs="LitSolid" ps="LitSolid">
+    <pass name="base" />
+    <pass name="litbase" vsdefines="NORMALMAP" psdefines="AMBIENT NORMALMAP PACKEDNORMAL" />
+    <pass name="light" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" vsdefines="NORMALMAP" psdefines="PREPASS NORMALMAP PACKEDNORMAL" />
+    <pass name="material" psdefines="MATERIAL" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" vsdefines="NORMALMAP" psdefines="DEFERRED NORMALMAP PACKEDNORMAL" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/NoTextureNormalPackedAlpha.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="alpha" vs="LitSolid" ps="LitSolid" depthwrite="false" blend="alpha" />
-    <pass name="litalpha" vs="LitSolid_Normal" ps="LitSolid_NormalPacked" depthwrite="false" blend="addalpha" />
+<technique vs="LitSolid" ps="LitSolid">
+    <pass name="alpha"  depthwrite="false" blend="alpha" />
+    <pass name="litalpha" vsdefines="NORMALMAP" psdefines="NORMALMAP PACKEDNORMAL" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/NoTextureOverlay.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="postalpha" vs="Basic" ps="Basic" depthtest="always" depthwrite="false" />
+<technique vs="Basic" ps="Basic">
+    <pass name="postalpha" depthtest="always" depthwrite="false" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/NoTextureUnlit.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit" ps="Unlit" />
+<technique vs="Unlit" ps="Unlit">
+    <pass name="base" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/NoTextureUnlitAlpha.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit" ps="Unlit" depthwrite="false" blend="alpha" />
+<technique vs="Unlit" ps="Unlit">
+    <pass name="alpha" depthwrite="false" blend="alpha" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/NoTextureUnlitVCol.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Basic_VCol" ps="Basic_VCol" />
+<technique vs="Basic" ps="Basic" vsdefines="VERTEXCOLOR" psdefines="VERTEXCOLOR">
+    <pass name="base" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/NoTextureVColAdd.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit_VCol" ps="Unlit_VCol" depthwrite="false" blend="add" />
+<technique vs="Unlit" ps="Unlit" vsdefines="VERTEXCOLOR" psdefines="VERTEXCOLOR">
+    <pass name="alpha" depthwrite="false" blend="add" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/NoTextureVColMultiply.xml

@@ -1,3 +1,3 @@
-<technique>
-    <pass name="alpha" vs="Unlit_VCol" ps="Unlit_VCol" depthwrite="false" blend="multiply" />
+<technique vs="Unlit" ps="Unlit" vsdefines="VERTEXCOLOR" psdefines="VERTEXCOLOR">
+    <pass name="alpha" depthwrite="false" blend="multiply" />
 </technique>

+ 7 - 7
Bin/CoreData/Techniques/TerrainBlend.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="TerrainBlend" ps="TerrainBlend" />
-    <pass name="litbase" vs="TerrainBlend" ps="TerrainBlend_Ambient" />
-    <pass name="light" vs="TerrainBlend" ps="TerrainBlend" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="TerrainBlend" ps="TerrainBlend_Prepass" />
-    <pass name="material" vs="TerrainBlend" ps="TerrainBlend_Material" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="TerrainBlend" ps="TerrainBlend_Deferred" />
+<technique vs="TerrainBlend" ps="TerrainBlend">
+    <pass name="base" />
+    <pass name="litbase" psdefines="AMBIENT" />
+    <pass name="light" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" psdefines="PREPASS" />
+    <pass name="material" psdefines="MATERIAL" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" psdefines="DEFERRED" />
     <pass name="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>

+ 7 - 7
Bin/CoreData/Techniques/VegetationDiff.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="Vegetation" ps="LitSolid_Diff" />
-    <pass name="litbase" vs="Vegetation" ps="LitSolid_DiffAmbient" />
-    <pass name="light" vs="Vegetation" ps="LitSolid_Diff" depthtest="equal" depthwrite="false" blend="add" />
-    <pass name="prepass" vs="Vegetation" ps="LitSolid_DiffPrepass" />
-    <pass name="material" vs="Vegetation" ps="LitSolid_DiffMaterial" depthtest="equal" depthwrite="false" />
-    <pass name="deferred" vs="Vegetation" ps="LitSolid_DiffDeferred" />
+<technique vs="Vegetation" ps="LitSolid" psdefines="DIFFMAP" >
+    <pass name="base" />
+    <pass name="litbase" psdefines="AMBIENT" />
+    <pass name="light" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" psdefines="PREPASS" />
+    <pass name="material" psdefines="MATERIAL" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" psdefines="DEFERRED" />
     <pass name="depth" vs="VegetationDepth" ps="Depth" />
     <pass name="shadow" vs="VegetationShadow" ps="Shadow" />
 </technique>

+ 9 - 9
Bin/CoreData/Techniques/VegetationDiffAlphaMask.xml

@@ -1,10 +1,10 @@
-<technique>
-    <pass name="base" vs="Vegetation" ps="LitSolid_DiffAlphaMask" alphamask="true" />
-    <pass name="litbase" vs="Vegetation" ps="LitSolid_DiffAlphaMaskAmbient" alphamask="true" />
-    <pass name="light" vs="Vegetation" ps="LitSolid_DiffAlphaMask"  depthtest="equal" depthwrite="false" blend="add" alphamask="true" />
-    <pass name="prepass" vs="Vegetation" ps="LitSolid_DiffAlphaMaskPrepass" alphamask="true" />
-    <pass name="material" vs="Vegetation" ps="LitSolid_DiffAlphaMaskMaterial" depthtest="equal" depthwrite="false" alphamask="true" />
-    <pass name="deferred" vs="Vegetation" ps="LitSolid_DiffAlphaMaskDeferred" alphamask="true" />
-    <pass name="depth" vs="VegetationDepth" ps="Depth_AlphaMask" alphamask="true" />
-    <pass name="shadow" vs="VegetationShadow" ps="Shadow_AlphaMask" alphamask="true" />
+<technique vs="Vegetation" ps="LitSolid" psdefines="DIFFMAP ALPHAMASK" alphamask="true" >
+    <pass name="base" />
+    <pass name="litbase" psdefines="AMBIENT" />
+    <pass name="light" depthtest="equal" depthwrite="false" blend="add" />
+    <pass name="prepass" psdefines="PREPASS" />
+    <pass name="material" psdefines="MATERIAL" depthtest="equal" depthwrite="false" />
+    <pass name="deferred" psdefines="DEFERRED" />
+    <pass name="depth" vs="VegetationDepth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="VegetationShadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

+ 2 - 2
Bin/CoreData/Techniques/VegetationDiffUnlit.xml

@@ -1,5 +1,5 @@
-<technique>
-    <pass name="base" vs="Vegetation" ps="Unlit_Diff" />
+<technique vs="Vegetation" ps="Unlit" psdefines="DIFFMAP" >
+    <pass name="base" />
     <pass name="depth" vs="VegetationDepth" ps="Depth" />
     <pass name="shadow" vs="VegetationShadow" ps="Shadow" />
 </technique>

+ 3 - 3
Bin/CoreData/Techniques/VegetationDiffUnlitAlphaMask.xml

@@ -1,5 +1,5 @@
-<technique>
+<technique vs="Vegetation" ps="Unlit" psdefines="DIFFMAP ALPHAMASK" alphamask="true" >
     <pass name="base" vs="Vegetation" ps="Unlit_DiffAlphaMask" />
-    <pass name="depth" vs="VegetationDepth" ps="Depth" />
-    <pass name="shadow" vs="VegetationShadow" ps="Shadow" />
+    <pass name="depth" vs="VegetationDepth" ps="Depth" psdefines="ALPHAMASK" />
+    <pass name="shadow" vs="VegetationShadow" ps="Shadow" psdefines="ALPHAMASK" />
 </technique>

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio