Ray-Casting-Technologietraining, Teil 1

2D Indie ... 3D AAA Projekte ... oder etwas dazwischen?



Grüße an alle Leser. Ich beschloss, eine wunderbare Artikelserie "Ray-Casting-Tutorial für Spieleentwicklung und andere Zwecke" von F. Permadi über das Studium der Ray-Casting-Technologie zusammenzufassen und zu übersetzen .



Bild


Diese Veröffentlichung berührt und kombiniert Originalartikel von Was ist Ray-Casting und Ray-Casting mit Ray-Tracing für die Spieleentwicklung ?



Es ist erwähnenswert, dass ich dieses Tutorial gründlich studiert habe, um eine pseudo-dreidimensionale Engine zu erstellen (über die Sie auch einen Artikel schreiben können). Ich hoffe, ich denke, dies hat mir geholfen, die erfolgreichsten Wörter beim Übersetzen zu finden und auch die Bedeutung des Geschriebenen nicht zu verlieren.



Nun ... Fangen wir an!



Was ist Ray Casting?



Ray Casting (im Folgenden als Casting bezeichnet) ist eine Technologie, die einen begrenzten Datensatz (eine maximal vereinfachte Karte oder einen Grundriss) in eine 3D-Projektion umwandelt, indem Strahlen aus der Sicht über das gesamte Sichtfeld "geworfen" werden. Das folgende Bild zeigt zum Beispiel, wie das Werfen etwas 2D A in etwas fast 3D B verwandelt.



Bild


Raycasting und Raytracing



Wie beim Raycasting definiert das Raytracing "den sichtbaren Teil einer Oberfläche, indem imaginäre Lichtstrahlen vom Blickwinkel auf ein Objekt in der Szene geworfen werden".



Die beiden vorherigen Definitionen lassen den Eindruck entstehen, dass Werfen und Verfolgen dasselbe sind. In einigen Büchern werden beide Begriffe synonym verwendet. Aus Sicht der Programmierer von Gamedev sollte das Werfen von Strahlen jedoch als Sonderfall für die Verfolgung der Implementierung betrachtet werden.



Schneller werfen als verfolgen. Dies ist möglich, weil einige geometrische Einschränkungen verwendet werden, um den Renderprozess zu beschleunigen. Beispielsweise stehen Wände immer senkrecht zum Boden (dies ist in Spielen wie Doom oder Wolfenstein 3D zu sehen). Ohne solche Einschränkungen wäre die Wurftechnologie nicht möglich gewesen.



Die folgenden Absätze bieten einen globalen Vergleich von Werfen und Verfolgen. Das Wichtigste ist, dass "das Werfen aufgrund bestimmter geometrischer Einschränkungen weniger Strahlen als das Verfolgen verbraucht". Oder dass "Werfen eine spezialisierte Implementierung der Verfolgung ist".



Prinzip



Werfen : Strahlen werden geworfen und bewegen sich aufgrund einiger geometrischer Einschränkungen in Gruppen. Auf einem Bildschirm mit einer Auflösung von 320 x 200 gibt der "Strahlengenerator" beispielsweise nur 320 Teile davon frei (wir erhalten diese Zahl aus der Folgerung, dass ein Bildschirm mit einer Breite von 320 Pixel 320 vertikale Spalten hat).



Verfolgung : Jeder Strahl wird separat berechnet, dh jeder Punkt auf dem Monitorbildschirm (normalerweise ein Pixel) wird von einem seiner Strahlen verfolgt. Auf einem Bildschirm mit einer Auflösung von 320 x 200 benötigen wir beispielsweise 64.000 (320 * 200 = 64000) Strahlen, was im Vergleich zum Werfen 200-mal langsamer ist.



Formel



Fehler beim Berechnen sind in der Regel zulässig. Beim Routing sollte alles so genau wie möglich sein.



Geschwindigkeit



Das Werfen ist um ein Vielfaches schneller als das Verfolgen und eignet sich für Echtzeitprozesse. Die Rückverfolgung ist in keiner Weise geeignet (es sei denn, wir haben einen PC mit einer Frequenz von 500 GHz).



Qualität



Beim Ablegen erhalten wir ein Bild mittlerer / schlechter Qualität. Sie können die Unterteilung in Blockelemente feststellen. Bei der Verfolgung ist das Bild so realistisch wie möglich - manchmal sogar zu viel.



Bild


Szene aus Wolfenstein 3D. Beachten Sie, dass das Bild in rechteckige Blöcke unterteilt ist. Objekte (Waffen) und Feinde (Hund) sind einfach transparente Bitmaps, die skaliert und über den Hintergrund gezogen werden.



Bild


Eine Szene aus dem Spiel 7. Gast. Das Rendering-Ergebnis ist erstaunlich. Die Bewegungen des Spielers sind jedoch auf zuvor definierte Pfade beschränkt (dies liegt an der Tatsache, dass die Anzahl der vorgerenderten Bilder begrenzt ist).



Außenwelt



Beim Werfen sind wir geometrisch begrenzt und es stehen nur einfache Formen zur Verfügung. Beim Verfolgen kann jede Form gerendert werden.



Erinnerung



Werfen : Gerenderte Bilder werden nicht auf der Festplatte gespeichert. Normalerweise wird nur die Szenenkarte selbst auf dem Medium gespeichert und die entsprechenden Bilder werden im laufenden Betrieb generiert.



Trace : Die gerenderten Bilder werden auf der Festplatte gespeichert und bei Bedarf von dort geladen. Derzeit gibt es keinen solchen Hardwareteil, der das Ergebnis der Raytracing-Funktion im laufenden Betrieb wiedergeben könnte.



Beispiele von



Werfen:



  • Wolfenstein 3D (iD Software)
  • Schattenwirker (Rabe)
  • Arena (Bethesda)
  • Doom (iD Software)
  • Dunkle Kräfte (LucasArts)


Spur:



  • 7. Gast (Trilobyte)
  • Kritischer Pfad (Mechadeus)
  • 11. Stunde (Trilobyte)
  • Myst (Cyan)
  • Cyberia (Xatrix)


Ende des ersten Teils




All Articles