1.3. Arquitectura gràfica


El pipeline gràfic és l’arquitectura gràfica que marca la pauta d'actuació de Directx11. Té parts que no són programables, i en canvi d’altres que si que ho són. Aquestes són les parts més interessants perquè ens permeten canviar la geometria tant com la nostra imaginació desitgi. Tot i així, cal conèixer també les parts no programables i entendre què fan i perquè.

L'entrada del pipeline gràfic és la geometria que es desitgi dibuixar. La sortida és la imatge en pantalla. 
Veiem amb més detall el que passa amb tots aquests punts, vectors i polígons des que entren fins que surten:

1.3.1. Pipeline gràfic

Figura 1. Pipeline gràfic de directX11 corresponent al shader model 5.0.

La figura 1 Mostra el pipeline gràfic actual de Directx11. A continuació s’expliquen amb detall cadascuna de les diferents etapes:
  • Input Assembler: Aquesta etapa del pipeline gràfic no és programable. S’encarrega de carregar les primitives que entren al pipeline. 
  • Vertex Shader: Aquesta etapa del pipeline gràfic és programable. Té la capacitat de realitzar transformacions de vèrtexs i també es poden crear funcions relacionades amb la il·luminació. El capítol dedicat a shaders conté una detallada explicació de les possibilitats d’aquest shader així com exemples. 
  • Hull Shader: Aquesta etapa del pipeline gràfic és programable. S’encarrega d’analitzar els patch’s dels punts de control o vèrtexs. És la primera de les tres etapes de Tessellation, una de les noves característiques de Directx11. El capítol dedicat a shaders conté una detallada explicació de les possibilitats d’aquest shader així com exemples. 
  • Tessellator: Aquesta etapa del pipeline gràfic no és programable. S’encarrega de subdividir un domini de punts de control (4, 3 o simplement una línia) en molts objectes més petits (triangles, punts o línies) a partir de la informació rebuda pel hull Shader. Alhora, s’encarrega de generar la informació necessària i adient pel domain Shader. El capítol dedicat a shaders conté una detallada explicació de les possibilitats d’aquest shader així com exemples. 
  • Domain Shader: Aquesta etapa del pipeline gràfic és programable. S’encarrega  de calcular la posició del vèrtex d’un punt subdividit a l’etapa tessellator. El capítol dedicat a shaders conté una detallada explicació de les possibilitats d’aquest shader així com exemples. 
  • Geometry Shader: Aquesta etapa del pipeline gràfic és programable. Té la capacitat de realitzar transformacions treballant amb primitives senceres. També és capaç de crear nous vèrtexs. El capítol dedicat a shaders conté una detallada explicació de les possibilitats d’aquest shader així com exemples. El capítol dedicat a shaders conté una detallada explicació de les possibilitats d’aquest shader així com exemples.
    • Stream Output: Els càlculs previs poden ser guardats en un buffer de memòria en aquest punt   del pipeline mitjançant aquesta sortida. Aquestes dades poden tornar a entrar al pipeline com a nous inputs.
  • Rasterizer: Aquesta etapa del pipeline gràfic no és programable. Converteix la geometria calculada a píxels.
  • Pixel Shader: Aquesta etapa del pipeline gràfic és programable. Assigna color i profunditat a cada píxel individualment. També pot passar estructures de dades al compute Shader (només a partir de Directx11). El capítol dedicat a shaders conté una detallada explicació de les possibilitats d’aquest shader així com exemples.
    • Data Structure: Estructures de dades de rutines i algoritmes referides a I.A, físiques, processat d’imatges, o càlculs computacionals, sobretot.
    • Compute Shader: Shader programable nou en Directx11 que s’encarrega de la programació d’elements que no tenen a veure amb gràfics tals com les físiques o la intel·ligència artificial, per exemple. És interessant poder ja al pipeline gràfic programar aquests aspectes per agilitzar càlculs i donar més rendiment a l’aplicació.
  • Output Merger: Aquesta etapa del pipeline gràfic no és programable. S’encarrega de produir la imatge final que veurem en pantalla.

No hay comentarios:

Publicar un comentario