Der Ursprung - eine Lok

Screenshot
Screenshot
Screenshot
Screenshot
Screenshot

Für das Fach Computergraphik hatte man die Wahl zwischen einer Prüfung mit einem praktischen Teil oder der Anfertigung eines OpenGL-Projektes, womit in der Prüfung der praktische Teil entfiel - was in den meisten Fällen zu einer besseren Gesamtnote führte. Dementsprechend habe ich mich also damals (im Winter 2002/2003) hingesetzt und versucht, etwas halbwegs brauchbares zu basteln.

Als Fan von Technik im Allgemeinen und Eisenbahnen im Besonderen stand auch schnell fest, daß ich eine Dampflok modellieren wollte. Blieb nur noch die Frage, welche Lok es sein sollte - Dampfloks mögen ja für den Laien alle gleich aussehen, doch es gibt zwischen den einzelnen Baureihen teils gravierende Unterschiede. Also stellte ich ein paar Kriterien auf, nach denen ich die Lok dann auswählen wollte: Sie sollte mal bei mir in der Gegend stationiert gewesen sein, also irgendwo im Raum Aschersleben-Güsten-Staßfurt; sie sollte eine gewisse historische Bedeutung haben und schlußendlich nicht übermäßig viele schwer modellierbare Details haben (womit Dreizylinderloks wie die BR44 ausschieden).

Und so fiel meine Wahl dann auf die 01 005, eine Schnellzuglok. Sie wird heute in Staßfurt museal erhalten, ist als älteste Einheitsdampflok Deutschlands natürlich historisch bedeutend, und schließlich war sie dann auch durch weitgehende Symmetrie verhältnismäßig einfach zu modellieren (was nicht heißt daß es tatsächlich einfach gewesen wäre).

Was jetzt noch fehlte, war eine Zeichnung der Lok, damit ich eine halbwegs originalgetreue Umsetzung hinkriegen konnte. Fündig wurde ich dann bei www.dlok.de, dort gab es auch eine gut geeignete Schnittzeichnung sowie technische Daten. Damit (und mit einem Lineal und einem Taschenrechner bewaffnet) setzte ich mich dann hin, und hackte alles in den Rechner - ohne Umwege über eine 3D-Software wohlgemerkt (und ja, ich bin ein bissel bekloppt ;-).

Nachdem die Lok als solche modelliert war und sich auch die Räder drehten, kam der komplizierteste Teil: das Triebwerk mit seinen ganzen sich auf recht esoterischen Bahnen bewegenden Stangen. Das wurde durch komplizierte Formeln mit viel sin und cos approximiert und sah am Ende auch einigermaßen brauchbar aus, auch wenn die Schieberstange bei hohen Geschwindigkeiten doch ziemlich wackelt *g*.

Der Rest waren dann für die Abnahme verlangte Details wie Beleuchtung, Texturen und ähnliches, und nach ca. 100h Arbeit, verteilt auf rund 2 Monate war das gute Stück fertig zur Abgabe und brachte mir die volle Punktzahl :-)

Download der Projektdateien inklusive Dokumentation

Version 2

Ende 2003 zeigte mir der chö sein zu diesem Zeitpunkt noch in der Entwicklung befindliches Dampfmaschinenmodell, inklusive Rauch, und da verspürte ich das dringende Bedürfnis, meine Lok noch besser zu machen. Sie war zwar gut, gemessen am Rahmen in dem sie entstand, sogar herausragend (sie wurde zusammen mit chös Dampfmaschine noch im Januar 2005 beim Tag der offenen Tür vorgeführt), aber sie war trotzdem mein erstes 3D-Modell und dementsprechend war und ist da viel Raum für Verbesserungen. Kurz zusammengefaßt lassen sich die wichtigsten Mängel wie folgt beschreiben:

  • Fehlerhafte Modellierung: Das Triebwerk arbeitet im Modell um 180 Grad° versetzt, beim Vorbild sind es 90° (mal ganz davon zu schweigen, daß das Triebwerk in dieser Form gar nicht funktionieren kann), außerdem sind die Berechnungen nur approximiert und extrem langsam aufgrund der verwendeten Winkelfunktionen
  • Ineffiziente Modellierung: Viele wichtige Details wurden weggelassen, dafür sind teilweise Details gestaltet, die man gar nicht sehen kann, dementsprechend unterirdisch ist die Framerate
  • Fehlende Features: Die Lok kann nur stur geradeaus fahren, Kurven oder Neigungen sind nicht möglich
Rauch
Ansatz fürs Streckennetz

