Realisierung eines Beleuchtungsmodells mithilfe von Ray-Tracing


Studienarbeit, 2021

18 Seiten, Note: 1,3


Leseprobe

INHALTSVERZEICHNIS

1 Einführung

2 VERWANDTE ARBEITEN

3 konzept

4 prototypische Realisierung
4.1 Schnittpunktberechnung
4.1.1 Kugel
4.1.2 Dreieck
4.2 Diffuse Reflexion
4.3 Spiegelnde Reflexion

5 Diskussion und Ergebnisse

6 Zusammenfassung und Ausblick

Literatur

ZUSAMMENFASSUNG

Die Berechnung der Beleuchtung einer Szene spielt in der Filmindustrie so­wie bei der Computerspiel-Entwicklung eine wichtige Rolle. Eine korrekte und authentische Beleuchtungsberechnung ist eine zentrale Problemstellung aus dem Bereich der Computer Graphik. Diese Arbeit beschäftigt sich mit einem Beleuchtungsmodell, welches diffuse und spiegelnde Reflexionen be­rücksichtigt. In diesem Zusammenhang wird ein Ray-Tracer vorgestellt, wel­cher eine Szene rendert und eine Bilddatei erstellt. Zunächst werden die grundlegenden Funktionalitäten und der Aufbau des Ray-Tracers erklärt. Das Vorgehen besteht aus drei Schritten: (I) Es wird eine Schnittpunktbe­rechnung zwischen einem Sehstrahl und einer Kugel oder einem Dreieck durchgeführt. (II) Schließlich werden die diffusen Reflexionen der Objekte berechnet. (III) Abschließend werden die spiegelnden Reflexionen der Ob­jekte ermittelt. Im Ergebnis wurde ein Ray-Tracer konzipiert, der diffuse und spiegelnde Reflexionen berechnen kann. Außerdem unterstützt der Ray- Tracer unterschiedliche Lichtquellen und Kamerapositionen. Die erstellten Bilder veranschaulichen die Mächtigkeit des Ray-Tracing Verfahrens.

ABBILDUNGSVERZEICHNIS

Abbildung 3.1 Vorgehen

Abbildung 4.1 Schnittpunkt und Dreieck [scrb]

Abbildung 4.2 Reflexionsgesetz (Eigene Darstellung)

Abbildung 5.1 Punktlichtquelle von rechts

Abbildung 5.2 Mehrere Punktlichtquellen (links, vorne, rechts)

Abbildung 5.3 Links: Ohne Bias, Rechts: Mit Bias

1. EINFÜHRUNG

Die Filmindustrie nutzt Ray-Tracing beispielsweise für Animationsfilme. Ein Beispiel ist der Film Cars von Pixar Animation Studios [Chr+o6]. Des Wei­teren wird Ray-Tracing auch bei Computerspielen eingesetzt, wodurch die Spiel-Grafik noch realistischer wird. Die Echtzeitberechnung von Spiegelung­en beim Gaming benötigt sehr viel Rechenleistung, welche durch die neus­ten RTX-Grafikkarten1 2 von Nvidia zur Verfügung steht [Pan+2o]. Es gibt lokale und globale Beleuchtungsverfahren. Die lokalen Verfahren beschrän­ken sich auf die primären Lichtquellen. Bei globalen Verfahren beeinflus­sen sich die Objekte in der Szene gegenseitig hinsichtlich der Beleuchtung. Ray-Tracing ist ein globales Verfahren zur Beleuchtungsberechnung. Globa­le Rendering Verfahren sind sehr rechenaufwendig im Vergleich zu lokalen Verfahren. In dieser Arbeit wird die Konzeption und Funktionsweise eines Ray-Tracers beschrieben, der die Beleuchtung in einer Szene berechnet. Die beleuchtete Szene wird in einer Portable Pixmap (ppm) abgespeichert. Die Herausforderung bei der Konzeption eines Ray-Tracers ist die Berücksich­tigung von Spiegelung, Schattenwurf und Lichtreflexion von anderen Ob­jekten. Diese Herausforderungen sind die Motivation für diese Arbeit. Aus diesem Grund beschäftigt sich diese Arbeit mit der Berechnung von diffusen und spiegelnden Reflexionen anhand von Kugeln und Dreiecksnetzen. Bei der diffusen Reflexion ist die Farbe einer Fläche materialabhängig. Im Ge­gensatz zu der diffusen Reflexion hat spiegelnd reflektierendes Licht nicht die Farbe des Materials sondern die Farbe des Lichts.

Hieraus ergeben sich folgende Forschungsfragen:

- (RQi) Welche Hindernisse können bei der Realisierung eines Ray-Tracers auftreten?
- (RQ2) Wie können diffuse und spiegelnde Reflexionen in einem Ray- Tracer umgesetzt werden?

2 VERWANDTE ARBEITEN

