Spiele-Glossar

Raycasting: So entsteht 3D aus einer flachen Karte

Strahlen werden zu Wandstreifen: So funktioniert Raycasting, warum es so schnell ist, wo seine Grenzen liegen und wie ein 8-Bit-Rechner 3D aus Zeichen baut.

6–9 Minuten

Kurz erklärt · Retro & DDR-Heimcomputer

Raycasting ist ein Verfahren der Computergrafik, das aus einer flachen Karte eine 3D-Ansicht berechnet: Für jede Bildspalte wird ein Sehstrahl ausgesandt, bis er eine Wand trifft. Je kürzer der Strahl, desto höher wird der Wandstreifen gezeichnet.

Auch: Ray Casting, Ray-Casting, Raycaster, Raycasting-Engine

Raycasting: Strahlen werden zu Wandstreifen Links eine Karte von oben mit Wänden und einer Spielfigur, deren Blickfeld 60 Grad weit ist. Nacheinander werden 16 Sehstrahlen von links nach rechts ausgesandt, bis sie eine Wand treffen. Rechts entsteht im gleichen Takt das 3D-Bild: Jeder Strahl wird zu einem senkrechten Wandstreifen – kurzer Strahl, hoher Streifen; langer Strahl, niedriger Streifen. Karte von oben Bild auf dem Schirm 1 Strahl je Bildspalte kurzer Strahl = hoher Streifenlanger Strahl = niedriger Streifen
So funktioniert’s: Links fächern 16 Sehstrahlen aus der Draufsicht auf, rechts wird jeder Strahl zu einem Wandstreifen: Kurzer Strahl ergibt einen hohen Streifen, langer Strahl einen niedrigen.

Was ist Raycasting?

Raycasting – von englisch ray (Strahl) und to cast (werfen) – erzeugt den Eindruck einer dreidimensionalen Welt, ohne echte 3D-Körper zu berechnen. Grundlage ist eine zweidimensionale Karte, ein Raster aus Feldern: Jedes Feld ist entweder freier Raum oder eine Wand. Alle Wände sind gleich hoch und stehen im rechten Winkel zueinander.

Weil dabei sehr wenig gerechnet werden muss, lief Raycasting schon auf langsamen Rechnern flüssig. Anfang der 1990er-Jahre machten Ego-Shooter mit Gängen und Labyrinthen das Verfahren berühmt.

Der Begriff hat noch zwei weitere Bedeutungen: In der Wissenschafts- und Medizingrafik heißt so ein Verfahren, das Volumendaten wie CT-Aufnahmen sichtbar macht. Manchmal bezeichnet er auch eine einfache Form des Raytracings. Bei Spielen ist fast immer das Wand-Verfahren gemeint.

Wie funktioniert Raycasting? Schritt für Schritt

  1. Für jede senkrechte Bildspalte wird ein Strahl von der Spielfigur aus in die Karte geschickt. Sein Winkel ergibt sich aus der Blickrichtung, dem Sichtfeld – zum Beispiel 60 Grad – und der Lage der Spalte im Bild.
  2. Der Strahl wandert Feld für Feld durch das Raster. Weil alle Wände rechtwinklig stehen, genügt es, nacheinander die Schnittpunkte mit den waagerechten und senkrechten Gitterlinien zu prüfen.
  3. Trifft der Strahl ein Wandfeld, berechnet das Programm die Entfernung zur Wand.
  4. Aus der Entfernung folgt die Höhe des Wandstreifens: Halbe Entfernung bedeutet doppelte Höhe.
  5. Zum Schluss wählt das Programm Textur oder Helligkeit, etwa dunkler für seitlich getroffene oder weit entfernte Wände.

Die Animation zeigt das mit 16 Strahlen: Links fächern sie in der Draufsicht auf, rechts entsteht im selben Takt das Bild. Spiele nutzen meist einen Strahl pro Bildspalte, bei 320 Spalten also 320 Strahlen für jedes einzelne Bild.

Der Trick gegen den Fischaugeneffekt

Nimmt man die gemessene Strahllänge direkt, wirken gerade Wände gewölbt: Die Strahlen am Bildrand laufen schräg und sind deshalb länger. Darum rechnet man mit dem Abstand senkrecht zur Blickrichtung – Strahllänge mal Kosinus des Winkels zur Bildmitte. Dann steht die Wand wieder gerade.

