Seite 2: Was ist Raytracing? - Strahlenverfolgung im Vergleich zu Rasterisierung

GameStar Plus Logo
Weiter mit GameStar Plus

Wenn dir gute Spiele wichtig sind.

Besondere Reportagen, Analysen und Hintergründe für Rollenspiel-Helden, Hobbygeneräle und Singleplayer-Fans – von Experten, die wissen, was gespielt wird. Deine Vorteile:

Alle Artikel, Videos & Podcasts von GameStar
Frei von Banner- und Video-Werbung
Einfach online kündbar

Die Rasterisierung

Die Rasterisierung wird seit langer Zeit dafür genutzt, die dreidimensionale, virtuelle Welt von PC-Spielen für die Darstellung auf zweidimensionalen Flächen wie PC-Monitoren vorzubereiten. Die Rasterisierung wird seit langer Zeit dafür genutzt, die dreidimensionale, virtuelle Welt von PC-Spielen für die Darstellung auf zweidimensionalen Flächen wie PC-Monitoren vorzubereiten.

Um in Computerspielen ein passendes Bild der (3D-)Welt für die Darstellung auf dem (2D-)Monitor rendern zu können, ist zunächst ein Ausgangspunkt nötig. Dabei handelt es sich in der Regel um die Sicht, die wir als Spieler darauf einnehmen, also quasi um das virtuelle Auge, das auf die Spielwelt schaut.

Die Objekte in dieser Spielwelt sind meist dreidimensional, zu der horizontalen x-Achse und der vertikalen y-Achse kommt also noch eine z-Achse für die Tiefe hinzu. Dabei bestehen die Objekte aus vielen einzelnen Polygonen (»Vieleck«, genauer gesagt kommen in der Regel Dreiecke zum Einsatz), aus denen sich wiederum die bekannten Drahtgitter-Modelle zusammensetzen.

Bei der Rasterisierung wird vereinfacht ausgedrückt ein Abbild der dreidimensionalen Spielwelt auf ein zweidimensionales (Pixel-)Raster projiziert (siehe auch das Bild oben). Was das Abbild genau zeigt, hängt vom aktuellen Blickwinkel auf die Spielwelt ab. Die im Abbild enthaltenen Polygone liegen dabei auf bestimmten Pixeln und haben dadurch Einfluss auf ihre jeweilige Farbgebung.

Battlefield V und RTX: Da sich das Feuer zu großen Teilen nicht im Blickfeld befindet, wird es links ohne Raytracing nicht von der spiegelnden Oberfläche des Autos reflektiert, rechts mit Raytracing dagegen schon. Battlefield V und RTX: Da sich das Feuer zu großen Teilen nicht im Blickfeld befindet, wird es links ohne Raytracing nicht von der spiegelnden Oberfläche des Autos reflektiert, rechts mit Raytracing dagegen schon.

Befindet sich ein Objekt außerhalb des Blickfeldes (oder hinter einem anderen Objekt), wird es dementsprechend nicht auf dem Raster abgebildet. Einerseits spart dieser Geometrie-basiert Ansatz Rechenleistung. Andererseits bedeutet er, dass die ausgelassenen Objekte nur auf Umwegen in die Farbgebung mit einberechnet werden können.

Dieser Umstand führt vor allem in Bezug auf die Beleuchtung und Reflexionen zu Problemen. Schließlich kann eine Lichtquelle auch dann Einfluss auf unsere Wahrnehmung einer Szene haben, wenn wir sie selbst nicht sehen. Und spiegelnde Oberflächen können Dinge zeigen, die sich nicht in unserem Blickfeld befinden.

Um trotzdem ein möglichst realistisches Bild erzeugen zu können, bedienen sich aktuelle 3D-Engines allerlei Tricks wie zusätzlicher Kameraperspektiven. Insgesamt kann das die Rasterisierung zu einer durchaus leistungshungrigen, aber optisch auch größtenteils überzeugenden Angelegenheit machen.

Ein großer Pluspunkt dieses Ansatzes besteht dabei darin, dass sich die grundsätzlich sehr ähnlich ablaufenden Berechnungen für die Farbgebung jedes einzelnen Pixels sehr gut parallelisieren lassen. Während eine CPU in der Regel eher wenige gleichzeitig ablaufende, dafür aber komplexere Berechnungen für sehr unterschiedliche Zwecke übernimmt, ist im Gegensatz dazu die Parallelisierung von sehr vielen, größtenteils ähnlichen und weniger komplexen Berechnungen die Königsdisziplin von Grafikkarten.

Deshalb können aktuelle Prozessoren auch nur eine vergleichsweise geringe Zahl von Aufgaben (beziehungsweise Threads) gleichzeitig bearbeiten, während schnelle Grafikkarten über eine große Zahl an Recheneinheiten (beziehungsweise Shader-Units) für parallel ablaufende Berechnungen verfügen.