In wissenschaftlichen Arbeiten werden verschiedene Ansätze zur globalen Beleuchtungsberechnung aufgezeigt. Ein Ansatz zur Berechnung von ideal diffusen Reflexionen ist das Radiosity Verfahren. Das Verfahren ist nicht vom Blickpunkt abhängig. Es kann auch für komplexe Umgebungen eingesetzt werden [CG85].

Das Ray-Tracing Verfahren ist blickpunktabhängig. Beim Ray-Tracing werden die Sehstrahlen verfolgt. Falls ein Sehstrahl ein Objekt trifft, wird ein Schnittpunkt berechnet. Anschließend wird mithilfe eines Schattenfühlers die Beleuchtungsberechnung durchführt. Dieses Verfahren wurde von Kay und Whitted um 1980 entwickelt [Whi05] [KK86]. Das Verfahren ermöglicht allerdings keine indirekte diffuse Beleuchtung der Objekte in der Szene.

Das Path-Tracing Verfahren ist eine Erweiterung des Ray-Tracing Verfahrens. Hierbei wird der Sehstrahl bei diffusen Reflexionen weiterverfolgt. Die Erweiterung des Path-Tracing ist das Bidirectional Path-Tracing, bei welchen neben den Sehstrahlen auch die Lichtstrahlen verfolgt werden [LW93].

Diese bisherigen Arbeiten beschäftigen sich mit verschiedenen Ansätzen zur Beleuchtungsberechnung. In dieser Arbeit werden die Konzepte des Ray- Tracing verwendet, um ein Bild mit Kugeln und Dreiecksnetzen zu rendern. Der Fokus liegt dabei auf der diffusen und spiegelnden Reflexion, wobei neben den mathematischen Konzepten auch auf die Hindernisse bei der Realisierung eines Ray-Tracer eingegangen wird.

3 KONZEPT

Dieser Abschnitt stellt das abstrakte Konzept der Arbeit vor. Das Vorgehen ist in Abbildung 3.1 veranschaulicht und beinhaltet drei zentrale Schritte.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.1: Vorgehen

Der erste Schritt beschäftigt sich mit der Schnittpunktberechnung von Seh­strahlen mit Kugeln oder Dreiecken. Der Schnittpunkt wird für die Reflexi­onsberechnung eingesetzt. Außerdem ist der Schnittpunkttest für Kugeln sehr einfach, deshalb werden Kugeln sehr oft für Ray-Tracing verwendet. Des Weiteren gibt es die geometrische und analytische Methode, um die Schnittberechnung für Kugeln durchzuführen. In dieser Arbeit wird die analytische Methode erklärt. Die Schnittpunktberechnung für Dreiecke ist sinnvoll, da komplexe Geometrien immer in ein Dreiecksnetz transformiert werden können. Die Implementierung des Schnittpunkttests für Dreiecke er­möglicht es also auch komplexe Geometrien zu rendern. Im zweiten Schritt wird die diffuse Reflexion für Kugeln und Dreiecke berechnet. Der letzte Schritt beinhaltet schließlich die Berechnung von Spiegelungen für Kugeln und Dreiecke.

4. PROTOTYPISCHE REALISIERUNG

Für die Realisierung des Ray-Tracers wurde die Programmiersprache C++ verwendet. Das Rendering-Ergebnis des Ray-Tracings wird in einer Portable Pixmap (ppm) gespeichert. Es wurde sich für eine ppm-Datei entschieden, da sie eine geringe Komplexität besitzt. Zunächst wurden die Datenstruktu­ren und die Verwaltung der Schnittpunkte konzipiert. In diesem Zusammen­hang wurden Konzepte von [scra] und [Shii6] verwendet. Eine zentrale Da­tenstruktur stellt die Vec^-Klasse dar, weil diese Klasse neben den Koordina­ten auch einige Operatoren zur Berechnung enthält. Für die Berechnung der Reflexionen wurde das Blinn-Phong-Modell eingesetzt. Das Blinn-Phong- Modell beruht auf dem Phong'schen Reflexionsmodell. Das Phong'sche Re­flexionsmodell beschreibt die Reflexion von Licht als eine Verknüpfung aus ambienter, ideal diffuser und ideal spiegelnder Reflexion. Für die Reflexions­berechnung gilt folgende Notation:

- ka: Menge des ambient reflektierten Lichts (liegt zwischen o und i)
- kd: Grad an diffuser Reflexion des Oberflächenmaterials (liegt zwi­schen o und i)
- ks: Grad an spiegelnder Reflexion des Oberflächenmaterials (liegt zwi­schen o und i)
- Ie: Strahlungsstärke der (Punkt-) Lichtquelle
- l: Lichteinfallsvektor
- v: Richtungsvektor zum Betrachter
- n: Flächennormale
- r: Richtungsvektor reflektiertes Licht

Die Formel 4.1 veranschaulicht die Reflexionsberechnung nach Phong ohne trigonometrische Funktionen (n, l, r, v müssen normiert sein):

Abbildung in dieser Leseprobe nicht enthalten

