Original Post
Hey
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. [font=Consolas][size=2]SampleCmpLevelZero [/font]is always returning 0 and the screen goes black. The code used to work before I optimized. I'm calling[font=Consolas][font=Consolas]SampleCmpLevelZero [/font][/font]with the same uv and depth that functioned well with the unoptimized code and I'm using following sampler state:
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. [font=Consolas][size=2]SampleCmpLevelZero [/font]is always returning 0 and the screen goes black. The code used to work before I optimized. I'm calling
[font=Consolas][font=Consolas]SampleCmpLevelZero [/font][/font]with the same uv and depth that functioned well with the unoptimized code and I'm using following sampler state:
[font=Consolas][font=Consolas]SamplerComparisonState ShadowSampler[/font][/font]
[font=Consolas][font=Consolas]{[/font][/font]
[font=Consolas][color=#008000][font=Consolas][color=#008000][font=Consolas][color=#008000] // sampler state[/font][/font][/font]
[font=Consolas][font=Consolas] Filter = MIN_MAG_LINEAR_MIP_POINT;[/font][/font]
[font=Consolas][font=Consolas] AddressU = MIRROR;[/font][/font]
[font=Consolas][font=Consolas] AddressV = MIRROR;[/font][/font]
[font=Consolas][color=#008000][font=Consolas][color=#008000][font=Consolas][color=#008000] // sampler comparison state[/font][/font][/font]
[font=Consolas][font=Consolas] ComparisonFunc = LESS;[/font][/font]
[font=Consolas][font=Consolas] ComparisonFilter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT;[/font][/font]
[font=Consolas][font=Consolas]};[/font][/font]
[font=arial,helvetica,sans-serif][size=2][size=2]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 ([/font][font=arial,helvetica,sans-serif][size=2][size=2][font=Consolas][font=Consolas]DXGI_FORMAT_R24_UNORM_X8_TYPELESS, [font=Consolas][font=Consolas]DXGI_FORMAT_D24_UNORM_S8_UINT[/font][/font][/font][/font]). What I could see all other settings were identical.[/font]
[font=arial,helvetica,sans-serif]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?[/font]
[font=arial,helvetica,sans-serif]Thanks a lot :-)[/font]
[font=Consolas][font=Consolas]{[/font][/font]
[font=Consolas][color=#008000][font=Consolas][color=#008000][font=Consolas][color=#008000] // sampler state[/font][/font][/font]
[font=Consolas][font=Consolas] Filter = MIN_MAG_LINEAR_MIP_POINT;[/font][/font]
[font=Consolas][font=Consolas] AddressU = MIRROR;[/font][/font]
[font=Consolas][font=Consolas] AddressV = MIRROR;[/font][/font]
[font=Consolas][color=#008000][font=Consolas][color=#008000][font=Consolas][color=#008000] // sampler comparison state[/font][/font][/font]
[font=Consolas][font=Consolas] ComparisonFunc = LESS;[/font][/font]
[font=Consolas][font=Consolas] ComparisonFilter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT;[/font][/font]
[font=Consolas][font=Consolas]};[/font][/font]
[font=arial,helvetica,sans-serif][size=2][size=2]