【问题标题】:Sample depth from shadow map without disabling hardware PCF在不禁用硬件 PCF 的情况下从阴影贴图采样深度
【发布时间】:2016-05-18 14:38:41
【问题描述】:

我有一个启用了硬件百分比更接近过滤的阴影贴图。但我还需要获取存储在阴影贴图中的深度值,以便将其用于在像素着色器中实现其他技术。问题是所有采样函数(tex2Dtex2Dproj)都返回深度比较的最终结果。它运作良好,但我无法获得深度值本身。

是否可以为阴影映射保留硬件 PCF对深度值本身进行采样

但有一个限制,我无法处理应用程序如何创建阴影贴图,我只能编辑着色器。

【问题讨论】:

    标签: 3d directx shader hlsl shadow-mapping


    【解决方案1】:

    如果你能找到一个未使用的SamplerState/sampler2D绑定槽,你应该可以在那里声明一个并将它与通用Sample/tex2D操作一起使用。由于应用程序未绑定采样器状态槽,因此驱动程序应使用默认的点采样设置。如果深度缓冲区支持这种类型的访问,它应该返回 pre-PCF 值。

    【讨论】:

    • 我自己也尝试过这个想法,但不幸的是,它似乎不起作用。我不能 100% 确定,因为我找不到好的文档,但硬件 PCF 似乎很棘手,并且在满足某些条件时它会自动开始工作。它似乎也可以与其他采样器一起使用,因为纹理本身是以正确的方式声明的。好像我什么都试过了。无论我做什么,我都会得到深度测试的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多