光栅化规则简介
通常,为顶点指定的点不与屏幕上的像素精确匹配。 发生这种情况时,Direct3D 应用三角形光栅化规则来决定将哪些像素应用到给定的三角形。
这是光栅化规则的简化介绍。 有关详细信息,请参阅 光栅化规则。 另 请参阅光栅器(RS)阶段。
三角形光栅化规则
Direct3D 使用左上角填充约定来填充几何图形。 这是用于 GDI 和 OpenGL 中矩形的相同约定。 在 Direct3D 中,像素的中心是决定性点。 如果中心位于三角形内,则像素是三角形的一部分。 像素中心位于整数坐标处。
Direct3D 使用的三角形光栅化规则的说明不一定适用于所有可用的硬件。 测试可能会发现这些规则的实现中的细微变化。
下图显示了一个矩形,其左上角位于(0,0),其右下角位于(5,5)。 此矩形填充 25 像素,就像预期一样。 矩形的宽度定义为向右减左。 高度定义为底部减去顶部。
在左上角填充约定中, 顶部 是指水平跨度的垂直位置, 而左侧 是指跨度内像素的水平位置。 边缘不能是上边缘,除非它是水平边缘。 一般情况下,大多数三角形只有左右边缘。 下图显示了上边缘和右边缘。
左上方填充约定确定当三角形穿过像素中心时 Direct3D 执行的操作。 下图显示了两个三角形,一个在 (0, 0), (5, 0), 和 (5, 5), 另一个位于 (0, 5), (0, 0), 和 (5, 5)。 在这种情况下,第一个三角形获取 15 像素(以黑色显示),而第二个三角形仅获取 10 像素(以灰色显示),因为共享边缘是第一个三角形的左边缘。
如果定义一个矩形,其左上角为 (0.5, 0.5) 和右下角 (2.5, 4.5),则此矩形的中心点为 (1.5, 2.5)。 当 Direct3D 光栅器细化此矩形时,每个像素的中心在四个三角形中明确显示,不需要左上角填充约定。 下图显示了这一点。 矩形中的像素根据 Direct3D 包含这些像素的三角形进行标记。
如果在上图中移动矩形,使其左上角位于(1.0、1.0)、右下角(3.0、5.0)和其中心点(2.0,3.0),Direct3D 将应用左上角填充约定。 下图所示,此矩形中的大多数像素在两个或多个三角形之间跨越边框。
对于这两个矩形,相同的像素受到影响,如下图所示。
点和线规则
点的呈现方式与点子画面相同,它们都呈现为屏幕对齐的四边形,因此遵循与多边形呈现相同的规则。
非抗锯齿线呈现规则与 GDI 线条的呈现规则完全相同。
点子画面规则
点子画面和修补基元的光栅化,就像基元首先分割成三角形,生成的三角形光栅化。
相关主题