In der Praxis wird meistens das Blinn-Phong-Modell verwendet, da es die Be­rechnung des Reflexionsvektors vermeidet. Statt des Reflexionsvektors ver­wendet dieses Modell einen Half-Way-Vektor, wodurch die Reflexionsberech­nung beschleunigt wird. Der Half-Way-Vektor (h) liegt auf der Hälfte des Winkels zwischen v und l. Die Formel 4.2 legt die Berechnung dar:

Der entwickelte Ray-Tracer ermöglicht das Rendering von Kugeln und Drei­ecken mit diffusen und spiegelnden Materialien. Ein Menü ermöglicht es die Kameraposition sowie die Position der Lichtquelle zu wechseln. Des Weite­ren kann eine Szene mit einer Punktlichtquelle, Entfernten Licht und mehre­ren Punktlichtquellen gerendert werden. Die Ergebnisse sind in Abschnitt 5 demonstriert.

4.1 Schnittpunktberechnung

4.1.1 Kugel

Beim Ray-Tracing werden häufig Kugeln verwendet, da die Schnittpunkt­berechnung einfach zu realisieren ist. Die folgende Formel beschreibt die Kugeloberfläche mit dem Kugelmittelpunkt (C = Cx, Cy, Cz):

Abbildung in dieser Leseprobe nicht enthalten

Der Radius R wird schließlich durch den Vektor von C = (Cx, Cy, Cz) nach P = (x, y, z) berechnet, wobei P den Schnittpunkt des Sehstrahls mit der Kugeloberfläche darstellt. R2 kann also wie folgt berechnet werden:

Abbildung in dieser Leseprobe nicht enthalten

Im nächsten Schritt muss berechnet werden, wann der Sehstrahl P(t) = O + tD die Kugeloberfläche schneidet. O bezeichnet die Position der Kamera. Die Formel kann erweitert werden, indem der Punkt P(t) in die Gleichung 4.4 eingesetzt wird. Im nächsten Schritt kann diese Gleichung, indem alles auf die linke Seite gebracht und erweitert wird, wie folgt umgestellt werden:

Abbildung in dieser Leseprobe nicht enthalten

Es können also kein Schnittpunkt, ein Schnittpunkt oder zwei Schnittpunkte mit einer Kugel in der Szene auftreten. Bei zwei Schnittpunkten wird der Schnittpunkt ausgewählt, der näher am Betrachter liegt.

4.1.2 Dreieck

In der Computer Graphik spielen Dreiecke eine zentrale Rolle, da jedes Ob­jekt in ein Dreiecksnetz umgewandelt werden kann. Es kann der Schnitt­punkt eines Strahls mit einem Dreieck berechnet werden. Die Abbildung 4.1 dient als Veranschaulichung für die Schnittpunktberechnung.

Die Schnittpunktberechnung zwischen einem Sehstrahl und einem Drei­eck verläuft in mehreren Schritten.

1. Auswahl des Koordinatensystem
2. Berechnung der Normale des Dreiecks
3. Finden des Schnittpunkts P mit der Ebene
4. Prüfen, ob P auf Dreieck liegt?

Zunächst muss die Art des Koordinatensystems ausgewählt werden, da Ob­jekte in einem rechtshändigen Koordinatensystem anders aussehen als in einem linkshändigen Koordinatensystem. In dieser Arbeit wird das links­händige Koordinatensystem verwendet. Im zweiten Schritt wird die Norma-

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4.1: Schnittpunkt und Dreieck [scrb]

le des Dreiecks (Eckpunkte: v0, v1, v2) berechnet. Das Dreieck liegt in einer Ebene, deshalb liegen auch die Vektoren der Kanten des Dreiecks in der Ebene. Zwei Vektoren (A, B) der Dreieckskanten bilden die Richtungsvekto­ren der Ebene. Die Normale der Ebene ist auch die Normale des Dreiecks, i https://www.nvidia.com/de-de/geforce/ (Zugegriffen am 14.01.2021)

[...]


1

2 b2 - 4ac < 0 ^ o. Lösungen (kein Schnittpunkt)

Ende der Leseprobe aus 18 Seiten

Details

Titel
Realisierung eines Beleuchtungsmodells mithilfe von Ray-Tracing
Hochschule
Hochschule Darmstadt
Veranstaltung
Computer Graphik
Note
1,3
Autoren
Jahr
2021
Seiten
18
Katalognummer
V1041332
ISBN (eBook)
9783346461179
ISBN (Buch)
9783346461186
Sprache
Deutsch
Schlagworte
Ray-Tracing, Diffuse Reflexion, Spiegelnde Reflexion, Computer Graphik
Arbeit zitieren
Patrick Tinz (Autor:in)Janik Tinz (Autor:in), 2021, Realisierung eines Beleuchtungsmodells mithilfe von Ray-Tracing, München, GRIN Verlag, https://www.grin.com/document/1041332

Kommentare

  • Noch keine Kommentare.
Im eBook lesen
Titel: Realisierung eines Beleuchtungsmodells mithilfe von Ray-Tracing



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden