首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectX11线框z战斗帮助(或者为什么D3D11_RASTERIZER_DESC.DepthBias是一个INT?)

DirectX11线框z战斗帮助(或者为什么D3D11_RASTERIZER_DESC.DepthBias是一个INT?)
EN

Stack Overflow用户
提问于 2013-06-19 19:35:10
回答 2查看 3.9K关注 0票数 4

我正在尝试使用DepthBias属性在DirectX 11 (D3D11_RASTERIZER_DESC)中的光栅化状态,以帮助在实体多边形(线框覆盖)上呈现线框模式时发生的z战斗,并且似乎将其设置为任何值都不会改变结果。但我注意到一些奇怪的事情..。该值被定义为INT而不是FLOAT。这对我来说没有意义,但它仍然没有像预期的那样起作用。如果它是一个需要解释为着色管道中的INTUNORM,我们如何正确地设置这个值?

我要做的是:

  1. 渲染所有几何
  2. 将栅格设置为在线框中呈现
  3. 重新渲染所有几何图形

我可以清楚地看到线框覆盖,但z战斗是可怕的。我尝试将DepthBias设置为许多不同的值,例如0.0000010.11101000以及所有的减值,但仍然没有结果.很明显,当我把浮点数转换成整数时,所有的小数都会被切掉.嗯?

代码语言:javascript
复制
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中的一个bug (我对此表示怀疑),或者可能还有比使用DepthBias更好的方法来实现这一点

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-19 22:17:35

http://msdn.microsoft.com/en-us/library/windows/desktop/cc308048(v=vs.85).aspx

取决于您的深度缓冲区是联安办事处还是浮点,数字的含义不同。在大多数情况下,您只是在寻找最小的可能值,以摆脱您的z格斗,而不是任何特定的价值。小值是小偏差,大值是大偏差,但是这在数字上等同于移位取决于深度缓冲区的格式。

至于您尝试过的值,任何小于1的值都会舍入为零,没有效果。1,10,1000可能根本不足以解决这个问题。对于D24 of深度缓冲器,该公式表明1000的深度偏差将抵消深度:1,000* (1 / 2^24),等于0.0000596,在z缓冲项中不是很大的变化。

很大的价值是100,000还是1,000,000是用来解决z战的?

票数 9
EN

Stack Overflow用户

发布于 2013-06-20 17:25:06

如果有人在乎的话,我会给自己做一个宏,让它变得更容易。请注意,只有在使用32位浮点深度缓冲区格式时,此宏才能工作。如果使用不同的深度缓冲区格式,则可能需要不同的宏。

代码语言:javascript
复制
#define DEPTH_BIAS_D32_FLOAT(d) (d/(1/pow(2,23)))

这样,您可以简单地使用标准值来设置深度偏差,例如:

代码语言:javascript
复制
RasterizerDesc.DepthBias = DEPTH_BIAS_D32_FLOAT(-0.00001);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17199817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档