directx中的深度偏差问题

Posted

技术标签:

【中文标题】directx中的深度偏差问题【英文标题】:Depth bias issue in directx 【发布时间】:2020-07-28 06:02:21 【问题描述】:

我在 directx 9 深度偏差中遇到问题。 我已经关注了这个链接:https://software.intel.com/en-us/articles/alternatives-to-using-z-bias-to-fix-z-fighting-issues

它已经解决了我的基本问题,但真正的问题是当我将对象移动到视口边缘或靠近剪辑深度偏差失败时。

谁能帮帮我?

提前致谢。

【问题讨论】:

您能描述一下您遇到的实际问题吗?这是一个z战斗问题?目前我们不知道您要修复什么。 是的,这是z-fighting问题。实际上:我在相机前有 2d 物体,它有它的轮廓。我希望将该轮廓呈现在对象后面。使轮廓的重叠部分不可见。如果(fCamDist 100)_DepthBias = 0.0003f; _SlopeScaleDepthBias = 3.2f; else if (fCamDist 35) _DepthBias = 0.003f; _SlopeScaleDepthBias = 22.0f; else if (fCamDist 是我的深度偏差值还是相机和物体之间的角度导致深度偏差失败。 我正在使用这个命令:m_spd3dDevice->SetRenderState(D3DRS_SLOPESCALEDEPTHBIAS, dwordBitsFrom(_SlopeScaleDepthBias)); m_spd3dDevice->SetRenderState(D3DRS_DEPTHBIAS, dwordBitsFrom(_DepthBias)); 【参考方案1】:

@PeteBlackerThe3rd 以下是我的问题的一些快照: 第一 我的 2d 对象 withoutline 的外观通常如何。 enter image description here 第二 当我相对于相机在 (0,0,0) 处应用深度偏差时。 enter image description here 第三 当我在 Z 轴和 X 轴的视口中平移对象时。深度偏差失败。 enter image description here

【讨论】:

以上是关于directx中的深度偏差问题的主要内容,如果未能解决你的问题,请参考以下文章

DirectX11 With Windows SDK--12 深度/模板状态

DirectX 负 W

DirectX11第一篇 DirectX11简介

动画精灵问题 (C++/DirectX9)

DirectX 11 中的 pd3dDevice 是啥?

DirectX OMSetRenderTargets 中的访问冲突