I have question about PCF filtering on cubemap . So how can I implement 3x3 PCF in cubemap, am i doing it already(PCF) using SampleCmpLevelZero (as in 2d textures)? It looks like no PCF.
Shadow factor code:
float3 l=cam;
float3 pos=shadowPosH-l;
float dis=length(pos);
float3 dir=normalize(pos);
float projectedDistance = max(max(abs(pos.x), abs(pos.y)), abs(pos.z));
float a = shadowproj._33;
float b = shadowproj._43;
float z = projectedDistance * a + b;
float dbDistance = z / projectedDistance;
float percentLit = 0.0f;
return shadowMap.SampleCmpLevelZero(samShadow,dir,dbDistance).r;
Sampler:
SamplerComparisonState samShadow
{
Filter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT;
AddressU = BORDER;
AddressV = BORDER;
AddressW = BORDER;
BorderColor = float4(0.0f, 0.0f, 0.0f, 0.0f);
ComparisonFunc = LESS_EQUAL;
};
Sampler:
SamplerComparisonState samShadow
{
Filter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT;
AddressU = BORDER;
AddressV = BORDER;
AddressW = BORDER;
BorderColor = float4(0.0f, 0.0f, 0.0f, 0.0f);
ComparisonFunc = LESS_EQUAL;
};