Fix shadow again
This commit is contained in:
@@ -101,8 +101,6 @@ float ShadowCalculation(float4 shadowCoord, float3 normal) {
|
||||
|
||||
shadow /= 9.0f;
|
||||
|
||||
// float shadowDepth = gShadowMap.Sample(gShadowSampler2, UVCoords.xy).r;
|
||||
|
||||
|
||||
if(projCoord.z > 1.0)
|
||||
shadow = 0.0;
|
||||
@@ -110,15 +108,38 @@ float ShadowCalculation(float4 shadowCoord, float3 normal) {
|
||||
return shadow;
|
||||
}
|
||||
// Pixel shader
|
||||
// float4 PS(VS_OUTPUT input) : SV_TARGET {
|
||||
// float shadowFactor = ShadowCalculation(input.ShadowCoord, input.Normal);
|
||||
//
|
||||
// float3 diffuseColor = gDiffuseMap.Sample(gSampleState, input.TexCoord).rgb;
|
||||
//
|
||||
// float3 finalColor = diffuseColor * (1 - shadowFactor);
|
||||
// finalColor += gAmbient;
|
||||
//
|
||||
// return float4(finalColor, 1.0f);
|
||||
// }
|
||||
|
||||
float4 PS(VS_OUTPUT input) : SV_TARGET {
|
||||
float shadowFactor = ShadowCalculation(input.ShadowCoord, input.Normal);
|
||||
float3 color = gDiffuseMap.Sample(gSampleState, input.TexCoord).rgb;
|
||||
float3 normal = normalize(input.Normal);
|
||||
|
||||
float3 diffuseColor = gDiffuseMap.Sample(gSampleState, input.TexCoord).rgb;
|
||||
float3 lightDir = normalize(-gLightDirection);
|
||||
float3 viewDir = normalize(gCameraPosition - input.WorldPosition.xyz);
|
||||
|
||||
float3 finalColor = diffuseColor * (1 - shadowFactor);
|
||||
finalColor += gAmbient;
|
||||
float3 ambient = gAmbient;
|
||||
|
||||
return float4(finalColor, 1.0f);
|
||||
float diff = max(dot(normal, lightDir), 0.0);
|
||||
|
||||
float3 diffuse = gLightColor * diff * color;
|
||||
|
||||
float3 reflectDir = reflect(-lightDir, normal);
|
||||
float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32);
|
||||
float3 specular = gLightColor * spec;
|
||||
|
||||
float shadow = ShadowCalculation(input.ShadowCoord, normal);
|
||||
float3 lighting = (ambient + (1.0 - shadow) * (diffuse + specular)) * color;
|
||||
|
||||
return float4(lighting, 1.0f);
|
||||
}
|
||||
|
||||
// DepthStencilState
|
||||
|
||||
Reference in New Issue
Block a user