Strahlen statt Raster

Beim Raytracing werden die namensgebenden Strahlen (beziehungsweise Rays) vom aktuellen Blickwinkel aus in die Spielwelt geschickt und verfolgt. Auf welche Objekte sie treffen und wie sie jeweils weitergeleitet werden, bestimmt die zweidimensionale Darstellung des Bildes. Beim Raytracing werden die namensgebenden Strahlen (beziehungsweise Rays) vom aktuellen Blickwinkel aus in die Spielwelt geschickt und verfolgt. Auf welche Objekte sie treffen und wie sie jeweils weitergeleitet werden, bestimmt die zweidimensionale Darstellung des Bildes.

Der große Vorteil von Raytracing besteht darin, dass Tricks für eine realistische Darstellung damit nicht mehr (oder kaum noch) nötig sind. Der Grundansatz der Render-Technik ist gleichzeitig relativ simpel: Im Prinzip bildet sie nach, wie wir die reale Umwelt über unsere Augen wahrnehmen.

Hier treffen Lichtstrahlen (beispielsweise von der Sonne) auf Objekte und werden von ihnen reflektiert. Diese Reflexionen gelangen wiederum in unser Auge und vermitteln uns nach einer passenden Verarbeitung im Gehirn ein Bild von unserer Umgebung.

Raytracing dreht diesen Ansatz gewissermaßen um und schickt vom virtuellen Auge aus für jeden Bildpunkt Strahlen in die Spielwelt und verfolgt sie. Daher auch der Name der Technik: »Ray« bedeutet »Strahl«, »to trace« heißt übersetzt »etwas verfolgen«.

Trifft einer dieser Strahlen auf ein Objekt (beziehungsweise Polygon), verrät das bei passender Programmierung nicht nur, dass es sich dort befindet, sondern auch, welche Eigenschaften (wie beispielsweise die Farbe oder die Oberflächenstruktur) es besitzt - und auf welche Art der Lichtstrahl davon beeinflusst wird. So kann er etwa je nach Einfallswinkel und Beschaffenheit des Objekts in eine bestimmte Richtung abgelenkt oder auch gebrochen werden (beispielsweise in transparenten Materialien wie Glas).

Auch (oder gerade) transparente Elemente wie Glas und spiegelnde Oberflächen lassen sich mittels Raytracing besonders realistisch darstellen. Auch (oder gerade) transparente Elemente wie Glas und spiegelnde Oberflächen lassen sich mittels Raytracing besonders realistisch darstellen.

Die Strahlen lassen sich dabei grundsätzlich auch in Bereiche verfolgen, die nicht im direkten Sichtfeld des virtuellen Auges liegen. Deshalb können auch Objekte und Lichtquellen außerhalb davon beim Raytracing die Darstellung der (Spiel-)Welt beeinflussen, was wir ja genau so von der realen Welt kennen.

Aber auch wenn die Technik im Grunde relativ leicht umsetzbar ist, bedeutet es hohen Rechenaufwand, ausreichend viele Strahlen für das Rendern eines Bildes der Spielwelt zu verfolgen - der sich außerdem im Gegensatz zum Geometrie-basierten Vorgehen bei der Rasterisierung deutlich schwieriger parallelisieren lässt. Das ist auch der Grund, warum Echtzeit-Raytracing in Spielen bislang praktisch nicht zum Einsatz kommt.

Bei der Präsentation der neuen RTX-2000-Grafikkarten hat Nvidias CEO Jensen Huang davon gesprochen, dass Echtzeit-Raytracing eine Rechenleistung im Petaflop-Bereich erfordern würde - die aber erst in zehn Jahren erreichbar sei. Das entspricht einer Billiarde an Gleitkomma-Rechenoperationen pro Sekunde (10^15).

Momentan kommen Grafikkarten »nur« auf Werte im Teraflop-Bereich, was einer Billion solcher Operationen entspricht (10^12). Aber wie genau will Nvidia dann jetzt schon Echtzeit-Raytracing umsetzen?

Ist Raytracing in dieser Szene aus Metro nicht aktiviert, sind auch Bereiche des Raums ausgeleuchtet, die das Licht aus dem Fenster nicht so stark erhellen dürfte (links). Mit Raytracing wirkt die Beleuchtung dagegen realistischer (rechts). Ist Raytracing in dieser Szene aus Metro nicht aktiviert, sind auch Bereiche des Raums ausgeleuchtet, die das Licht aus dem Fenster nicht so stark erhellen dürfte (links). Mit Raytracing wirkt die Beleuchtung dagegen realistischer (rechts).

2 von 4

nächste Seite


zu den Kommentaren (59)

Kommentare(51)
Kommentar-Regeln von GameStar
Bitte lies unsere Kommentar-Regeln, bevor Du einen Kommentar verfasst.

Nur angemeldete Benutzer können kommentieren und bewerten.