Real time → grafica di un videogioco praticamente. Non cut scenes ma game engine diciamo.

Parto da una descrizione di una scena, ovvero che cosa voglio andare a vedere e per arrivare all’immagine generata ho diversi tipi di renderer:

Noi lavoreremo con le mesh, vertici e coordinati spaziali. Le gpu moderne digeriscono punto, linea e triangolo come poligoni.

Rusterizzazione → descretizzazione di ciò che è espresso in maniera analitica.

Modello di illuminazione mi da la grafica migliore.

Settori che vanno in computer graphics:

Giochi non ne faremo, ma non facciamo nemmeno i game engine, ma perché vogliamo andare oltre quello: come sono fatti i game engine.

Disegnare qualcosa usando la pipeline moderna, vuol dire partire dall’inizio.

Step importanti nella computazione:

  1. Vertex specification
  2. vertex shader: programma in esecuzione nella nostra gpu. che cosa fa un vertex shader? Quello che ci pare, è un programma arbitrario. Il vertex shader si usa spesso per andare a fare trasformazioni geometriche delle nostre mesh.
  3. tessellation: raramente supportato in mobile/embedded
  4. geometry shader
  5. vertex post processing: ho dei vertici che sono fuori dal view port e non è normale da rimediare, lo devo sapere, non devo farlo andare oltre la pipeline.
  6. primitive assembly: assemblaggio delle primitive e decido di applicare trace culling. In questo caso pensiamo di dover andare scartare elementi che non ci interessa andare a renderizzare. Culling in tal senso vuole dire infatti scartare.
  7. rasterization:
  8. fragment shader: quasi sinonimo di pixel in cui gestisco tutti quanti i modelli di luce