- TRIMESH REGOLARE
- valenza 6
- QUAD MESH REGOLARE
- valenza 4
APPROFONDIMENTO INTRO RENDERING
TRUE COLOR
Per immagine true color si intende semplicemente un imagine in RGB codificato con 3 channel da 8 bit ciascuno
ALPHA CHANNEL
Oltre all’RBG, se voglio creare semitrasparenza, uso un altro canale per interpolare l’attributo trasparenza.
Questa interpolazione è chiamata alpha blending
FILL RATE
N° di frammenti renderizzati al secondo
PARAMETRI INTRINSECI PIN HOLE CAMERA
- dimensioni scatola: larghezza, altezza, profodità (Lunghezza focale)
- in realtà contano le proporzioni tra questi numeri non le dimensioni assolute
- posizione del POV
IL PRODOTTO SCALARE
- tra un vettore unitario ed uno generico (consizione importante)
- esprime le proiezione di v lungo il puano del vettore unitario → k
SINTESI TRASFORMAZIONI → vedi schema sul quaderno
Trasformazione di Modellazione (Model Transformation)
Obiettivo:
Portare ogni oggetto dal suo spazio oggetto (object space) allo spazio mondo (world space).
SPAZI
Cos’è lo spazio oggetto:
- Sistema di riferimento locale dell’oggetto (proprio della mesh).
- Ogni oggetto ha il suo spazio oggetto.
- Origine e assi scelti arbitrariamente (es. per un personaggio: origine tra i piedi, Y verso l’alto, Z in avanti).
Cos’è lo spazio mondo:
- Spazio globale della scena che unifica tutti gli oggetti
- Definito arbitrariamente da chi crea la scena (es. il level designer).
CARATTERISTICHE TRASFORMAZIONE
Cosa fa questa trasformazione:
- Posiziona, orienta e scala ciascun oggetto nel mondo.
- Implementata tramite una matrice di modellazione (Model Matrix,
MM).
Costruzione:
- Si ottiene come composizione di trasformazioni affini (rotazioni, traslazioni, scaling).
Utilizzo:
- Più oggetti possono usare la stessa mesh ma con matrici di modellazione diverse (multi-instancing).
- Essenziale in animazioni: basta cambiare la matrice
MMper animare l’oggetto nella scena, senza modificare la mesh.
Trasformazione di Vista (View Transformation)
Obiettivo:
Portare la scena dal mondo allo spazio vista (view space), cioè dal punto di vista della camera.
Cos’è lo spazio vista:
- Sistema di riferimento della camera:
- Origine = punto di vista (POV)
- Asse X = orizzontale camera
- Asse Y = verticale camera
- Asse Z = dal davanti al dietro della camera
Cosa fa questa trasformazione:
- Cambia il sistema di riferimento:
- Da world space a camera space (view space)
- Implementata con la matrice di vista (View Matrix,
MV)
Parametri:
- Determinata dai parametri estrinseci della camera:
- Posizione e orientamento nel mondo
- infatti è costruita a partire da vettori nello spazio mondo
Osservazioni:
- È l’inversa della trasformazione di modellazione dell’oggetto “camera”.
- Fondamentale per passare dal mondo alla vista interna della telecamera virtuale.
Trasformazione di Proiezione (Projection Transformation)
Obiettivo:
Convertire le coordinate dalla spazio vista allo spazio clip (Normalized Device Coordinates, NDC).
Cos’è lo spazio clip (NDC):
- Spazio tridimensionale allineato allo schermo. Adatta il modello renderizzato allo schermo
- Solo i punti tra −1 e +1 in X, Y e Z sono visibili (= “inquadrati”).
- Le primitive fuori o parzialmente fuori da questo intervallo vengono “clippate” o scartate.
Cosa fa questa trasformazione:
- Implementa una proiezione prospettica (o ortografica).
- Applica effetti prospettici: oggetti più vicini sembrano più grandi.
- Implementata dalla matrice di proiezione (Projection Matrix,
MP).
Parametri:
- Dipende dai parametri intrinseci della camera:
- Lunghezza focale
- Tipo di lente (zoom, grandangolo, ecc.)
- Formato dell’immagine (es. 4:3, 16:9)
Composizione delle Matrici
Passaggio | Matrice |
Oggetto → Mondo | MM (Model) |
Mondo → Vista | MV (View) |
Vista → Clip (NDC) | MP (Projection) |
Composizione totale | MP · MV · MM |
Metafora Cinematografica (riassunto efficace)
Fase | Ruolo Cinematografico |
Modellazione | Scenografo – dove piazzo gli oggetti |
Vista | Regista – dove metto la camera |
Proiezione | Direttore della fotografia – tipo di lente e inquadratura |
APPROFONDIMENTO TRASFORMAZIONI MATRICI
- rango matrice → definisce le dimensione del modello a cui applico la matrice
- determinante → indica fattore di scala con cui una trasformazione espande o comprime i volumi.
- matrice affine → ultima riga (0,0,0,1) → quindi modifica i punti
TRASFORAMAZIONE DI PROIEZIONE
Come trasformare la scena dal punto di vista della camera fino allo spazio “visibile” e infine allo schermo.
Due tipi di Proiezione
Tipo | Caratteristiche |
Ortografica | Nessuna prospettiva: oggetti lontani non sembrano più piccoli |
Prospettica | Simula la visione umana: oggetti lontani appaiono più piccoli |
Proiezione Ortografica
CARATTERISTICHE
- Le linee parallele rimangono parallele
- Le dimensioni non dipendono dalla distanza
- Appropriata per:
- mappe
- disegni tecnici
- viste satellitari
MATRICE ORTOGRAFICA
Basta azzerare la coordinata z, cioè proiettare sul piano.
Proiezione Prospettica (più realistica)
Basata sulla della pin-hole camera, che è fatta così:
- Piunt of View → origine (0,0,0)
- Piano immagine davanti a z = −d (d = distanza focale)
Parametri intrinseci della camera e formule
Parametro | Significato |
d | Distanza focale (lente lunga o corta) |
FoV (Field of View) | Ampiezza dell’angolo visivo, in gradi |
h, w | Altezza e larghezza del piano immagine |
Aspect Ratio | Rapporto larghezza/altezza |
- FORMULE DA RICORDARE
- ESEMPIO PRATICO CONVERSIONE + ALTRE FORMULE DA RICORDARE
- la coordinata z, modula la profondita grazie ad A e -1
- - 1 è un processo di ottimizzazione, così quando normalizzo (divisione per z) ho un risultato prospettico coerente sull’asse z e w
- w ≠ 0, quindi ora normalizzo dividendo per w tutta la matrice
- ma questa è una matrice intermedia, poi bisognerà normalizzare
- w = -z pk la trasformazione NON è affine, infatti la quarta riga della matrice è
[0 0 −1 0], invece di[0,0,0,1] - la normalizzazione crea l’effetto prospettico
- la a = aspect ratio è il rapporto larghezza/altezza dello schermo, resX e resY sono delle coordinate
- SOMMARIO: importante saper definire il significato della matrice, spiegata appunto per arrivare fino a qui
- Il view frustum (letteralmente “tronco di piramide”) è il volume 3D che rappresenta la zona visibile dalla camera in una scena 3D.
- è come una scatola tronca a forma di piramide. Le sue pareti si chiamano clipping planes
- I punti fuori dal frustum vengono scartati (clipping)
- vedo solo una porzione dello spazio 3D, determinata dalla mia posizione (camera) e dall’apertura (FoV). Tutto il resto è fuori frustum, quindi invisibile
- left/right clipping plane
- top/bottom clipping plane
- zNear/zFar
MATRICE DI PARTENZA E DESCRIZIONE COMPLETA
PRODOTTO
ANALISI
NORMALIZZAZIONE
MATRICE FINALE
Manca un dettaglio nella matrice di trasformazione, prima di normalizzare
NELL’ESEMPIO DI SOPRA HAI MAPPATO NON LO SPAZIO VISTA NELLA SUA INTEREZZA BENSì il View Frustum (cono visivo)
DESCRIZIONE VIEW FRUSTUM
È la zona visibile della scena, cioè quella dentro:
TRASFORMAZIONE EXTRA → trasformazione di viewport (prima di questa trasformazione avviene rasterizzazione e lightning)
Dallo Spazio Clip allo Spazio Schermo (Screen Space)
- Lo spazio clip ha coordinate da −1 a +1 per tutte e 3 le coordinate
- quete coordinate sono dette normalized device coordinates
- Lo viewport è la finestra dello schermo in cui si disegna:
- 0,0 = pixel in basso a sinistra
- x: da 0 a larghezza massima (dipende dallo schermo e si misura in numero di pixel in larghezza)
- y: da 0 a altezza massima
- z: profondità (depth) ∈ [0,1]
CORREZIONE ASPECT RATIO
- il clip space è sempre 1:1
- il viewport può essere 16:9, 4:3, ecc. quinfi nn c’è corrispondenza esatta
Se lo schermo non è quadrato devo correggere la proiezione inserendo uno scaling inverso nella matrice
ulteime considerazioni
COORDINAETE OMOGENEE
Usate per:
- rappresentare punti: (x, y, z, w ≠ 0)
- rappresentare vettori: (x, y, z, 0)
✅ La divisione per
w alla fine dà le coordinate realiCONCLUSIONI
La trasformazione di proiezione:
- converte da spazio 3D (vista) → spazio clip (NDC)
- applica l’effetto prospettico via matrice
- mantiene la Z per la profondità
- viene seguita dalla trasformazione di viewportì che porta tutto sullo schermo
Cos’è il fragment shader? → lighting
Il fragment shader è una parte di codice eseguita dalla GPU che lavora su ogni frammento (cioè, ogni “quasi-pixel” prima che diventi un pixel reale sullo schermo).
🔬 Serve a calcolare il colore finale di ogni punto dell'immagine.
Cos’è lo zFar?
zFar (o "far clipping plane") è un parametro della camera in grafica 3D.
Serve a dire:
🔊 “Oltre questa distanza, non voglio più disegnare niente.”