Also lautete die erste Idee, der Lok Dampf unterm Kessel zu machen und den Schornstein zum Qualmen zu bringen. Das Ergebnis stand Anfang 2004. Spätestens jetzt wurde deutlich, das weitere Features sich kaum ohne komplette Neumodellierung integrieren lassen würden. Also setzen sich chö und ich im Frühjahr 2004 zusammen und legten die Eckdaten fest:

Die neue Lok sollte Kurven und Steigungen bewältigen können, besser aussehen und sich flüssiger bewegen. Meine Aufgabe war damit klar - eine neue Lok bauen. Der chö ließ sich derweil viele schöne Formeln durch den Kopf gehen, aus denen am Ende ein Streckennetz entstehen sollte, auf dem die Lok dann fahren kann.

Ich hatte zu diesem Zeitpunkt noch jede Menge Arbeit mit der Prüfungsvorbereitung und einem umfangreichen Geschenk zu einer wichtigen Familienfeier, und so stand im Frühjahr 2004 der erste Entwurf für das Streckennetz, ohne daß auch nur ein Dreieck für die Lok neu modelliert war...

Radsatz

Im April 2004 ging es dann auch endlich los mit der Lok. Ich begann mit der Modellierung von einfachen Primitiven, die wir brauchen würden, Zylinder, Quader, Kreissegmente usw. OpenGL stellt sowas ja nicht direkt zur Verfügung, und die Primitive aus der glut-Bibliothek waren für unsere Zwecke zu eingeschränkt. Das erste Ergebnis war dann ein neuer Radsatz (der allerdings noch gehörig umgebaut werden mußte, bevor er in einer einigermaßen endgültigen Form war). Bei dem im Screenshot zu sehenden Entwurf stimmen weder die Abmessungen noch die Anzahl der Speichen, und viel zu detailliert ist das Ganze auch noch.

Zu diesem Zeitpunkt war die Grobplanung für das Streckenmodul schon recht weit gediehen, inklusive fertiger Schienen und Schwellen. Die meiste Zeit ging in diesem Bereich für Erweiterungen drauf, um die komplexen Baumöglichkeiten (Weichen, Kreuzungen usw.) alle unter einen Hut zu kriegen.

Rahmen

Im Spätsommer 2004 war dann das neue Modell schon relativ deutlich als Lok zu erkennen, d.h. Räder, Kessel und Führerstand waren prinzipiell fertig, und auf den Gleisen rollen konnte das gute Stück auch schon. Dummerweise beanspruchte dann erstmal wieder das Studium viel Zeit, deswegen konnte es mit der Lokmodellierung erst im Januar 2005 weitergehen. Der Screenshot vom 10.1. zeigt erste Ansätze des Rahmens (der später an diesem Tag auch beendet wurde). Zu diesem Zeitpunkt besaß ich dann auch nach langer Suche endlich ein brauchbares Buch mit vielen notwendigen Details und genauen Zeichnungen, ohne die die Lok nie fertig geworden wäre.

Etwa zur gleichen Zeit wurde deutlich, daß der Ansatz für die Schienen viel zu zeitaufwendig war, und so hatte der chö gut zu tun, sämtliche Routinen auf einen besseren Ansatz umzubauen.

Triebwerk

Die letzte große Hürde für die Lok war das Triebwerk. Dieses sollte diesmal richtig gut modelliert werden, so daß sich alles tatsächlich so bewegte, wie man es vom Original her erwartet, ohne komisches Gewackel durch approximierende Winkelfunktionen. Der erste Schritt dazu war das Wegschmeißen aller Sinüsse zugunsten der Berechnung der Koordinaten der Gelenke über Kreisgleichungen. Das ist nicht nur präzise, sondern auch noch vergleichsweise schnell. Nachdem die Gleichungen alle standen, wurde das komplette Triebwerk mit Linien dargestellt, die dann durch "richtige" Stangen ersetzt wurden. Hier im Screenshot vom 24.01. sind beide Versionen zu sehen, das Triebwerk wurde dann noch am gleichen Tag fertig.

Detailgrad
Oberleitung

Der chö ist im Gegensatz zu mir eher Fan der modernen Eisenbahn, und das bedeutet natürlich elektrisch mit Strippe über den Gleisen. Das ging zwar (zumindest auf meinem Rechner mit der damals verwendeten Grafikkarte) tierisch auf die Framerate, aber irgendwann sollte mal ein ICE modelliert werden (es blieb bei der Idee). Jedenfalls war am 30.1. Fahrdraht da, und Weichenlaternen gabs plötzlich auch (der Knubbel rechts in der Mitte neben der Weiche).

