Browse Source

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

Lasse Öörni 12 years ago
parent
commit
0bcb95e6a2
100 changed files with 489 additions and 778 deletions
  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;
 varying vec3 vTexCoord;
 
 
-void main()
+void VS()
 {
 {
     mat4 modelMatrix = iModelMatrix;
     mat4 modelMatrix = iModelMatrix;
     vec3 worldPos = GetWorldPos(modelMatrix);
     vec3 worldPos = GetWorldPos(modelMatrix);
@@ -12,3 +13,8 @@ void main()
     gl_Position.z = gl_Position.w;
     gl_Position.z = gl_Position.w;
     vTexCoord = iPos.xyz;
     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;
 varying vec2 vTexCoord;
 #ifdef HEIGHTFOG
 #ifdef HEIGHTFOG
@@ -28,14 +30,67 @@ varying vec2 vTexCoord;
     varying vec4 vScreenPos;
     varying vec4 vScreenPos;
 #endif
 #endif
 
 
+#ifdef COMPILEPS
 uniform sampler2D sWeightMap0;
 uniform sampler2D sWeightMap0;
 uniform sampler2D sDetailMap1;
 uniform sampler2D sDetailMap1;
 uniform sampler2D sDetailMap2;
 uniform sampler2D sDetailMap2;
 uniform sampler2D sDetailMap3;
 uniform sampler2D sDetailMap3;
-
 uniform vec2 cDetailTiling;
 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
     // Get material diffuse albedo
     vec3 weights = texture2D(sWeightMap0, vTexCoord).rgb;
     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;
 varying vec2 vTexCoord;
 #ifdef VERTEXCOLOR
 #ifdef VERTEXCOLOR
@@ -11,7 +13,24 @@ varying vec2 vTexCoord;
 #endif
 #endif
 varying float vDepth;
 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
     #ifdef DIFFMAP
         vec4 diffColor = cMatDiffColor * texture2D(sDiffMap, vTexCoord);
         vec4 diffColor = cMatDiffColor * texture2D(sDiffMap, vTexCoord);
@@ -35,4 +54,3 @@ void main()
 
 
     gl_FragColor = vec4(GetFog(diffColor.rgb, fogFactor), diffColor.a);
     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 cWindHeightFactor;
 uniform float cWindHeightPivot;
 uniform float cWindHeightPivot;
@@ -30,7 +30,7 @@ varying vec2 vTexCoord;
         varying vec3 vCubeMaskVec;
         varying vec3 vCubeMaskVec;
     #endif
     #endif
 #else
 #else
-    varying vec4 vVertexLight;
+    varying vec4 vglslexLight;
     varying vec3 vNormal;
     varying vec3 vNormal;
     #ifdef NORMALMAP
     #ifdef NORMALMAP
         varying vec3 vTangent;
         varying vec3 vTangent;
@@ -39,7 +39,7 @@ varying vec2 vTexCoord;
     varying vec4 vScreenPos;
     varying vec4 vScreenPos;
 #endif
 #endif
 
 
-void main()
+void VS()
 {
 {
     mat4 modelMatrix = iModelMatrix;
     mat4 modelMatrix = iModelMatrix;
     vec3 worldPos = GetWorldPos(modelMatrix);
     vec3 worldPos = GetWorldPos(modelMatrix);
@@ -109,12 +109,12 @@ void main()
             #endif
             #endif
         #endif
         #endif
     #else
     #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
         #endif
         
         
         vScreenPos = GetScreenPos(gl_Position);
         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 cWindHeightFactor;
 uniform float cWindHeightPivot;
 uniform float cWindHeightPivot;
@@ -8,7 +8,7 @@ uniform vec2 cWindWorldSpacing;
 
 
 varying vec3 vTexCoord;
 varying vec3 vTexCoord;
 
 
-void main()
+void VS()
 {
 {
     mat4 modelMatrix = iModelMatrix;
     mat4 modelMatrix = iModelMatrix;
     vec3 worldPos = GetWorldPos(modelMatrix);
     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 cWindHeightFactor;
 uniform float cWindHeightPivot;
 uniform float cWindHeightPivot;
@@ -8,7 +8,7 @@ uniform vec2 cWindWorldSpacing;
 
 
 varying vec2 vTexCoord;
 varying vec2 vTexCoord;
 
 
-void main()
+void VS()
 {
 {
     mat4 modelMatrix = iModelMatrix;
     mat4 modelMatrix = iModelMatrix;
     vec3 worldPos = GetWorldPos(modelMatrix);
     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">
 <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="litalpha" depthwrite="false" blend="addalpha" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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>
 </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>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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>
 </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>
 </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>
 </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>
 </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>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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>
 </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>
 </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>
 </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>
 </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>
 </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>
 </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="depth" vs="Depth" ps="Depth" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
     <pass name="shadow" vs="Shadow" ps="Shadow" />
 </technique>
 </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="depth" vs="VegetationDepth" ps="Depth" />
     <pass name="shadow" vs="VegetationShadow" ps="Shadow" />
     <pass name="shadow" vs="VegetationShadow" ps="Shadow" />
 </technique>
 </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>
 </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="depth" vs="VegetationDepth" ps="Depth" />
     <pass name="shadow" vs="VegetationShadow" ps="Shadow" />
     <pass name="shadow" vs="VegetationShadow" ps="Shadow" />
 </technique>
 </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="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>
 </technique>

Some files were not shown because too many files changed in this diff