Introducción a las reglas de rasterización
A menudo, los puntos especificados para los vértices no coinciden exactamente con los píxeles de la pantalla. Cuando esto sucede, Direct3D aplica reglas de rasterización de triángulos para decidir qué píxeles se aplican a un triángulo determinado.
Se trata de una introducción simplificada a las reglas de rasterización. Para más información, consulte Reglas de rasterización. Consulte también fase de rasterizador (RS).
Reglas de rasterización de triángulos
Direct3D usa una convención de relleno de la parte superior izquierda para rellenar la geometría. Esta es la misma convención que se usa para rectángulos en GDI y OpenGL. En Direct3D, el centro del píxel es el punto decisivo. Si el centro está dentro de un triángulo, el píxel forma parte del triángulo. Los centros de píxeles están en coordenadas enteras.
Esta descripción de las reglas de rasterización de triángulos usadas por Direct3D no se aplica necesariamente a todo el hardware disponible. Las pruebas pueden descubrir variaciones menores en la implementación de estas reglas.
En la ilustración siguiente se muestra un rectángulo cuya esquina superior izquierda está en (0, 0) y cuya esquina inferior derecha está en (5, 5). Este rectángulo rellena 25 píxeles, como cabría esperar. El ancho del rectángulo se define como derecho menos izquierdo. El alto se define como inferior menos superior.
En la convención de relleno de la parte superior izquierda, top hace referencia a la ubicación vertical de los intervalos horizontales y a la izquierda hace referencia a la ubicación horizontal de píxeles dentro de un intervalo. Un borde no puede ser un borde superior a menos que sea horizontal. En general, la mayoría de los triángulos solo tienen bordes izquierdo y derecho. En la ilustración siguiente se muestra un borde superior y un borde derecho.
La convención de relleno de la parte superior izquierda determina la acción realizada por Direct3D cuando un triángulo pasa por el centro de un píxel. En la siguiente ilustración se muestran dos triángulos, uno en (0, 0), (5, 0) y (5, 5) y el otro en (0, 5), (0, 0) y (5, 5). El primer triángulo de este caso obtiene 15 píxeles (que se muestra en negro), mientras que el segundo obtiene solo 10 píxeles (que se muestran en gris) porque el borde compartido es el borde izquierdo del primer triángulo.
Si define un rectángulo con su esquina superior izquierda en (0,5, 0,5) y su esquina inferior derecha en (2,5, 4,5), el punto central de este rectángulo está en (1,5, 2,5). Cuando el rasterizador Direct3D tesela este rectángulo, el centro de cada píxel es inequívocamente dentro de cada uno de los cuatro triángulos y no se necesita la convención de relleno de la parte superior izquierda. En la ilustración siguiente se muestra esto. Los píxeles del rectángulo se etiquetan según el triángulo en el que Direct3D los incluye.
Si mueve el rectángulo en la ilustración anterior para que su esquina superior izquierda esté en (1.0, 1.0), su esquina inferior derecha en (3.0, 5.0) y su punto central en (2.0, 3.0), Direct3D aplica la convención de relleno superior izquierda. La mayoría de los píxeles de este rectángulo separan el borde entre dos o más triángulos, como se muestra en la ilustración siguiente.
Para ambos rectángulos, se ven afectados los mismos píxeles, como se muestra en la ilustración siguiente.
Reglas de punto y línea
Los puntos se representan igual que los sprites de punto, que se representan como cuadríteros alineados con pantalla y, por tanto, se adhieren a las mismas reglas que la representación de polígonos.
Las reglas de representación de líneas sin suavizado son exactamente las mismas que las de las líneas GDI.
Reglas de sprite de punto
Las sprites de punto y los primitivos de revisión se rasterizan como si los primitivos se teselaron primero en triángulos y los triángulos resultantes rasterizados.
Temas relacionados