我正在尝试使用DirectX DepthBias
11 ( D3D11_RASTERIZER_DESC
t 改变任何结果。但我注意到一些奇怪的事情......该值被定义为 aINT
而不是 a FLOAT
。这对我来说没有意义,但它仍然没有按预期工作。INT
如果它是一个需要UNORM
在着色器管道中解释为 a 的值,我们如何正确设置该值?
这就是我所做的:
- 渲染所有几何体
- 设置光栅化器以线框呈现
- 再次渲染所有几何体
我可以清楚地看到线框覆盖,但是 z-fighting 是可怕的。我尝试将 设置DepthBias
为许多不同的值,例如0.000001
, 0.1
, 1
,10
和1000
所有减号等价物,仍然没有结果......显然,我知道当将浮点数转换为整数时,所有小数都会被删除.. . 嗯?
D3D11_RASTERIZER_DESC RasterizerDesc;
ZeroMemory(&RasterizerDesc, sizeof(RasterizerDesc));
RasterizerDesc.FillMode = D3D11_FILL_WIREFRAME;
RasterizerDesc.CullMode = D3D11_CULL_BACK;
RasterizerDesc.FrontCounterClockwise = FALSE;
RasterizerDesc.DepthBias = ???
RasterizerDesc.SlopeScaledDepthBias = 0.0f;
RasterizerDesc.DepthBiasClamp = 0.0f;
RasterizerDesc.DepthClipEnable = TRUE;
RasterizerDesc.ScissorEnable = FALSE;
RasterizerDesc.MultisampleEnable = FALSE;
RasterizerDesc.AntialiasedLineEnable = FALSE;
有人知道如何DepthBias
正确设置吗?或者它可能是 DirectX 中的一个错误(我对此表示怀疑),或者也许有比使用更好的方法来实现这一点DepthBias
?
谢谢!