![]() |
1
5
三角形的边正好通过像素中心(在半整数坐标下)。因此,边缘上的那些像素是否属于三角形还不能很好地确定。 一个适用的规则是,共享一条边的三角形必须将该边上的像素光栅化一次,以防止混合等伪影。实现的方式是在单独光栅化每个三角形时包括左边缘并排除右边缘(例如)。 请注意,这仅适用于样品正好在边缘上时的打结。如果你把三角形提高了四分之一个像素,那么所有的样本都会明确地位于三角形的内部或外部,它的表观宽度也会如你所期望的那样。 为了清晰起见,这是一张图,其中三角形绘制在60x60帧缓冲区上。菱形指示样本在每个像素内的位置。白色钻石位于三角形之外,因此没有阴影。黑钻石被确定在三角形内,因此被着色。红色钻石恰好位于右边缘,如前所述,它们被认为在三角形之外,因此也没有着色。结果是,三角形在屏幕上的宽度只有五个像素,而不是你所期望的六个像素:
|
![]() |
MattSW3 · 不确定这个生成文件出了什么问题? 1 年前 |
![]() |
Metal Jesus · 好奇使用纹理索引实现索引缓冲区对象 2 年前 |
![]() |
Varrak · 使用与计算着色器的输入和输出相同的缓冲区 2 年前 |
![]() |
char8_t · Vulkan Android上带有MSAA的黑屏 7 年前 |