|
|||||||||||||||||||||||||||||||||||||||||||
Ein kleines Vektorballdemo mit Quellcodes und TutorialBeschreibung des Effektes
Vor einem festen Hintergrundbild bewegen sich verschiedene Anordnungen
von Kugeln. Die Kugeln beschreiben dabei diverse 3D-Objekte wie
Würfel, Pyramide oder eine Spirale. Weit entfernte Kugeln werden
dabei perspektivisch korrekt kleiner gezeichnet, Kugeln nahe am
Betrachter größer.
Desweiteren sind noch ein paar kleinere Gimmicks eingebaut, wie eine Überblendung der Szene nach weiß, der fliessende Wechsel der Kugelanordnungen untereinander (3D-Morphing) und das Herein- bzw. Herausschieben der sich bewegenden Szene vom Bildschirm. In welchen Demos zu sehen?Vektorballs waren damals ein sehr beliebter Effekt, da sie einfach zu realisieren sind und schöne Effekte ermöglichen. Den meiner Meinung nach schönsten Vektorballs-Part habe ich in der "Elements"-Demo der Demogruppe "Xography" (1993) gesehen. Dort bewegen sich richtig komplexe Gebilde aus bunten Kugeln verschiedener Größe über einem reflektierenden Schachbrett. Auch die Elemente sind schön entworfen; unter anderem ein Hubschrauber mit drehenden Rotoren oder ein Modell des Raumschiffs Enterprise. Weitere schöne Demos mit Vektorball-Parts:
Wie wirds gemacht?Eigentlich ein sehr einfacher Effekt, bei dem 3D-Objekte durch Kugeln imitiert und auf dem Bildschirm dargestellt werden. Als erstes benötigt man natürlich die Koordinaten der darzustellenden Objekte. Für die hier verwendeten, noch recht einfachen Objekte habe ich damals die Koordinaten mit Papier und Bleistift konstruiert. Man kann natürlich auch irgendein Modellierungsprogramm verwenden, muß dabei aber nur herausfinden, wie man dann an die Koordinaten herankommt. Die Koordinaten liegen hier als dreidimensionale Vektoren des Typs Record x,y,z:longint; end;vor. Hat man die Koordinaten ermittelt, verfährt man nach dem folgenden Schema:
Programmablauf pro FrameProgramminfoTurbo Pascal (kompiliert mit TP 7.0)Videomodus: Standard Mode 13h (MCGA), 320x200 Pixel bei 256 Farben benötigt und enthält meine Vektorunit Kernschleifen in Assembler, Effekt läuft in Echtzeit ab XXXX LoC Hauptprogramm (Lines of Code) 529 LoC Vektorunit Geschwindigkeit:
Normale Objekte:
Scroller mit 384 Kugeln
DownloadDownload als ZIP-File:vecballs.zip (XXXX Bytes) enthält ausführbares .EXE-Files, die Quellcodes und das Hintergrundbild. Eine genauere Beschreibung der mitgelieferten Vektorunit kann ich hier leider nicht mitliefern, da sie den Rahmen sprengen würde. Es sind allerdings nur sehr wenig Zeilen im Hauptprogramm nötig, um die Unit zu verwenden. Mit ein wenig Experimentieren sollte ein problemloses Einbinden in eigene Programme kein Problem darstellen. Screenshots
|
|||||||||||||||||||||||||||||||||||||||||||
Seitenanfang |
Inhalt und Design von Florian Evers, florian-evers@gmx.de |
||||||||||||||||||||||||||||||||||||||||||