01.08.2013 Views

Ray Tracing op GPU en CPU - EDM - UHasselt

Ray Tracing op GPU en CPU - EDM - UHasselt

Ray Tracing op GPU en CPU - EDM - UHasselt

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

namelijk kaart<strong>en</strong> met programmeerbare vertex shaders met static flow control 3<br />

dok<strong>en</strong> <strong>op</strong> (GeForce 3 <strong>en</strong> 4, Radeon 8500). Ook volume texture mapping, shadow<br />

mapping <strong>en</strong> antialiasing werd allemaal mogelijk door de hardware. Er is natuurlijk<br />

niet <strong>en</strong>kel extra functionaliteit toegevoegd <strong>op</strong> de grafische kaart, maar ook<br />

<strong>op</strong>timalisaties (zoals Z-culling) zijn gerealiseerd.<br />

E<strong>en</strong> jaar later, in 2002, werd<strong>en</strong> de beeldkaart<strong>en</strong> nog meer programmeerbaar.<br />

Eerst <strong>en</strong> vooral kwam<strong>en</strong> er programmeerbare fragm<strong>en</strong>t shaders bij (met static<br />

flow control). Ook niet onbelangrijk is het feit dat vanaf to<strong>en</strong> de vertex shaders<br />

static <strong>en</strong> dynamic flow control ondersteund<strong>en</strong>! MRT 4 deed ook zijn intrede.<br />

De to<strong>en</strong>malige laatste nieuwe 3D-kaart<strong>en</strong> war<strong>en</strong> de GeForce FX, Radeon 9600,<br />

9800, X600 tot X800.<br />

Dynamic branching <strong>op</strong> de fragm<strong>en</strong>t shader werd pas in 2004 e<strong>en</strong> feit. Ondertuss<strong>en</strong><br />

had ook PCIe 5 zijn intrede gedaan, is de GeForce 6 reeks versch<strong>en</strong><strong>en</strong>, is er<br />

64 bit kleur<strong>en</strong> ondersteuning, . . . . Kaart<strong>en</strong> van de GeForce 6 reeks, bezitt<strong>en</strong> tot<br />

16 pixel pipelines <strong>en</strong> 6 vertex <strong>en</strong>gines, die parallel draai<strong>en</strong> <strong>op</strong> e<strong>en</strong> kloksnelheid<br />

van 450 Mhz.<br />

Het is zonder meer duidelijk dat de ontwikkeling van grafische (3D) kaart<strong>en</strong><br />

e<strong>en</strong> <strong>en</strong>orme evolutie heeft gek<strong>en</strong>d in de laatste 10 jaar. De hardware is ondertuss<strong>en</strong><br />

zo algeme<strong>en</strong> programmeerbaar geword<strong>en</strong> dat het zelfs interessant wordt<br />

om deze hardware te “mis”bruik<strong>en</strong> voor totaal andere doeleind<strong>en</strong>, zoals het<br />

<strong>op</strong>loss<strong>en</strong> van stelsels vergelijking<strong>en</strong>, videocompressie, ray tracing, e.a.<br />

3.2 Graphics pipeline<br />

De graphics pipeline is e<strong>en</strong> pipeline 6 waar langs de <strong>en</strong>e kant door de applicatie<br />

e<strong>en</strong> scène beschrijving wordt ingest<strong>op</strong>t, <strong>en</strong> langs de andere kant e<strong>en</strong> ger<strong>en</strong>derd<br />

beeld uit komt. Zoals met e<strong>en</strong> reële pijpleiding, zal de doorvoer volledig afhang<strong>en</strong><br />

van de traagste stage (dunste deel van de buis). Er bestaat e<strong>en</strong> waaier aan<br />

verschill<strong>en</strong>de schematische voorstelling<strong>en</strong> van de graphics pipeline (veel / weinig<br />

detail, wel / niet platformspecifiek, . . . ). Hier is er ge<strong>op</strong>teerd voor e<strong>en</strong> e<strong>en</strong>voudig<br />

model, met als doel de vertex <strong>en</strong> fragm<strong>en</strong>t shaders hierin te kunn<strong>en</strong> plaats<strong>en</strong>.<br />

Beschouw figuur 3.1. Opvall<strong>en</strong>d aan deze voorstelling is dat ze iets te highlevel<br />

is om praktisch nuttig te zijn voor het beoogde doel. Daarom zal stage per<br />

stage meer in detail getred<strong>en</strong> word<strong>en</strong> door telk<strong>en</strong>s e<strong>en</strong> <strong>op</strong>somming te gev<strong>en</strong> van<br />

de zak<strong>en</strong> die plaatsvind<strong>en</strong> in de desbetreff<strong>en</strong>de stage. De laatste stage verzorgt<br />

<strong>en</strong>kel de uiteindelijke uitvoer, dus wordt hieronder niet verder uitgewerkt.<br />

3.2.1 Applicatie<br />

De applicatie stuurt e<strong>en</strong> beschrijving van de scène (geometrie, material<strong>en</strong>, positie,<br />

lichtbronn<strong>en</strong>, . . . ) door naar de grafische kaart. E<strong>en</strong> eerste vorm van softwarematige<br />

geometrie verwerking kan hier reeds plaatsvind<strong>en</strong>. D<strong>en</strong>k hierbij aan<br />

3 verder in de tekst zal duidelijk word<strong>en</strong> wat hiermee bedoeld wordt<br />

4 Multiple R<strong>en</strong>der Target: dit maakt het mogelijk om meerdere waard<strong>en</strong> terug te gev<strong>en</strong> na<br />

het uitvoer<strong>en</strong> van e<strong>en</strong> fragm<strong>en</strong>t shader<br />

5 Peripheral Compon<strong>en</strong>t Interconnect Express<br />

6 reeks aan elkaar geslot<strong>en</strong> gegev<strong>en</strong>sverwerk<strong>en</strong>de elem<strong>en</strong>t<strong>en</strong> (dikwijls in parallel uitvoerbaar),<br />

waarbij de output van e<strong>en</strong> elem<strong>en</strong>t wordt doorgegev<strong>en</strong> als input voor het volg<strong>en</strong>de<br />

elem<strong>en</strong>t<br />

16

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!