Computer grafica 3D: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
Riga 1:
[[File:Raytraced_image_of_several_glass_objects.png|thumb|Immagine generata con la computer grafica 3D]]
La '''computer grafica [[3D]]''' è un ramo della [[computer grafica]] che si basa sull'[[elaborazione]] di un insieme di modelli tridimensionali tramite algoritmi atti a produrre una verosimiglianza fotografica e ottica nell'immagine finale. Essa viene utilizzata nella creazione e postproduzione di opere o parti di opere per il [[cinema]] o la [[televisione]], nei [[videogioco|videogiochi]], nell'[[architettura]], nell'[[ingegneria]] ([[CAD]]), nell'[[arte]] e in svariati ambiti scientifici, dove la produzione di contenuti con altri mezzi non è possibile o non conveniente.
== Aspetti teorici ==
Schematicamente, il metodo di produzione della computer grafica 3D è composto da due elementi: una descrizione di ciò che si intende visualizzare (scena), composta di rappresentazioni matematiche di oggetti tridimensionali, detti "modelli", e un meccanismo di produzione di un'immagine 2D dalla scena, detto "motore di rendering" che si fa carico di tutti i calcoli necessari per la sua creazione, attraverso l'uso di algoritmi che simulano il comportamento della luce e le proprietà ottiche e fisiche degli oggetti e dei materiali.
=== Modelli [[3D]] ===
[[File:Wasp11.jpg|thumb|Modello 3D di una vespa]]
Oggetti tridimensionali semplici possono essere rappresentati con equazioni operanti su un [[sistema di riferimento|sistema di riferimento cartesiano tridimensionale]]: per esempio, l'equazione x²+y²+z²=r² è perfetta per una sfera di raggio ''r''. Anche se equazioni così semplici possono sembrare limitative, l'insieme degli oggetti realizzabili viene ampliato con una tecnica chiamata [[CSG (grafica)|geometria solida costruttiva]] (CSG, ''constructive solid geometry''), la quale combina oggetti solidi (come cubi, sfere, cilindri, ecc.) per formare oggetti più complessi attraverso le [[algebra di Boole|operazioni booleane]] (unione, sottrazione e intersezione): un tubo può ad esempio essere rappresentato come la differenza tra due cilindri aventi diametro differente.
Riga 28:
Il ''rendering'' è il processo di produzione dell'immagine finale a partire dal modello matematico del soggetto (scena). Esistono molti algoritmi di ''rendering'', ma tutti implicano la [[proiezione (geometria)|proiezione]] dei modelli 3D su una superficie 2D.
Gli algoritmi di ''rendering'' si dividono in due categorie: ''[[scanline rendering|scanline renderers]]'' e ''[[ray tracing|ray tracers]]''. I primi operano oggetto per oggetto, disegnando direttamente su schermo ogni poligono
Una delle funzioni principali di un ''renderer'' è la determinazione della [[superficie nascosta]]. Il ''ray tracing'' svolge implicitamente questa funzione, determinando il colore di un [[pixel]] in base all'intersezione del raggio visuale col primo oggetto, ma per l'altro tipo di algoritmi servono tecniche più avanzate per determinare quale poligono sia il più vicino al punto di vista. Il metodo più semplice è quello di disegnare i poligoni a partire da quelli più lontani, in modo che quelli più vicini li sovrascrivano; ma questa tecnica, detta ''painter's algorithm'', "[[algoritmo del pittore]]", si rivela inefficace con poligoni sovrapposti. Per risolvere questo problema fu sviluppato lo [[z-buffer]]ing, che impiega un [[buffer]] per conservare la coordinata ''z'' relativa ad ogni pixel elaborato: se la profondità del poligono che sta per essere elaborato per il pixel è minore di quello in memoria, il pixel viene riscritto; altrimenti l'algoritmo passa al pixel successivo.
|