我尝试使用C++在DirectX11中绘制一个100x100的网格,但出现了以下问题:

上图显示了我在线框中绘制的网格,使用的是一个填充模式设置为“D3D11_FILL_WIREFRAME”的光栅化器和一个“D3D11_PRIMITIVE_TOPOLOGY_LINELIST”拓扑。线框的线条看起来是交错的,而不是直的,缺少线框的某些部分。
由于我不确定这个问题是指什么,我也不完全确定我应该寻找什么,因此,任何帮助都是非常感谢的。
发布于 2015-11-09 10:37:58
这是一个经典的“别名”问题。
在MSAA11中,您可以使用Direct3D,这是一种通用的抗锯齿选项,或者如果您不使用MSAA,则可以使用特定的线条算法。请参见D3D11_RASTERIZER_DESC AntialiasedLineEnable和MultisampleEnable。
请参阅Aliasing和Multisample anti-aliasing
更新:我已经在DirectX工具包tutorial中添加了MSAA和AA模式。
发布于 2015-11-13 09:58:12
我偶然发现了这个问题的解决方案,这完全不是我所期望的。因为我创建的窗口有轮廓栏,所以windows客户区被错误地呈现了。因此,当我创建我的图形设备时,我是用窗口大小来初始化它,而不是用窗口客户端大小。不知何故,这导致了上面的问题。
我通过使用'GetWindowRect‘为窗口实现了一个'GetClientSize’方法修复了这个问题。
https://stackoverflow.com/questions/33598243
复制相似问题