Browse Source

Fix LitSolid & LitParticle shaders failing to create input layout (missing normals.) Log more detailed error when input layout creation fails.

Lasse Öörni 10 years ago
parent
commit
4ea4485d9f

+ 1 - 2
Bin/CoreData/Shaders/HLSL4/LitParticle.hlsl

@@ -5,7 +5,6 @@
 #include "Fog.hlsl"
 #include "Fog.hlsl"
 
 
 void VS(float4 iPos : POSITION,
 void VS(float4 iPos : POSITION,
-    float3 iNormal : NORMAL,
     float2 iTexCoord : TEXCOORD0,
     float2 iTexCoord : TEXCOORD0,
     #ifdef VERTEXCOLOR
     #ifdef VERTEXCOLOR
         float4 iColor : COLOR0,
         float4 iColor : COLOR0,
@@ -133,7 +132,7 @@ void PS(float2 iTexCoord : TEXCOORD0,
         #endif
         #endif
 
 
         #if defined(SPOTLIGHT)
         #if defined(SPOTLIGHT)
-            lightColor = iSpotPos.w > 0.0 ? sLightSpotMap.Sample(sLightSpotMap, iSpotPos.xy / iSpotPos.w).rrr * cLightColor.rgb : 0.0;
+            lightColor = iSpotPos.w > 0.0 ? tLightSpotMap.Sample(sLightSpotMap, iSpotPos.xy / iSpotPos.w).rrr * cLightColor.rgb : 0.0;
         #elif defined(CUBEMASK)
         #elif defined(CUBEMASK)
             lightColor = tLightCubeMap.Sample(sLightCubeMap, iCubeMaskVec).rgb * cLightColor.rgb;
             lightColor = tLightCubeMap.Sample(sLightCubeMap, iCubeMaskVec).rgb * cLightColor.rgb;
         #else
         #else

+ 3 - 1
Bin/CoreData/Shaders/HLSL4/LitSolid.hlsl

@@ -6,7 +6,9 @@
 #include "Fog.hlsl"
 #include "Fog.hlsl"
 
 
 void VS(float4 iPos : POSITION,
 void VS(float4 iPos : POSITION,
-    float3 iNormal : NORMAL,
+    #ifndef BILLBOARD
+        float3 iNormal : NORMAL,
+    #endif
     float2 iTexCoord : TEXCOORD0,
     float2 iTexCoord : TEXCOORD0,
     #if defined(LIGHTMAP) || defined(AO)
     #if defined(LIGHTMAP) || defined(AO)
         float2 iTexCoord2 : TEXCOORD1,
         float2 iTexCoord2 : TEXCOORD1,

+ 1 - 1
Source/Urho3D/Graphics/Direct3D11/D3D11VertexDeclaration.cpp

@@ -71,7 +71,7 @@ VertexDeclaration::VertexDeclaration(Graphics* graphics, ShaderVariation* vertex
     if (d3dInputLayout)
     if (d3dInputLayout)
         inputLayout_ = d3dInputLayout;
         inputLayout_ = d3dInputLayout;
     else
     else
-        LOGERROR("Failed to create input layout");
+        LOGERRORF("Failed to create input layout for shader %s element mask %d", vertexShader->GetFullName().CString(), vertexShader->GetElementMask());
 }
 }
 
 
 VertexDeclaration::~VertexDeclaration()
 VertexDeclaration::~VertexDeclaration()