Diplomarbeit Interaktives Raytracing Auf Hochleistungsrechnern
Total Page:16
File Type:pdf, Size:1020Kb
TECHNISCHE UNIVERSITÄT DRESDEN FAKULTÄT INFORMATIK INSTITUT FÜR SOFTWARE- UND MULTIMEDIATECHNIK PROFESSUR FÜR COMPUTERGRAPHIK UND VISUALISIERUNG PROF.DR.STEFAN GUMHOLD Diplomarbeit zur Erlangung des akademischen Grades Diplom-Informatiker Interaktives Raytracing auf Hochleistungsrechnern Daniel Grafe (Geboren am 16. August 1980 in Ostercappeln) Betreuer: Prof. Dr. Stefan Gumhold, Dr. Matthias Müller Dresden, 11. November 2007 Aufgabenstellung Das Raytracing Verfahren erlaubt es, realistisch beleuchtete Szenen darzustellen. Dabei können harte und weiche Schatten, spiegelnde Reflektionen und Brechung an transparenten Oberflächen wiederge- geben werden. Außerdem lönnen beliebige Reflektionseigenschaften definiert werden. Das Raytracing- Verfahren eignet sich ausgesprochen gut für eine parallele Berechnung. In der Diplomarbeit soll ein paralleler Raytracer entwickelt und in eine interaktive Anwendung integriert werden. Im Einzelnen sind folgende Teilaufgaben zu lösen: • Literaturrecherche über bestehende Parallelisierungen des Raytracing Verfahrens • Entwicklung eines neuen oder Modifikation eines existierenden Raytracing Ansatzes für das par- allele Berechnen von Bildern. Es sollen Szenengraphen mit den üblichen Grundprimitiven, Trans- formationsknoten, Materialeigenschaften und Lichtquellen unterstützt werden. • Erstellung oder Import von Beispielszenen mit unterschiedlichen Kompexitätsmerkmalen • Entwicklung einer Applikation, die das Durchwandern einer Szene vor der Powerwall des Lehr- stuhls CGV mit stereoskopischer Projektion erlaubt. Für die interaktive Bildgenerierung soll der parallelisierten Raytracingansatz verwendet werden. • Optimierung des Datenverkehrs zwischen Hochleistungsrechner und Darstellungsrechner. • Untersuchung von Vorhersagestrategien für die Verminderung von Latenzzeiten. • Analyse und Bewertung des implementierten Ansatzes Selbstständigkeitserklärung Hiermit erkläre ich, dass ich die von mir am heutigen Tag dem Prüfungsausschuss der Fakultät Informa- tik eingereichte Diplomarbeit zum Thema: Interaktives Raytracing auf Hochleistungsrechnern vollkommen selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel be- nutzt sowie Zitate kenntlich gemacht habe. Dresden, den 11. November 2007 Daniel Grafe 1 Inhaltsverzeichnis 1 Einleitung 3 1.1 Motivation und Zielsetzung . 3 1.2 Gliederung . 3 2 Bisherige Arbeiten und Schwerpunkte 5 2.1 Ausdrücklich interaktiv . 5 2.2 Nicht ausdrücklich interaktiv . 6 2.3 Zusammenfassung . 8 3 Eingesetzte Hardware und Bedingungen 9 3.1 Die Powerwall . 9 3.2 Rechentechnik und Kommunikation . 9 3.2.1 SGI Altix 4700 . 10 3.2.2 Linux Networx PC-Farm Deimos . 10 3.2.3 Kommunikation auf dem Großrechner . 11 3.2.4 Kommunikation zwischen Großrechner und Anzeige . 11 3.3 Der Anzeigerechner . 12 4 Das Bilderzeugungsverfahren “Ray Tracing” 13 4.1 Überblick über das Verfahren . 13 4.2 Abschätzung des Berechnungsaufwandes . 14 4.3 Parallelisierungsansatz . 15 5 Entwurf 16 6 Implementierung als Bibliothek 18 6.1 Repräsentation der Szene und Realisierung der Rekursion . 18 6.2 Schnittberechnungen . 19 6.2.1 Quadrics . 19 2 6.2.2 Dreicksschnitt . 22 6.2.3 Schnitt mit Dreicksnetzen . 24 6.2.4 Boxschnitt . 25 6.3 Kameras . 26 6.3.1 Perspektivische Kamera . 26 6.3.2 Stereoskopische Kamera . 27 6.4 Lichtquellen . 28 6.4.1 Point Light . 29 6.4.2 Spot Light . 29 6.4.3 Sharp Spot Light . 29 6.4.4 Area Light . 30 6.5 Beleuchtung . 30 6.5.1 Lokale Beleuchtung . 30 6.5.2 Reflexion und Transmission . 32 6.6 Hüllvolumen . 35 6.7 Zusammenfassung und Bewertung . 37 7 Parallelisierung auf den Rechnern des ZIH 43 7.1 Entwicklung auf dem CPU-Set “Neptun” der Altix . 44 7.2 Vergleichsmessungen auf der Altix und der PC-Farm . 51 7.2.1 Messung auf der Altix . 52 7.2.2 Messung auf der PC-Farm “Deimos” . 55 7.3 Zusammenfassung und Bewertung . 58 8 Darstellung auf der Powerwall 59 8.1 Bildausgabe mit OpenGL . 59 8.2 Nutzerinteraktion . 60 8.3 Bandbreite und Latenz . 60 8.4 Szenenorganisation . 61 8.5 Messung und Bewertung des Gesamtsystems . 62 9 Zusammenfassung und Bewertung 67 Literaturverzeichnis 70 A Screenshots 75 1. EINLEITUNG 3 1 Einleitung 1.1 Motivation und Zielsetzung Das Bilderzeugungsverfahren “Ray Tracing” steht im Allgemeinen für hochqualitative, realistisch wir- kende Einzelbilder. Dieser Eindruck wird durch die Möglichkeiten des Verfahrens erreicht, Szenen rea- listisch zu beleuchten und optische Effekte wie Brechung und Reflexion zu modellieren. Die Simulation von Schatten verleiht den Szenen einen erhöhten Eindruck von Tiefe und Räumlichkeit. Einen Eindruck von den Möglichkeiten des Verfahrens kann man beispielsweise bei der “Internet Ray Tracing Compe- tition” [irt] bekommen, wo monatlich die optisch eindrucksvollsten, mit Ray Tracing erzeugten Bilder ausgezeichnet wurden. Die Darstellungsqualität der Bilder wird allerdings durch einen großen Berech- nungsaufwand erkauft. Die Berechnungszeiten der einzelnen Bilder können je nach Komplexität im Be- reich von Stunden bis Tagen liegen, und Szenen mit solch einem Realismus eignen sich somit nicht für interaktive Anwendungen. Das Verfahren lässt sich aufgrund seiner Berechnungsart allerdings sehr gut parallelisieren. Im April 2007, und somit kurz vor Beginn dieser Diplomarbeit, wurde am Zentrum für Informationsdienste und Hochleistungsrechnen ein neuer Hochleistungsrechnerkomplex eingeweiht, welcher für einen paralle- lisierten Ray Tracer genutzt werden konnte. Dieser Ray Tracer war im Rahmen der Diplomarbeit als bilderzeugende Komponente eines interaktiven Systems zu entwickeln. Am Lehrstuhl für Computergrafik und Visualisierung wird die Powerwall betrieben, eine großflächi- ge Projektionsleinwand, welche mittels Stereoskopischer Projektion die Wiedergabe von Bildern mit Tiefeneindruck erlaubt. Auf diesem System sollen die auf dem Hochleistungsrechner erzeugten Bilder angezeigt werden, wodurch sich aufgrund der räumlichen Trennung beider Komponenten das Problem eines effizienten Datentransports ergibt. Insgesamt war eine Anwendung zu entwickeln, die mit der Rechenleistung des Hochleistungsrechners ausreichend viele Bilder erzeugt, so dass eine interaktive Durchwanderung von Szenen möglich wurde und mit Tiefeneindruck an der Powerwall angezeigt wird. 1.2 Gliederung Im folgenden Kapitel soll einleitend ein Überblick über bestehende Parallelisierungsansätze des Ray Traycings und deren Ergebnisse gegeben werden. Ohne bisher auf das Bilderzeugungsverfahren einge- gangen zu sein, sollen zunächst die unterschiedlichen Anwendungungen des Bilderzeugungsverfahren, die unterschiedlichen Plattformen und somit auch unterschiedlichen Ansätze vorgestellt werden. Ab- schließend wird die gemeinsame Grundidee alle Ansätze zusammengefasst, welche auch in dieser Arbeit angewendet wurde. Danach wird einzelnd auf die eingesetzte Hardware für Berechnung, Transfer und Darstellung einge- 1. EINLEITUNG 4 gangen, welche für eine interaktive Anwendung kombiniert werden musste. Hier sollen Kenndaten und Eigenschaften vorgestellt werden, die für diese Arbeit relevant waren. Darauffolgend wird das Ray Tracing als Bilderzeugungsverfahren theoretisch vorgestellt und sein ho- her Berechnungsaufwand sowie der allen Implementationen zugrundeliegende Parallelisierungsansatz motiviert. Im Entwurf wird der Implementierungsansatz des Gesamtsystems beleuchtet und die noch groben, aber richtungsweisenden Designentscheidungen erläutert. Im nächsten Kapitel wird konkret beschrieben, wie Ray Tracing implementiert wurde. Dabei als Kern- komponente eine noch völlig unparallelisierte Bibliothek entwickelt und die Theorie und Designent- scheidungen vorgestellt. Abschließend soll in diesem Kapitel die Bibliothek völlig unabhängig von einer Parallelisierung bewertet werden. Die Parallelisierung wird dann ebenfalls isoliert betrachtet. In diesem Kapitel werden die Designent- scheidungen bezüglich des Servers, die Implementierung auf dem Hochleistungsrechner sowie die dar- aus resultierenden Entscheidungen für Netzwerk und Kompression vorgestellt. Leistungsbewertungen und Messungen der Serverkomponente werden ebenfalls in diesem Kapitel diskutiert. Die Darstellungskomponente als Client soll anschließend thematisiert werden. Hier wird es darum ge- hen, wie der Client Daten vom Server entgegennimmt und auf der Powerwall anzeigt. Der Client lädt außerdem die Szenen und realisiert die Nutzerinteraktion. Anhand zweier unterschiedlicher Testszenen wird der Darstellungsprozess eines Bildes betrachtet und bewertet. Abschließend folgt eine Bewertung aller Komponenten in Kombination und eine Zusammenfassung der gesammelten Erfahrungen. Erweiterungsmöglichkeiten und weitere Ansätze sollen als Ausblick vorge- stellt werden. 2. BISHERIGE ARBEITEN UND SCHWERPUNKTE 5 2 Bisherige Arbeiten und Schwerpunkte In diesem Kapitel sollen Arbeiten vorgestellt werden, aus denen Erkenntnisse für diese Diplomarbeit gewonnen werden konnten. Die grobe Einteilung in interaktive und nicht ineraktive Anwendungen grenzt die Arbeiten lediglich voneinander ab, Interaktivität war bei der Betrachtung nicht der einzige Aspekt. Es werden sowohl Arbeiten auf Systemen mit gemeinsamen, als auch verteiltem Speicher vorgestellt. Hinsichtlich der Parallelisierung werden neben Arbeiten auf Hochleistungsrechnern auch sehr spezielle Arbeiten betrachtet, welche das parallele Potential von Ray Tracing untersuchen und demonstrieren. 2.1 Ausdrücklich interaktiv Die ersten interaktive Ergebnisse eines Ray Tracers wurden auf einer Origin 2000 erziehlt [PMS+99]. Auf bis zu 120 Prozessoren und auf einem gemeinsamen Speicher wurden unterschiedliche