Welche Grenzen hat Raycasting?

  • Alle Wände sind gleich hoch; Treppen oder Räume übereinander gehen nur mit Tricks.
  • Die Kamera kann nicht frei nach oben oder unten schauen und nicht kippen.
  • Gegenstände und Gegner werden meist als flache Bilder in die Szene gesetzt, die immer zur Kamera zeigen.
  • Schräge Wände und runde Formen sind schwierig.

Diese Grenzen machten später Verfahren mit Polygonen nötig. Heute zeichnet die Grafikkarte über Schnittstellen wie WebGL ganze 3D-Modelle aus Dreiecken – im Browser zum Beispiel beim Taktik-Shooter Dreifront, der WebGL 2 braucht.

Unterschied: Raycasting, Raytracing und Polygon-3D

VerfahrenWas berechnet wirdTypisch für
Raycastingein Strahl je Bildspalte bis zur ersten Wandfrühe 3D-Labyrinthe, Retro-Spiele
RaytracingStrahlen je Bildpunkt, samt Spiegelungen und SchattenFilme, aufwendige Grafik
Polygon-3DDreiecke, die die Grafikkarte zeichnetheutige 3D-Spiele

Mit Drahtgittergrafik hat Raycasting wenig gemein: Dort werden Kanten echter 3D-Körper berechnet, beim Raycasting nur Abstände in einer flachen Karte. Deshalb nennt man solche Ansichten oft auch Pseudo-3D.

Raycasting auf einem 8-Bit-Rechner

Auch auf einem 8-Bit-Rechner ist das Prinzip machbar, wenn man spart: wenige Bildspalten, vorberechnete Tabellen statt teurer Winkelfunktionen, Ganzzahlen statt Kommazahlen. Der Robotron Z9001 hat dazu noch keine Pixelgrafik – statt Bildpunkten setzt ein Programm dort für jede Spalte passende Grafikzeichen. Die Bildrate bleibt bescheiden, doch die Ich-Perspektive funktioniert.

Raycasting in Spielen auf Player 0o5

  • Klotz Z9001

    Klotz Z9001 verfolgt Strahlen durch ein Klötzchengitter und baut die 3D-Ich-Sicht Spalte für Spalte nur aus Grafikzeichen auf. Am Originaltakt von 2,46 MHz sind das etwa 2 bis 3 Bilder pro Sekunde, mit Turbo doppelt so viele.

  • Duum Z9001

    Duum Z9001 ist von den 3D-Shootern der frühen 90er inspiriert, die Raycasting bekannt gemacht haben. Seine 3D-Ansicht mit Texturen, Türen und Geheimgängen entsteht nur aus Textzeichen; am echten Z9001 sind es je nach Level 9 bis 19 Bilder pro Sekunde im Stand.

Häufige Fragen zu Raycasting

Ist Raycasting echtes 3D?

Nein, eher Pseudo-3D. Die Welt ist eine flache Karte; erst beim Zeichnen entsteht aus den gemessenen Abständen der Eindruck von Tiefe.

Was ist der Unterschied zwischen Raycasting und Raytracing?

Raycasting schickt in Spielen nur einen Strahl pro Bildspalte und stoppt an der ersten Wand. Raytracing verfolgt Strahlen für jeden Bildpunkt und berechnet auch Spiegelungen und Schatten, was viel mehr Rechenzeit kostet.

Warum ist Raycasting so schnell?

Pro Bild werden nur so viele Strahlen berechnet, wie das Bild Spalten hat, und jeder Strahl ergibt genau einen senkrechten Streifen. Das rechtwinklige Raster macht die Suche nach der Wand zusätzlich einfach.

Was ist der Fischaugeneffekt beim Raycasting?

Wer die schräge Strahllänge direkt verwendet, sieht gerade Wände gewölbt. Mit dem Abstand senkrecht zur Blickrichtung, also Strahllänge mal Kosinus des Winkels, wird die Wand wieder gerade.

Verwandte Begriffe

← Alle 199 Begriffe im Spiele-GlossarZu den Spielen