Beta 1


Title Real-time Ray Tracing på et SMP Multiprocessor system
Author Berthelsen, Tobias Korning
Supervisor Dammann, Bernd (Scientific Computing, Informatics and Mathematical Modelling, Technical University of Denmark, DTU, DK-2800 Kgs. Lyngby, Denmark)
Bærentzen, Jakob Andreas (Image Analysis and Computer Graphics, Informatics and Mathematical Modelling, Technical University of Denmark, DTU, DK-2800 Kgs. Lyngby, Denmark)
Institution Technical University of Denmark, DTU, DK-2800 Kgs. Lyngby, Denmark
Thesis level Master's thesis
Year 2006
Abstract Raytracing er en kraftfuld teknik til rendering af billeder med høj realisme, der på mange måder er traditionel (hardware) trekantsrasterisering overlejen. Raytracere har dog den svaghed at de stiller høje krav om rå computerkraft. Denne svaghed har betydet at valget så godt som altid falder på rasterisering, når der skal genereres billeder i real-time. Ved rasterisering må de fleste effekter, som får et billede til at se realistisk ud, designes kunstigt, hvorimod raytraceren, så at sige, tilbyder disse effekter direkte (som en naturlig del af raytraceralgoritmen). Ved brug af en tilstrækkeligt god raytracer vil der således kun være behov for design af selve scenen, der skal renderes, i form af specifikationer for objekter, overfladematerialer og lyskilder. Resten (skygger, refleksioner, transmissioner m.m.) vil blive givet som et naturligt resultat af raytracer algoritmen. Det vil således ikke længere være nødvendigt at bruge mandetimer på kunstigt at designe disse effekter. Dette projekt handler om hvordan raytracing kan effektiveres, så det bliver muligt at navigere rundt i en 3D scene i real-time. Det essentielle i denne rapport er således de teknikker, der muliggør real-time navigation ved brug parallelisering samt en effektiv datastruktur og gradvist forbedret billedkvalitet (ved rendering af et gradvist forfinet grid og brug af interpolation). Projektet har resulteret i parallelisering af en forholdsvis simpel raytracer der kan indlæse scener fra wavefront filer. Der er udviklet to løsninger for parallelisering af raytraceren. En løsning der gør brug af OpenMP til at simplificere parallelisering, samt en mere kompleks løsning der benytter POSIX threads. Begge løsninger kan rendere scener bestående af omkring 450.000 trekanter (renderingstiden skalerer logaritmisk i forhold til antallet af trekanter) på 512x512 pixels på ca. 1 sekund. POSIX threads løsningen viser sig dog overlegen, da den løbende leverer outputs i form af interpolerede billeder, der gør det muligt at navigere kameraet rundt i scenen i real-time.
Series IMM-Thesis-2006-93
Fulltext
Original PDF imm4905.pdf (2.70 MB)
Admin Creation date: 2007-06-11    Update date: 2007-09-20    Source: dtu    ID: 200687    Original MXD