Flat shading/low poly

This is the result I now get:

With that:

struct VertexShaderInput
{
    float4 Position : SV_POSITION0;    
    float4 Normal : NORMAL0;
    float4 Color : COLOR0;
};
struct VertexShaderOutput
{
    float4 Position : SV_POSITION0;
    float4 worldPos : TEXCOORD0;
    nointerpolation float4 Color : COLOR0;
};

VertexShaderOutput TexturedVS(VertexShaderInput input)
{
    VertexShaderOutput output;

    float4 worldPosition = mul(input.Position, xWorld);
    float4 viewPosition = mul(worldPosition, xView);

    output.Position = mul(viewPosition, xProjection);
    output.worldPos = worldPosition;
    output.Color = input.Color;

    return output;
}

float4 TexturedPS(VertexShaderOutput input) : COLOR0
{
    float3 n = input.worldPos;
    float3 dndx = ddx(n);
    float3 dndy = ddy(n);
    float3 norm = -normalize(cross(dndx, dndy));

    float LightingFactor = dot(norm, -xLightDirection);

    float4 output = input.Color;
    output.rgb *= saturate(LightingFactor) + xAmbient;

    return output;
}

The nointerpolation has still no effect as you see, am I doing something wrong?