Z-buffer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Collegamenti esterni: Aggiunto il template "Portale"
Etichette: Modifica da mobile Modifica da applicazione mobile Modifica da applicazione Android
 
(6 versioni intermedie di 5 utenti non mostrate)
Riga 1:
[[ImmagineFile:Z-buffer.jpg|thumb|L'immagine complessiva e la sua rappresentazione nello Zz-buffer, in cui sono memorizzate solo le distanze]]
 
Nella [[grafica computerizzata]] tridimensionale, lo '''z-buffering''' è una tecnica di gestione della coordinata corrispondente alla profondità di un oggetto a livello di singolo pixel, ovvero della massima risoluzione possibile. Solitamente viene realizzata dall'[[hardware]], ovvero dalla [[scheda grafica]], che deve essere dotata di un'apposita area di [[memoria (informatica)|memoria]] detta '''z-buffer'''; tuttavia, può avere all'occorrenza anche un'implementazione totalmente [[software]].
 
Lo z-buffering è una delle strategie possibili per risolvere il [[problema della visibilità]] nel [[rendering tridimensionale]], ovvero per stabilire quali parti degli oggetti sulla scena siano visibili e quali siano invece nascoste da altri elementi in primo piano. Nonostante sia una tecnica piuttosto semplice (e lenta), è tuttavia sfruttata nella maggior parte dei motori grafici 3D commerciali.
Riga 8:
Un'altra tecnica molto usata, per quanto meno efficiente, è l'[[algoritmo del pittore]].
 
== Descrizione ==
Quando un oggetto viene renderizzato da una [[scheda grafica 3D]], la profondità dei [[pixel]] che lo rappresentano (la "coordinata z") viene memorizzata nello z-buffer. Questo [[buffer]] è solitamente strutturato come una [[matrice]] bidimensionale, con un elemento per ogni pixel dello schermo. Se un altro oggetto deve essere visualizzato nello stesso punto, la scheda grafica confronta le profondità dei due oggetti sovrapposti; se il nuovo oggetto è più vicino all'osservatore, i valori corrispondenti per il pixel sostituiscono quelli precedenti, e la cella corrispondente dello z-buffer viene anch'essa aggiornata con la nuova profondità.
 
La granularità dello z-buffer influisce fortemente sulla qualità dell'immagine; uno z-buffer a [[8 bit|8]] o [[16 bit]] può creare sgradevoli [[artefatto (segnale)|artefatti]] (detti informalmente "lotta per lo z-buffer") nel caso di due oggetti molto vicini. Questi artefatti diminuiscono se si portano i bit dello z-buffer a [[24 bit|24]] o [[32 bit]].
 
Inoltre, la precisione nella memorizzazione delle distanze in uno z-buffer non è costante rispetto al valore assoluto di tali distanze. In altre parole, lo z-buffer distingue molto meglio oggetti vicini che oggetti lontani. Sebbene questa sia una scelta voluta nella progettazione delle schede grafiche (essendo in generale preferibile), in alcuni contesti può portare alla comparsa di artefatti visibili nel rendering di oggetti molto lontani (come in certi programmi di [[simulatore di volo|simulazione di volo]]). Una variante dello z-buffering che mantiene una precisione più costante rispetto alla distanza viene chiamata [[w-buffering]].
Riga 19:
L'invenzione dello z-buffer viene generalmente attribuita a [[Edwin Catmull]], sebbene [[Wolfgang Straßer]] avesse descritto un'idea simile nella sua [[tesi di dottorato]], nel [[1974]].
 
==z Z-buffering nelle schede video moderne ==
 
Nelle schede grafiche più moderne, lo z-buffer usa una porzione significativa della [[larghezza di banda]] disponibile per l'accesso alla memoria. Molte tecniche sono state proposte per ridurre l'impatto dello z-buffering sull'uso delle risorse della scheda; per esempio il [[tile based rendering]] e tecniche di [[Compressione dati lossless|compressione senza perdita di informazione]].
 
== Voci correlate ==
* [[Edwin Catmull]], inventore dello z-buffering
* [[Computer grafica 3D]]
* [[Scheda grafica 3D]]
* [[Z-buffer irregolare]]
* [[Z-order]]
* [[W-buffer]]
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
*{{en}}[cita web|http://www.sjbaker.org/steve/omniv/love_your_z_buffer.html |Impara ad amare il tuo z-buffer]|lingua=en}}
*{{en}}[cita web|http://www.sjbaker.org/steve/omniv/alpha_sorting.html |L'alpha-blending e lo Z-buffer]|lingua=en}}
 
{{Portale|informatica}}
==Collegamenti esterni==
*{{en}}[http://www.sjbaker.org/steve/omniv/love_your_z_buffer.html Impara ad amare il tuo z-buffer]
*{{en}}[http://www.sjbaker.org/steve/omniv/alpha_sorting.html L'alpha-blending e lo Z-buffer]
 
[[Categoria:Grafica 3D]]
[[Categoria:Computer grafica]]