Raycast

Wie eine Raycasting Engine funktioniert ist im Internet ausführlich beschrieben. Ich fand immer den Vergleich mit einem Schachbrett hilfreich, auf dem quadratische Blöcke so angeordnet sind, daß man sich zwischen ihnen wie in einem Labyrinth bewegen kann.

 

Die Würfelseiten sind im einfachsten Fall mit eine Farbe versehen, können aber auch Texturen beihalten und so eine realistische Darstellung von Wänden bewirken. Durch die äquidistanten Abstände zwischen den Würfeln, ist die persektivische Darstellung recht einfach und ohne große Rechenleistung zu implementieren. Nachteil: Es gibt keine schrägen Wände und alle sind gleich hoch. Ausserdem kann der Spieler, bzw. die Kamera nur in der horizontalen Richtung bewegt und gedreht werden.

 

Die Raycast Demo ist in Java geschrieben. Anfangs noch unter Solaris mit dem JBuilder von Borland, später mit Eclipse. Durch die Verwendung von typensicheren Containern wird Java 5 benötigt. Alle Quellen können frei verwendet werden.

 

Alle Texturen sind 64*64 Pixel groß und liegen im GIF-Format vor. Sie werden beim Start des Programm geladen und in einer Binärdatei (texturen.dat) abgelegt. Dieser Konvertierungsschritt wurde dann abgeklemmt. Ausgeliefert wurde nur die Binärdatei. So kann keiner sich die Bilder ansehen oder austauschen. Das Raycastprogramm liest dann nur die texturen.dat ein. Das Layout selbst ist in den Javaquellen fest verdrahtet.

Einzige Ausnahme ist das Image für den Hintergrund. Hier wird eine seamless Textur verwendet. Dreht sich der Kamera wird einfach diese Textur verschoben und es entsteht so der Eindruck eines sich drehenden Horizontes.

 

Photo 1 Photo 2 Photo 3 Photo 4 Photo 5 Photo 6
Photo Thumb 1
Photo Thumb 2
Photo Thumb 3
Photo Thumb 4
Photo Thumb 5
Photo Thumb 6