Hoe werkt een 3D grafische kaart - Deel 2

Inhoudsopgave
  1. 1. De pixel rendering engine
  2. 2. Shading
  3. 3. Texture Mapping
  4. 4. Texture Filtering
  5. 5. Atmosferische Effecten
  6. 6. Z-Bufering
  7. 7. Verdere 3D Effecten
  8. 8. Verdere 3D Effecten (vervolg)
  9. 9. De AGP Interface
  10. 10. De Software Aansturing

Z-Bufering

Er is nog een punt waar we in de pixel rendering engine expliciet rekening moeten houden. In het vorige artikel heb ik er al kort over gesproken: de Z-buffer. De Z-buffer houdt voor iedere pixel bij hoe ver deze zich bevindt ten opzichte van de kijker. Dat deze Z-buffer noodzakelijk is zien we in het volgende voorbeeld.

Zoals we in het vorige artikel hebben kunnen zien, zorgen de eerste stappen van het 3D rendering proces ervoor dat verschillende 3D objecten op volgorde van afstand tot de gebruiker worden verwerkt. Objecten die het verst weg zijn worden het eerst gerenderd en objecten die dichterbij zijn worden daarna over de verdere objecten heen geplaatst. Dit Z-sorting systeem voldoet indien er geen objecten zijn die in elkaar overgaan. Zodra dit gebeurt moet er per pixel bijgehouden worden wat de diepte is. Deze informatie wordt dus, zoals al gezegd, opgeslagen in de zogenaamde Z-buffer. Als er nu op de plaats van een bestaande pixel een nieuwe pixel moet worden getekend, wordt deze alleen verwerkt als hij zich dichterbij bevindt dan de bestaande pixel. In de figuren 13 en 14 is het resultaat duidelijk te zien. In figuur 13 zien we drie cilinders waarbij alleen van Z-sorting gebruik is gemaakt. Het resultaat is dat deze cilinders "op elkaar" liggen. In figuur 14 is de Z-buffer ingeschakeld, die het mogelijk maakt dat deze cilinders in elkaar overgaan.

Figuur 13 - Cilinderkruis zonder Z-Buffering Figuur 14 - Cilinderkruis met Z-Buffering

In het vorige artikel hebben we al gezien dat de Z-buffer een behoorlijk brok geheugen vereist. Echter hoe groter deze Z-buffer hoe minder 'dieptefouten' er worden gemaakt.

Advertentie
0