Supporto disegno a linee in D3DX (Direct3D 9)

D3DX è una libreria di utilità che fornisce servizi helper. Si tratta di un livello sopra il componente Direct3D.

D3DX supporta linee antialiased a pixel singolo. I modelli di linea non sono più supportati.

La libreria di disegni a linee emula le linee usando triangoli di trama e presuppone quanto segue:

  • L'hardware è disponibile tramite le interfacce Direct3D 9.
  • È disponibile almeno una fase di trama.
  • Vengono usate trame 64x64.
  • Sono disponibili le modalità seguenti:
    • Filtraggio bilineare
    • Modalità di indirizzo di blocco
    • Modalità di wrapping dell'indirizzo
    • Modulare alfa op
    • Fusione alfa (SRCBLEND = SRC_ALPHA, DESTBLEND = INV_SRC_ALPHA)
    • Test alfa se la fusione alfa non è disponibile; risultato di qualità inferiore

Per il rendering di linee antialiased in destinazioni di rendering multisample, usare ID3DXLine che genera poligoni con trama. I valori di copertura dei pixel, generati dalla rasterizzazione di linee antialiased, modulano il valore alfa del pixel calcolato dal pixel shader. Per disegnare una linea antialiased, un'applicazione deve abilitare la fusione alfa e quindi impostare lo stato di rendering D3DRS_ANTIALIASEDLINEENABLE su TRUE.

Descrizione della funzionalità

La libreria supporta strisce di linea colorate di disegno con le caratteristiche di linea seguenti, ognuna delle quali è indipendente da qualsiasi altra:

  • Spessore linea
  • Motivo linea con ripetizione (il contatore dei criteri di linea viene reimpostato con ogni chiamata ID3DXLine::D raw o ID3DXLine::D rawTransform . Non viene reimpostato con ogni segmento della striscia di linea.
  • Antialias
  • Linee in stile OpenGL

Nota

Non è supportato alcun acario.

 

La libreria usa il supporto per il disegno a linee hardware nativo (se disponibile nel dispositivo) solo se:

  • La larghezza della linea è 1.
  • Non è abilitato alcun motivo linea.

Le linee antialiased a larghezza a pixel singolo sono supportate da alcuni hardware, quindi la libreria lo usa, se disponibile. Il membro LineCaps della struttura D3DCAPS9 enumera le funzionalità hardware per le primitive di disegno a linee.

Quando si utilizza il disegno a linee software, ogni linea viene espansa in un rettangolo e quattro vertici vengono inviati al driver.

Ogni segmento di linea viene disegnato con due triangoli. La larghezza della primitiva è la larghezza specificata più 1,0, che può comportare una riga o una colonna aggiuntiva di pixel. Man mano che la linea si estende, la sfumatura antialias nella trama diventa più grossolana e più texel completamente opachi vengono replicati intorno al centro. La sfumatura viene codificata nella direzione v della trama e in genere replicata lungo la direzione u. La modalità di indirizzamento delle trame per v è clamp.

Ogni segmento di linea nell'elenco può essere considerato una linea separata che si verifica a partire dal punto finale precedente.

La qualità antialiasing lungo i bordi paralleli alla lunghezza della linea originale subisce una retta più ampia. È previsto che le larghezze di linea superiori a 32,0 inizieranno a presentare artefatti lungo questi bordi.

D3DX