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