对于以下菜鸟问题的歉意,就是我在任何地方都找不到令人满意的答案...

当我渲染由两个三角形组成的简单的轴对齐四边形时,我不明白为什么在这些三角形相交的对角线边缘上没有任何可见的伪像。其中一些像素必须同时位于两个三角形中,对吗?因此,如果我的碎片着色器总是发出部分透明的颜色(比如说50%黑色),那么在生成的四边形中是否应该没有可见的对角线?

显然,这不是一个很好的选择必须解决的真正问题,我只是不明白为什么不是这样。它使GPU始终有效的是什么?

评论

我已经在我的博客中非常深入地讨论了这个问题。我遵循的特定规则与Direct3D 10+中的相同。

#1 楼

这与“扫描转换期间的样本间隙是什么?”中讨论的问题相同。

简而言之,至少在大多数硬件系统中,光栅化会在每个像素的“无穷小”点进行测试以确定如果该像素在给定的三角形内。

如果采样点正好位于边缘上,则可以使用其他平局决胜规则(通常称为“填充规则”)。通常,这些等效于,例如,仅将三角形的顶部/左侧**上的边缘点视为“内部”。 br />

评论


$ \ begingroup $
是的,我只是在寻找答案
$ \ endgroup $
– joojaa
16年6月15日在11:00

$ \ begingroup $
黑皮书的相关段落:jagregory.com/abrash-black-book / ...
$ \ endgroup $
–黑色
16年6月15日在15:36

$ \ begingroup $
非常感谢!现在有点说得通了,黑皮书也看起来像是一种很好的资源
$ \ endgroup $
– Reuben Scratton
16年6月15日在16:10