Computer grafica 3D: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 5:
===Modelli 3D===
Oggetti tridimensionali semplici possono essere rappresentati con equazioni operanti su un [[sistema di riferimento|sistema di riferimento cartesiano tridimensionale]]: per esempio, l'equazione
Anche questa tecnica non risulta però sufficiente a descrivere con equazioni semplici una gran quantità di oggetti, per cui non è di utilizzo comune. Per modellare superfici curve in modo arbitrario si possono usare le ''patch'', ovvero l'estensione delle ''[[spline]]'', che approssimano curve continue, alle tre dimensioni. Le ''patch'' più comunemente usate sono in pratica basate su ''spline'' [[NURBS]].
Riga 47:
Dato che le ''texture'' non possono rispecchiare l'illuminazione della scena, ma solo il colore del modello, per "perturbare" le normali ai poligoni si usa il ''[[bump mapping]]''. Questo fa uso di immagini che contengono, anzichè un colore, un valore usato per modificare la normale al poligono nel punto corrispondente, e modificare così la forma della superficie. Questa tecnica aggiunge "ruvidità" alle superfici con grande risparmio di poligoni.
Il ''[[normal mapping]]'' è una tecnica che sostituisce invece di perturbare la normale alla superficie: una ''normal map'' è un'immagine a 3 canali in cui ogni pixel rappresenta un vettore 3D, ovvero la normale al punto stesso.
L'obiettivo di ogni algoritmo di ''shading'' è determinare il colore risultante di uno specifico punto sulla superficie di un oggetto. Gli ''[[shader]]'' programmabili offrono grande versatilità in questo, basandosi su [[linguaggio di programmazione|linguaggi di programmazione]] specifici detti "linguaggi di ''shading''". Questi linguaggi vengono sviluppati per applicazioni specifiche nella computer grafica, e includono [[algebra lineare]] e caratteristiche mirate alle problematiche di illuminazione. Gli ''shader'' possono includere qualsiasi tecnica di illuminazione, ''texture mapping'' e manipolazione geometrica. Uno "''shader'' procedurale" determina il colore risultante in maniera completamente algoritmica: possono così risultare convincenti senza bisogno di grandi ''texture''.
Formano una classe a se stante i "''vertex shader''" e i "''pixel shader''", designati appositamente per funzionare insieme ad algoritmi ''scanline'' e per girare su una [[GPU]]. Mentre in precedenza ogni ''hardware'' grafico implementava una specifica ''[[pipeline]]'' che costringeva l'utilizzatore ad usare esclusivamente il modello di illuminazione per cui era programmato l'hardware, con questa categoria di ''shader'' ogni momento del ''rendering'' è sotto il controllo dello sviluppatore.
[[Categoria:Grafica]]
|