Z-buffer

Z-buffer
Contenu d'un Z-Buffer

En infographie, le Z-buffer ou tampon de profondeur est une méthode employée dans le cadre de l'affichage d'une scène 3D. Le Z-Buffer permet de gérer le problème de la visibilité qui consiste à déterminer quels éléments de la scène doivent être rendus, lesquels sont cachés par d'autres et dans quel ordre l'affichage des primitives doit se faire.

Il est principalement utilisé par l'accélération matérielle de la 3D, mais l'est aussi dans beaucoup de moteurs 3D logiciels. L'algorithme du peintre est une autre solution pour résoudre en partie le problème de visibilité.

Lorsqu'un objet est dessiné par une carte accélératrice 3D, la profondeur d'un pixel (coordonnée Z) est stockée dans un tampon (en anglais 'buffer', d'où Z-buffer). Ce tampon est en général un tableau à deux dimensions (X et Y), chaque élément étant un pixel à l'écran. Si un autre élément de la scène doit être affiché aux mêmes coordonnées (X,Y), la carte compare les deux profondeurs (Z), et n'affiche que le pixel le plus proche de la caméra. La valeur Z de ce pixel est ensuite placée dans le tampon de profondeur, remplaçant donc l'ancienne. Au final, l'image dessinée reproduit la perception de la profondeur habituelle et logique, l'objet le plus proche cachant les plus lointains.

La granularité du tampon de profondeur joue un rôle important sur la qualité de la scène. Un tampon avec des valeurs codées sur 16 bits peut engendrer des artefacts graphiques (appelés Z-buffer fighting, combat de Z-buffer) quand deux objets sont très proches l'un de l'autre (seules 65536 profondeurs distinctes sont possibles). Un Z-buffer de 32 bits agit plus correctement. Les Z-buffers de 8 bits ne sont quasiment jamais utilisés en raison de leur trop faible précision.

Habituellement, la précision du Z-buffer n'est pas linéaire suivant le point, proche ou lointain. Les valeurs proches sont plus précises (de façon à afficher les objets proches plus finement) que les valeurs lointaines (moins importantes visuellement). En général c'est le comportement voulu, mais cela peut amener des artefacts visuels au fond de la scène. Une variation de la technique du Z-buffer règle ce probleme, elle s'appelle le W-buffer.

Au début de l'affichage d'une nouvelle scène, le Z-buffer doit être initialisé avec une valeur prédéfinie qui représente la profondeur maximale, en général zéro.

Sur les cartes graphiques des années 1999-2005, la gestion du Z-buffer utilise une quantité non négligeable de la bande passante mémoire. Plusieurs méthodes ont été employées pour réduire cet impact, comme la compression sans perte (la compression et la décompression par le processeur sont moins coûteuses que la bande passante graphique) ou l'effacement ultrarapide par le matériel lui-même, qui rendent donc obsolète la technique du "une fois positif, une fois négatif" (qui permettait d'éviter l'effacement en gérant des nombres signés).

Mathématiques

La plage des valeurs de profondeur dans le volume de la camera ('camera space') à dessiner est souvent définie entre near (valeur minimale), et far (valeur au loin). Après la transformation de projection, la nouvelle valeur de z, ou z', est définie par:

z'=
\frac{\mathit{far}+\mathit{near}}{\mathit{far}-\mathit{near}} +
\frac{1}{z} \left(\frac{-2 \cdot \mathit{far} \cdot \mathit{near}}{\mathit{far}-\mathit{near}}\right)

z' est l'ancienne valeur de z, et est parfois appelé w ou w'.

Les valeurs résultantes de z' sont normalisées entre -1 et 1, où le plan near est -1, et le plan far a 1. Les valeurs en dehors de cette plage ne sont pas dans le volume vision, et ne doivent pas être dessinées.

Pour implémenter un z-buffer, les valeurs de z' sont interpolées linéairement sur la surface de l'écran entre les valeurs z des points du polygone courant.

Autres utilisations

Le Z-Buffer peut être utilisé pour d'autres effets graphiques comme par exemple des effets de flou dont l'intensité varie en fonction de la profondeur (pour simuler la profondeur de champ). La connaissance de la profondeur de chaque pixel permet aussi d'implémenter un effet de brouillard avec une densité maximale lorsque le pixel est éloigné.

Voir aussi


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Z-buffer de Wikipédia en français (auteurs)

Игры ⚽ Нужна курсовая?

Regardez d'autres dictionnaires:

  • Buffer overflow protection — refers to various techniques used during software development to enhance the security of executable programs by detecting buffer overflows on stack allocated variables as they occur and preventing them from becoming serious security… …   Wikipedia

  • Buffer — can refer to: * Buffer state, a country lying between two potentially hostile greater powers, thought to prevent conflict between them * Buffer zone, any area that keeps two or more other areas distant from one another, may be demilitarized *… …   Wikipedia

  • Buffer — Buffer, Stoßballen (buffing apparatus, buffers; appareils de choc, tampons; respingenti, paraurti). B. sind an den Stirnseiten der Eisenbahnfahrzeuge angebrachte Konstruktionsteile, die den Zweck haben, die auf die Fahrzeuge nach deren… …   Enzyklopädie des Eisenbahnwesens

  • Buffer triestado — Saltar a navegación, búsqueda En electrónica digital, la lógica triestado permite puertos de salida con valor 0,1 ò Hi Z (High Impedance).Es este último estado el que proporciona los buffer triestado. El estado Hi Z pone la salida en alta… …   Wikipedia Español

  • buffer — buff‧er [ˈbʌfə ǁ ər] noun [countable] 1. COMPUTING a place in a computer s memory for storing information temporarily: • Any data still in the file buffer is written to the file before the file is closed. 2. something that protects something from …   Financial and business terms

  • Buffer Zone, Karachi — Buffer Zone is one of the neighbourhoods of North Nazimabad Town in Karachi, Sindh, Pakistan. [ [http://www.karachicity.gov.pk/town/index.asp?txtTown=N.Nazimabad North Nazimabad Town Government of Karachi] ] There are several ethnic groups… …   Wikipedia

  • Buffer — Saltar a navegación, búsqueda El termino buffer puede referirse: En informática, un buffer de datos es una ubicación de la memoria en una computadora o en un instrumento digital reservada para el almacenamiento temporal de información digital,… …   Wikipedia Español

  • Buffer (navy) — Buffer is the colloquial title for the senior seaman sailor in a Commonwealth of Nations Navy ship. The formal title is Chief Boatswain s Mate.This person is typically a Chief Petty Officer in frigates or destroyers, and in larger ships may be a… …   Wikipedia

  • Buffer Credits — werden auch buffer to buffer credits genannt. Sie gewährleisten die Kommunikation in einem Fibre Channel Storage Area Network (SAN), insbesondere bei großen Distanzen zwischen den Geräten. Da die Signale nicht schneller als Lichtgeschwindigkeit… …   Deutsch Wikipedia

  • buffer stock — ➔ stock1 * * *    Stock of commodities held by an international organization that will aim to stabilize prices and supplies by buying and selling from its stockpile. * * * buffer stock UK US noun [C or U] ► ECONOMICS, FINANCE a large supply of a… …   Financial and business terms

  • Buffer credits — Buffer credits, also called buffer to buffer credits (BBC) are used as a flow control method by Fibre Channel technology and represent the number of frames a port can store. Each time a port transmits a frame that port s BB Credit is decremented… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”