Z-buffer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Addbot (discussione | contributi)
m migrazione di 16 interwiki links su Wikidata - d:q135743
Nessun oggetto della modifica
Riga 11:
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|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]].