Kapitel 8
PolyMaster Special
An dieser Stelle geht mein herzlicher Dank an Thomas Pilder, der die folgenden Ausführungen erst möglich gemacht hat !
8.1. Grundlagen:
Als "Alpha-Transparenz" bezeichne ich Flächen, die keine 100%ige Transparenz (Durchsichtigkeit) haben. Ein Beispiel dafür sind farbig getönte Windschutz- und Seitenfenster von Autos, Lokomotiven und Flugzeugen, bis hin zum althergebrachten "Milchglas" der Eingangstür eines Wohn- und Geschäftshauses.
Der Ausdruck "Alpha-Transparenz" rührt her vom sogenannten "Alphakanal" einer Texturdatei.
Eine Windows-Bitmap (eine standardisierte
Pixelgrafik) kann man in vielen verschiedenen Dateiformaten unkomprimiert und
verlustfrei sowie komprimiert und verlustbehaftet speichern. Diese Grafikdateien
speichern eine Farbtiefe von bis zu 24 Bit (16.777.215 Farben) problemlos. Außer
einigen speziell auf die Grafikprogramme zugeschnittenen Dateiformaten wie z.B.
*.psd für den Adobe Photoshop oder *.psp für den Jasc Paint Shop Pro, die
Alphakanäle und zusätzliche Layer (Ebenen) speichern können, gibt es meines
Wissens nur noch ein einziges Dateiformat, welches zusätzlich zu den
24 Bit breiten
Bildinformationen einen 8 Bit breiten (256 Graustufen-)
Alphakanal speichern
kann:
Das TrueVision Targa - Format (*.tga).
TGA-Dateien können einen Informationsgehalt von
32 Bit speichern !
Der Alphakanal steuert also die Intensität von transparenten und semitransparenten Bildbereichen, und der TSM wendet ihn bei Parts und Polygonen an, die den Alph*- und Trans*-Materialien zugeordnet sind.
Bei der Konvertierung in den TS, also bei der Erzeugung der Shape-Datei *.s, macht der TSM jedoch gravierende Fehler, die sich u.a. in den verschwindenden Streckenobjekten hinter semitransparenten Fensterscheiben bemerkbar machen (siehe Kapitel 7.9.).
Nun gibt glücklicherweise einen begabten Programmierer und TSM-Konstrukteur, der sich diesem Problem angenommen und es geschafft hat, die TSM-Bugs wenigstens aus dem Endprodukt zu entfernen: Die manuelle Nachbearbeitung der Shape-Datei macht's möglich !
Um die nachträgliche Änderung des Shapes möglichst einfach zu gestalten und jedem TSM-Entwickler zugänglich zu machen, hat Herr Thomas Pilder ein Programm geschrieben und zum kostenlosen Download bereitgestellt: Den PolyMaster.
Den PolyMaster gibt es in
zwei verschiedenen Versionen, der normalen und den PolyMasterPlus,
beide zu diesem Zeitpunkt in der Versionsnummer 2.10 vom 06.Juni 2004.
Näheres über die Unterschiede zwischen den Versionen lesen Sie bitte auf
der Homepage nach.
Hinweise:
- Die manuelle
Nachbearbeitung, insbesondere die weitere Verbreitung einer fremden Shape-Datei
ist ohne die Zustimmung des Urhebers verboten !
- Die Benutzung des PolyMaster erfolgt auf eigene Gefahr, der Autor
haftet nicht für Schäden an den damit geänderten Dateien !
- Ich empfehle ausdrücklich, die dem Programm beiliegende Word-Datei zu lesen !
Nachdem Sie den PolyMaster
heruntergeladen haben, entpacken Sie einfach alle Dateien des Zip-Archivs in
einen Ordner Ihrer Wahl.
Nach dem Programmstart erscheint folgendes Bild:
8.2. Beseitigung des Alphatransparenz-Fehlers:
Da unsere Shape-Datei
"Tutoriallok.s"
komprimiert ist und deshalb vom PolyMaster
nicht gelesen werden kann, müssen wir sie zuerst
dekomprimieren.
Wir klicken also auf den Button Compress/Decompress .s ....
.... und suchen im folgenden Dialog unsere Shape-Datei
"Tutoriallok.s"
aus dem Ordner
"...\Trainset\Tutoriallok" heraus:
Der PolyMaster
verwendet nun das mit dem Train Simulator mitgelieferte Tool
"...\Train
Simulator\UTILS\FFEDIT\ffeditc_unicode.exe"
in der Windows-Kommandozeile, um die Shape-Datei zu dekomprimieren. Nach Ablauf
der Stapelverarbeitung drücken Sie bitte eine beliebige
Taste, um den Kommandozeilen-Interpreter zu schließen.
Erst jetzt können wir die Shape-Datei zur Manipulation öffnen:
In der großen Tabelle links erscheinen die "intimsten" Geheimnisse unseres
Modells, die Elemente.
Deutlich zu sehen ist, welchem Elternpart sie angehören, aus welchem
Material sie bestehen, mit welcher Textur sie belegt sind sowie die
jeweilige Anzahl der Flächen (Faces) und welchem
LOD die Elemente angehören. Alle Elemente gehören zum LOD 1,
der wiederum bei einer Entfernung von 2000m sichtbar wird.
LOD bedeutet entweder
soviel wie "Level Of Detail" (dt.: Detailstufe) oder "Level Of
Distance" (dt.: Entfernungsstufe), hier scheiden sich die Geister.
Es gibt sicherlich andere TS-Entwickler, die ein LOD besser erklären können als
ich, deshalb lasse ich es hiermit vorerst dabei bewenden.
Das erste Element besteht aus
allen zusammengefassten Parts, die dem Material
SolidNorm zugeordnet sind, wie z.B. Main, die Holme und deren Holmseiten
sowie die Bögen.
Die Elemente 2 und 3 dürften hier alle Parts sein, die zum Innenraum der
Führerstände gehören: AlphNorm-
Bei den letzten drei Elementen (AlphNorm+)
handelt es sich um die Front- und Seitenteile der Führerraum-Außenseiten.
Ganz unten im Programmfenster lesen wir den Pfad- und Dateinamen unseres Shapes und aus wieviel Zeilen die *.s-Datei besteht.
Wir müssen nun alle Elemente, die einem Alph*-Material zugeordnet sind,
einem neuen sog. Subobjekt zuordnen. Das
neue Subobjekt muss als "sortiert"
gekennzeichnet werden !
Dazu tragen wir bei den Elementen 2 bis 5 in der Spalte L 1 eine
zwei ein. Wir können beobachten, dass das
neue Subobjekt in der kleinen Tabelle Subobjekte als
neue Zeile mit der Nummer 2 erscheint. In
dieser kleinen Tabelle markieren wir das zweite
Subobjekt in der Spalte L 1 mit einem kleinen "x".
Nachdem wir das alles gemacht haben, betätigen wir
nacheinander die Buttons LOD's/Subobjekte erzeugen,
speichern die S-Datei unter dem gleichen Namen
"Tutoriallok.s"
wieder ab (überschreiben !) und komprimieren
das Modell, indem wir nochmals auf Compress/Decompress .s klicken.
Hinweis:
Eine
Sicherungskopie des Shapes vor der Arbeit mit dem PolyMaster
anzulegen, wird natürlich dringend empfohlen !
Dies ist in unserem Falle aber nicht notwendig, weil erstens der PolyMaster
selbst eine Sicherungskopie anlegt und wir natürlich jederzeit und so oft wir
wollen mit dem TSM ein neues Shape erzeugen können !
Erneut läuft die Stapelverarbeitung ab, welche wir mit einem Tastendruck
beenden:
Wir machen eine ausgiebige Probefahrt mit der Lok und testen nach Möglichkeit
die verschiedenen Detailstufen, Bildschirmauflösungen und Farbtiefen des TS aus.
Auf dem folgenden Bildausschnitt (alle TS-Optionen eingeschaltet, alle
Schieberegler ganz rechts, Auflösung 1600 x 1200 x 32) ist nun das Haus beim
Blick durch die Fenster zu sehen.
Die Modifikation mit dem
PolyMaster
war also erfolgreich:
8.3. Optimieren der Subobjekte:
Wir erinnern uns an den weiter oben gezeigten Screenshot, der die Erstellung des neuen Subobjekts anzeigt. Hier ein Bildausschnitt davon:
Das erste Subobjekt besteht aus
913 Vertices, das zweite aber auch, obwohl wir die Elemente mit den
Alphatexturen eindeutig diesem zweiten Subobjekt zugewiesen haben.
Nun, dies ist eine Eigenart des PolyMaster. Um das zu ändern, müsste ThoPil
schon eine ganze Menge an kostbarer Zeit in die Weiterentwicklung des Programms
investieren. Das wäre zu diesem Zeitpunkt noch irrelevant.
Wir behelfen uns deshalb auf eine
andere Weise, indem wir einen neuen Part
erstellen, diesem das Material "AlphNorm"
(ohne Plus und Minus) zuweisen und ihn mit "Main" verlinken.
An diesen neuen Part linken wir alle Parts, die Alphatexturen enthalten und
bisher mit "Main" verknüpft waren.
Wir fügen also in die Part-Hierarchie eine dritte Ebene
ein:
Der neue Part
"Main_Alpha" wird lediglich aus einem
Polygon bestehen (2 Faces bzw. 2 Dreiecken) und für den User unsichtbar sein. Wir
erstellen ihn aus einer einfachen Box, indem wir die überflüssigen Polygone und
Vertices löschen. Und das wollen wir jetzt machen.
Starten wir also den TSM und laden
das
Projekt "Tutoriallok_04.dst".
Zuerst sichern wir unsere Arbeit, denn wir
speichern jetzt das Projekt mit File - Save As... unter dem Dateinamen
"Tutoriallok_05.dst"
ab:
Wir erstellen also mit Part - Add - Box... einen neuen Würfel mit einem
Meter Seitenlänge, setzen die Origin Position in das
Part-Zentrum und legen die Y-Position der Box auf
2.5m fest:
In der gezoomten
Expanded View der Seitenansicht sollte es dann so aussehen:
Wir schalten in den Poly Mode
und
löschen mit
und der
Taste [Entf] alle Polygone, die wir nicht benötigen.
Das wären alle Seitenflächen des Würfels und das obere Poly.
Das Bodenpolygon wollen wir behalten. Und so
sieht's aus:
Jetzt aktivieren wir den Point Mode
und
stellen "verblüfft" fest, dass in unserem neuen Würfel noch einige Vertices
vorhanden sind, die nicht mehr benötigt werden, da wir ja alle angrenzenden
Polygone gelöscht haben.
Mit dem Menübefehl Part - Remove Orphaned Points - Current Part
löschen wir auch diese
überflüssigen Punkte (engl.: orphaned =
überflüssig; engl.: to remove = entfernen).
Wir bekommen eine Meldung angezeigt, dass vier Punkte eliminiert wurden:
Genau wie die Funktion Snap To Grid ist dieser Befehl mit Vorsicht anzuwenden, allzu schnell kann bei unüberlegter Handlungsweise die gesamte Objektstruktur zerstört werden. Es hat sich als sehr hilfreich erwiesen, vor der Anwendung das Projekt zu speichern !
Wir gehen zurück in den Part
Mode .
Dann wählen Part - Center Axis - To Object, um den Pivotpunkt auf den
Part zu zentrieren:
Mit den Part Texture Assignments ([F4]) mappen wir die
Bottom-Eigenschaft des Parts auf Schwarz
in der Datei "Tutoriallok_01.tga".
Im Dialog Part Properties (Taste [F2])
linken wir unseren neuen Part "Main_Alpha"
an "Main" und weisen ihm das Material "AlphNorm"
zu:
Jetzt verschaffen wir uns zunächst eine Übersicht über die bisher erstellten
Parts, indem wir den Menübefehl Part - Create Part File Merge List...
ausführen. Damit erzeugen wir eine einfache Textdatei. Ferner werden
alle Parts automatisch als
*.dsp
im Projektverzeichnis gespeichert.
Bitte wählen als Dateinamen
"MergeList1.txt" (engl.: to merge =
zusammenführen, zusammenfügen) und klicken Sie auf Speichern.
Wir minimieren den TSM (nicht schließen !)
und öffnen die Textdatei mit einem Doppelklick in dem auf Ihrem System
voreingestellten Editor. Es werden uns alle Parts in deren
Erstellungsreihenfolge angezeigt, ganz im Gegensatz zur Part List [F3],
die die Parts in alphabetischer Reihenfolge anzeigt.
Ich habe in der folgenden Grafik alle Parts mit einem roten Rahmen markiert,
denen Alpha-Materialien zugewiesen sind:
Alle diese Parts müssen wir jetzt an
den Part "Main_Alpha" linken. Dazu
wählen wir nacheinander mit
oder mit
[N] die Parts aus und stellen jeweils mit [F2] im Listenfeld Part
Parent von Main auf Main_Alpha
um.
Bitte gehen Sie hierbei sehr sorgfältig vor
und überprüfen Sie ggf. mehrfach die Verlinkung aller Parts.
Wenn wir bei Main anfangen, dann wäre Cab_x_hinten der erste Part,
der umgestellt werden muss:
Wenn wir damit fertig sind,
exportieren wir das Modell mit der Taste [C] in den Train Simulator
und speichern
das
Projekt.
Die beiden Processing Options für die Konvertierung der Texturen brauchen
nicht angewählt werden.
Sollte Ihnen bei der Konvertierung folgende Fehlermeldung angezeigt werden, so fehlt irgendwo eine Verlinkung. Dann bestätigen Sie den Dialog mit Nein und überprüfen bitte nochmals mit [F2] alle Part Parents !
Ich übersetze mal kurz diese Fehlermeldung:
"Objektprüfung gab
einen Fehler zurück:
Alle Parts bis auf einen müssen einen Elternpart haben !
Fortfahren ?"
Mit diesem einen Part ist natürlich "Main" gemeint. Sollte das Modell erwartungsgemäß erfolgreich und ohne Fehlermeldung erstellt worden sein, so können wir den TSM beenden und den PolyMaster oder den PolyMasterPlus starten.
Wir dekomprimieren die Datei "Tutoriallok.s" und öffnen sie:
Überrascht ?
Die Elemente-Liste ist um viele
Einträge angewachsen, die Tabelle der Subobjekte zeigt aber nur noch eine Summe
von 917 Vertices an !
Vormals waren es zweimal 913 Vertices, hier
haben also gut 50 Prozent eingespart, was unserem Rechenknecht und damit
der Performance im Train Simulator natürlich zugute kommt !
913 Vertices + vier Vertices (unser neuer Part "Main_Alpha") = 917 Vertices.
Bitte versehen Sie nun erneut alle Elemente, die ein "AlphNorm" im Namen tragen in der Spalte L1 mit einer zwei und in der kleinen Tabelle das zweite Subobjekt mit einem kleinen "x".
388 Vertices entfallen dabei auf das erste Subobjekt, nämlich "Main" und alle Parts mit Solid-Materialien. 529 Vertices verbleiben für das Subobjekt Nummer 2, das sind alle Parts mit Alpha-Material. Zusammen ergibt das 917 Punkte:
Dann betätigen Sie nacheinander die Buttons
- LOD's/Subojekte erzeugen
- Speichern
- Compress/Decompress .s
- Weg hier!
Das war's vorerst mit dem PolyMaster Special.
Am Ende des Tutorials werden wir aber die Lok nochmal mit diesem Tool bearbeiten und dabei vielleicht weitere Tricks kennenlernen. Nun helfen wir der schwebenden Lok auf die Beine und bauen die Drehgestelle, die Räder und die Achsen.