Nach dem Triebwerk hatte ich erstmal die Schnauze voll vom Modellieren und baute nur noch ein Grundgerüst für den Tender, damit chö die Routinen für die Zugbildung bauen konnte. Außerdem wurde in dieser Phase mit dem Feintuning des Detailgrads begonnen, da die Framerate teilweise in einstellige Bereiche abrutschen wollte. Wir hatten uns geeinigt, vier Detailgrade zu modellieren, zwischen denen dann umgeschaltet werden würde. Um die einzelnen Detailgrade zu unterscheiden, wurden die Fahrzeuge mit passenden knallbunten Farben versehen.

Lok
Tender

Während dann alle anderen Studenten rundrum mit Prüfungen zu kämpfen hatten, konzentrierte ich mich ausnahmsweise mal auf was anderes, nämlich die Fertigstellung der Lok. Dazu fehlten noch Windleitbleche, die Bremsen und diverse Anbauteile. Außerdem mußten noch die korrekten Farben eingesetzt werden. Das Ergebnis kann sich denke ich sehen lassen.

An einem einzigen Tag wurde dann auch der Tender fertig, womit die Modellierung vorerst ein Ende hatte. Es fehlten einfach die notwendigen Unterlagen, um ein paar ordentliche Reisezugwagen zu modellieren, denn in dem Maß wie die Lok perfektioniert wurde, stiegen natürlich auch die Ansprüche an die Qualität der restlichen Objekte.

Die nächste Sache war die Umsetzung einer Physikengine, um eine halbwegs realistische Bewegung der Fahrzeuge darzustellen, inklusive Hängenbleiben an zu steilen Steigungen und durchdrehenden Rädern beim Beschleunigen. Ich bastelte dafür eine sehr einfache Engine basierend auf der Berechnung der Zugkraft, so wie sie auch in TTDPatch genutzt wird (und da behaupte noch einer, Spielen würde nicht bilden). Nach einer gewissen Feinjustierung funktionierte das dann auch recht manierlich.

Terrain
Quadtree

Der chö hingegen hatte ein ganz neues Gebiet für sich entdeckt - Terraindarstellung. Das konnten wir natürlich hier auch gut gebrauchen, der Zug soll ja nicht durch den luftleeren Raum fahren. Als Appetitanreger gab es deswegen erstmal ein Bild von einem ersten Geländeentwurf.

Der hier zu sehende Quadtree-Ansatz für das Gelände mußte kurz darauf einem ROAMing-Ansatz weichen, aber das sollte dauern, bis alles so funktionierte, wie wir uns das dachten. Der Teufel lag eben wie so oft im Detail.

Ich beschäftigte mich derweil mit einem Baukasten für Reisezugwagen, um verschiedene Waggons aus vorgefertigten Komplexen zusammensetzen zu können. Dazu gehörten ganze Abteile, Fenster, Türen, Großraumwaggons bzw. entsprechende Teile dafür und diverses mehr. Natürlich wurde auch die 1. und 2. Klasse passend berücksichtigt.

Waggons
Waggons
Waggons

Der erste Screenshot zeigt einen Eindruck, es fehlte aber noch die gesamte Innenausstattung, Sitzbänke, Gepäckablagen und so weiter. Das wurde ebenfalls baukastenmäß geplant und sollte dann mittelfristig umgesetzt werden.

Mittelfristig war in diesem Fall genau ein Tag... Jetzt fehlten nur noch ein paar Kleinigkeiten wie Türgriffe etc. Sieht doch recht beeindruckend aus, und so langsam machte es auch richtig Spaß, mehrere Waggons an die Zug zu hängen und einen schweren D-Zug zu simulieren.

Eine Woche später war das Feintuning der Waggons vorerst abgeschlossen (sie haben sogar bewegliche Türen, die per Tastendruck in einer Animation geöffnet und geschlossen werden, sogar nach Seiten getrennt, es soll ja keiner zur falschen Seite aussteigen), und so langsam kamen wir in ein Stadium, wo man mal was vorzeigbares hatte. Die Lok hatte inzwischen auch das "Rauchen" gelernt, und eine Testversion des Terrains stand ebenfalls. Allerdings wurde die Todo-Liste eher länger als kürzer... Am vordringlichsten war in dem Moment das Verbessern der Partikelengine für den Rauch, damit das synchron zur Lokbewegung funktioniert, sonst siehts ja blöd aus.

Zu Ostern 2005 gab es dann eine Preview-Version als proof of concept. Danach stellten wir die Arbeit an dem Projekt ein, da das Studium in Form der Studienarbeit zu viel Zeit beanspruchte, und es abgesehen von weiterer Modellierung nichts wirklich sichtbares zu tun gab - und darauf hatte ich nach dem bereits modellierten Kram keinen Bock mehr, schließlich macht sich das ohne entsprechende 3D-Tools recht mies.

Download der Previewversion - Achtung: Keine Grafikbibliotheken dabei, und auch ziemlich buggy, Benutzung auf eigene Gefahr!