Compatibilidad con dibujo de línea en D3DX (Direct3D 9)

D3DX es una biblioteca de utilidades que proporciona servicios auxiliares. Es una capa por encima del componente Direct3D.

D3DX admite líneas antialias de un solo píxel. Ya no se admiten patrones de línea.

La biblioteca de dibujo de líneas emula las líneas mediante triángulos de textura y supone lo siguiente:

  • El hardware está disponible a través de las interfaces de Direct3D 9.
  • Hay al menos una fase de textura disponible.
  • Se usan texturas de 64 x 64.
  • Los siguientes modos están disponibles:
    • Filtrado bilineal
    • Modo de dirección de fijación
    • Ajuste del modo de dirección
    • Modulación de operación alfa
    • Combinación alfa (SRCBLEND = SRC_ALPHA, DESTBLEND = INV_SRC_ALPHA)
    • Prueba alfa si la combinación alfa no está disponible; resultado de menor calidad

Para la representación de líneas antialiased en destinos de representación multimuestra, use ID3DXLine , que genera polígonos texturados. Los valores de cobertura de píxeles, generados por la rasterización de líneas antialiased, modulan el valor alfa del píxel calculado por el sombreador de píxeles. Para dibujar una línea antialiased, una aplicación debe habilitar la combinación alfa y, a continuación, debe establecer el estado de representación D3DRS_ANTIALIASEDLINEENABLE en TRUE.

Descripción de la funcionalidad

La biblioteca admite tiras de línea coloreados de dibujo con las siguientes características de línea, cada una de las cuales es independiente de cualquier otra:

  • Ancho de línea
  • Patrón de línea con repetición (el contador de patrones de línea se restablece con cada llamada ID3DXLine::D raw o ID3DXLine::D rawTransform . No se restablece con cada segmento de la franja de líneas).
  • Suavizado de contorno
  • Líneas de estilo OpenGL

Nota

No se admite ningún mitering.

 

La biblioteca usa compatibilidad nativa de dibujo de línea de hardware (si está disponible en el dispositivo) solo si:

  • El ancho de línea es 1.
  • No hay ningún patrón de línea habilitado.

Algunas líneas antialias de un solo píxel son compatibles con algún hardware, por lo que la biblioteca lo usa, si está disponible. El miembro LineCaps de la estructura D3DCAPS9 enumera las funcionalidades de hardware para primitivos de dibujo de línea.

Cuando se usa el dibujo de línea de software, cada línea se expande en un rectángulo y se envían cuatro vértices al controlador.

Cada segmento de línea se dibuja con dos triángulos. El ancho del primitivo es el ancho especificado más 1,0, lo que puede dar lugar a una fila o columna adicionales de píxeles. A medida que la línea se vuelve más ancha, el degradado de las antialias en la textura se vuelve más grueso y se replican más elementos de textura totalmente opacos alrededor del medio. El degradado se codifica en la dirección v de la textura y normalmente se replica a lo largo de la dirección U. El modo de direccionamiento de textura para v es la fijación.

Cada segmento de línea de la lista se puede considerar una línea independiente que se inicia desde el punto final anterior.

La calidad de suavizado a lo largo de los bordes paralelos a la longitud de la línea original sufre a medida que la línea se vuelve más ancha. Se espera que los anchos de línea mayores que 32.0 comiencen a mostrar artefactos a lo largo de estos bordes.

D3DX