Hoe werkt een 3D grafische kaart? (2003) – Deel 2

0 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. Stap 3: de laatste transformatie
  3. 3. Stap 4: Opruiming
  4. 4. Stap 5: triangle setup en rasterization
  5. 5. Stap 6: Pixel shading...
  6. 6. Stap 6: … texturing...
  7. 7. Stap 6: … en filtering
  8. 0 reacties

Inleiding

In het vorige deel van deze serie zijn we begonnen met een uitgebreide uiteenzetting van de interne werking van moderne 3D-videokaarten. In het eerste artikel behandelden we de geschiedenis en werking van de videokaart, de opbouw van 3D-beelden en het begin van wat we de 3D graphics pipeline noemen. In dit artikel gaan we na een kleine herhaling verder waar we de vorige keer ophielden. Uiteraard komen ook hier, waar van toepassing, geschiedenis en achtergronden van 3D-beeld op de computer aan bod.

Videokaarten hebben sinds hun introductie in 1984 een grote evolutie doorgemaakt. Vanaf het moment dat 3D-functionaliteit in beeld kwam kunnen we zelfs spreken over een continue revolutie. Om inzicht te geven in de huidige stand van zaken zijn we begonnen met het bespreken van de relatief eenvoudige 3D grafische pipeline zoals die gespecificeerd is in Microsoft’s 3D-API DirectX 7. In een volgend artikel gaan we in op de meest recente ontwikkelingen op het gebied van de programmeerbare pixel en vertex shaders van DirectX 8 en 9.

De genoemde pipeline is het in stappen onderverdeelde proces dat begint met instructies van een programma aan de processor en eindigt met de weergave van een realistisch 3D-beeld op de monitor. De processor creëert op basis van de instructies de virtuele 3D-wereld, met alle objecten die hiervan onderdeel uitmaken, evenals het camerastandpunt. Vervolgens berekent de processor de scène, ofwel welke elementen op welke manier op het scherm moeten worden weergegeven. Deze informatie wordt in de vorm van een grote hoeveelheid coördinaten doorgegeven aan de videokaart.

De videokaart voert met deze coördinaten een matrixberekening uit om de coördinaten van de 3D-scène te transformeren naar het perspectief dat benodigd is voor het uiteindelijke schermbeeld. Hierna zorgt de GPU ervoor dat de hoekpunten van het ontstane beeld belicht worden volgens de informatie die met ieder hoekpunt (ofwel vertex) is meegestuurd. Deze stap heet transformation and lighting ofwel T&L.

We eindigden het vorige artikel met een 3D-wereld die was voorzien van belichting. Wat gebeurt er hierna? Met de getransformeerde en belichte vertices worden polygonen gevormd, die vervolgens worden omgerekend naar pixels (beeldpunten) die op het scherm vertoond kunnen worden. Deze stappen heten triangle setup en rasterization. Vervolgens worden de 3D-modellen ‘gevuld’, een proces dat shading heet. In dezelfde stap worden ook texturen ofwel afbeeldingen op de 3D-modellen ‘geplakt’ waardoor deze een aanmerkelijk realistischer uiterlijk krijgen: dit noemen we texturing. Ten slotte wordt een aantal bewerkingen uitgevoerd om het beeld te optimaliseren, zoals filtering en full scene anti-aliasing. Het laatste onderdeel van de pipeline is de vertoning op het scherm. Al deze stappen ter voltooiing van het 3D-beeld komen in dit deel van het verhaal uitgebreid aan bod. Voor het complete overzicht van de pipeline verwijzen we naar figuur 1.

 
Figuur 1: de DirectX 7 pipeline.

0
*