Labyrinth-Spiele, c't 2/96, S. xxx, be
======================================
Schnelle 3D-Darstellung mit Raycasting


Zur Demonstration der Raycast-Technik gibt es eine kleine
Raycast-Engine fr den Apple Macintosh. Sie erlaubt das
Herumlaufen in einem kleinen Beispiel-Szenario. Mit Hilfe der
Tasten "a" und "d" kann der virtuelle Spieler gedreht werden. Die
Tasten "w" und "s" dienen zum Vorwrts- und Rckwrts-Gehen. Mit
der Leertaste kann zwischen der 3D-Sicht und einer Sicht von oben
umgeschaltet werden.

Die Implementierung wurde in C++ mit Hilfe des
Metrowerks-Codewarrior vorgenommen. Sie verwendet sowohl die
beschleunigte als auch die direkte Variante
(Bresenham-Algorithmus) zur Generierung der Linienschnittpunkte.
Mit Hilfe der C-Prprozessor-Variable "_NO_BRESENHAM" kann durch
Neu-Compilieren zwischen den beiden Varianten umgeschaltet werden
(->"Globals.h"). Die hier implementierte Raycast-Engine verwendet
den Quickdraw-Aufruf "CopyBits" zur Skalierung und zum Zeichnen
der Texturspalten. Dieser Befehl ist zwar sehr mchtig, aber
leider nicht gerade sehr schnell. Er ist in der Tat der
Hauptkonsument der Rechenzeit der "Raycast-Engine". Wer das
Programm beschleunigen mchte, sollte hier ansetzen und selbst
schnelle Unterprogramme zum Skalieren und Zeichnen von Texturen
schreiben. Die entsprechende Stelle findet sich im Programmmodul
"Render.c++".

Stefan Becker, 10.11.1995

P.S.: Drehen Sie einmal den Ton maximal laut bevor Sie die
virtuelle Welt erforschen. Der Beobachter mag es nmlich nicht,
mit Wnden zu kollidieren oder unbekannte Kommandos zu erhalten



