I've started using a new engine and am going to modify the shadow generation. I'm currently strugling with implementing hardware PCF in the shader. SampleCmpLevelZero is always returning 0 and the screen goes black. The code used to work before I optimized. I'm calling SampleCmpLevelZero with the same uv and depth that functioned well with the unoptimized code and I'm using following sampler state:
// sampler state
Filter = MIN_MAG_LINEAR_MIP_POINT;
AddressU = MIRROR;
AddressV = MIRROR;
// sampler comparison state
ComparisonFunc = LESS;
ComparisonFilter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT;
The same that I found in the documentation. I had a look at what format the texture resource, depth stencil view and shader resource view were using and it seemed to be the same that worked in the cascade shadow sample that comes with the directx SDK (DXGI_FORMAT_R24_UNORM_X8_TYPELESS, DXGI_FORMAT_D24_UNORM_S8_UINT). What I could see all other settings were identical.
When I view the process in PerfStudio the depth map seems valid (and it workes if I just call Sample). What can be the reason for this behaviour. Has anybody experienced the same or know what I should check?
Thanks a lot :-)
Edited by five1mon, 06 June 2012 - 05:45 AM.