Repaint-Tool - Informationen für Fahrzeugentwickler

Aus OMSIWiki
Wechseln zu:Navigation, Suche

Hinweis: Dieser Artikel wurde noch nicht ins Englische übersetzt!

Gegenstand dieses Artikels sind Hintergrundinformationen über das Repaint-Tool. Hierbei richten wir uns insbesondere an Fahrzeug-Entwickler, welche für ihr Fahrzeug ein Set an Templates erstellen wollen, sodass das Repaint-Tool auch für ihr Fahrzeug nutzbar ist, ebenso aber auch an interessierte und ambitionierte Repainter, die am internen Ablauf des Repaint-Tools interessiert sind und ggf. vorhandene Templates anpassen möchten.

Theorie: Mathematische Operationen bei der Verarbeitung von Grafiken

Bei der Beschreibung des Repaint-Tools wird häufig mit mathematischen Formeln hantiert. Der Laie fragt sich da: Wie soll man zwei Bilder addieren - oder gar multiplizieren? Was ist Rot + Blau ??

Wie fast immer, wenn Mathematik im Spiel ist, ist es erst verwirrend - aber wenn man es aber einmal kapiert hat, dann ist es sonnenklar.

Also, wie addiert man zwei Bilder?

RGB-System

Bekanntlich (falls nicht, dann bitte Wikipedia bemühen!) werden solche Graphiken wie die auf Bildschirmen aus den Farbkomponenten Rot (R), Grün (G) und Blau (B) zusammengesetzt - kurz: RGB. Das RGB-System ist additiv, das heißt nichts anderes, als dass die resultierende Farbe beim Mischen heller wird. Bei diesem System ergeben R + G = Gelb (Y), R + B = Magenta ("pink", M) und G + B = Cyan (so ähnlich wie türkis, nur aggressiver, C). Alle drei ergeben weiß, wenn alle drei dagegen nicht vorhanden (=0) sind, dann schwarz.

2012 0728 01 Additive Farbmischung.png

Jeder Pixel benötigt also drei Werte zur Darstellung: den roten Farbwert, den grünen und den blauen. Alle drei Farbwerte können eine Zahl zwischen 0,0 (0%) annehmen oder 1,0 (100%). Sehr oft, insbesondere in Photobearbeitungsprogrammen und sonstigen Bildprogrammen wie Paint, sieht man für den Maximalwert 255. Das ist aber eher hinderlich für das Verständnis der mathematischen Operationen. Deshalb bleiben wir beim Zahlenbereich von 0,0 bis 1,0.

Kanäle

Da bekanntlich jedes Bild aus vielen Pixeln und also jeder Pixel aus drei Werten besteht, kann man nun den Kanal definieren: Es ist die Gesamtheit aller Pixel einer Farbe. Der rote Kanal besteht also nur aus den einzelnen Rot-Anteilen der jeweiligen Pixel. Dementsprechend gibt es den blauen Kanal und den grünen Kanal. Außerdem kann man beliebig viele weitere Kanäle definieren - in den üblichen Dateiformaten aber gibt es entweder nur die rot/grün/blauen Kanäle (z.B. Bitmap, JPEG) oder allenfalls einen vierten Kanal, der dann Alpha-Kanal definiert wird. Dieser ist im normalen Bild erstmal unsichtbar - kann (muss aber nicht!) auch für Transparenzen genutzt werden - oder aber für die Stärke der Ausprägung des Glanzes. Der Kanal als solches ist aber erstmal nur als Datenmenge vorhanden, ohne dass er eine bestimmte Bedeutung hat.

2012 0728 02 Kanäle.png

Mathematische Operationen

Wie sieht nun also eine Addition aus? Eigentlich ganz einfach: Für jeden Pixel werden die genannten Farbwerte von 0,0 bis 1,0 addiert. Üblicherweise "je Kanal", aber das kann natürlich nach Belieben variiert werden.

Beispiel 1: Dunkelrote Fläche (RGB = 0,5 / 0,0 / 0,0) wird mit einer zweiten dunkelroten Fläche addiert: Heraus kommt eine grellrote Fläche (RGB = 1,0 / 0,0 / 0,0):

2012 0728 03 Operation1.png

Beispiel 2: Dunkelblaue Fläche (RGB = 0,0 / 0,0 / 0,5) wird kanalweise mit einer violetten ("dunkelmagenta", also RGB = 0,5 / 0,0 / 0,5) Schrift addiert: Heraus kommt eine blauviolette Schrift (RGB = 0,5 / 0,0 / 1,0) auf dunkelblauem Grund:

2012 0728 03 Operation2.png

Man erkennt also schnell: Durch Addition hellen sich die Flächen gegenseitig auf.

Nun kann man alle erdenklichen Operationen aus der Mathematik übertragen. Für das Repaint-Tool von Relevanz ist aber (abgesehen von Wenn-Dann-Konstruktionen) nur die Multiplikation. Da beide Zahlenwerte aber nur im Bereich von 0.0 bis 1.0 laufen, bewegt sich sinnvollerweise auch das Ergebnis nur im Bereich von 0.0 bis 1.0.

Außerdem gilt: Eine Multiplikation zweier Zahlen kleiner als 1.0 ergibt als Resultat eine Zahl, die kleiner ist als die beiden Operanden, die eingeflossen sind! Das heißt: Der resultierende Pixel ist stets dunkler als die beiden miteinander multiplizierten Pixel.

Beispiel 3: Rote Fläche (RGB = 1,0 / 0,0 / 0,0) wird mit einem Foto multipliziert: Heraus kommt der rote Kanal des Fotos, da ja der blaue und grüne mit Null multipliziert wurde, daher wegfällt, und der rote mit Eins multipliziert wird und daher unverändert bleibt:

2012 0728 03 Operation3.png

Beispiel 4: Graue Fläche (RGB = 0,5 / 0,5 / 0,5) wird mit einem Foto multipliziert: Heraus kommt eine abgedunkelte Version des Fotos. Der Faktor der Abdunklung entspricht dem Farbwert der grauen Fläche:

2012 0728 03 Operation4.png

Wie arbeitet das Repaint-Tool?

Der Sinn des Repaint-Tools ist einleuchtend: OMSI benötigt für das Fahrzeug eine Außentextur, die sowohl den Anstrich und die Farbgebung definiert als auch Oberflächenbeschaffenheiten, Fensterausschnitte, Zierleisten usw. Außerdem enthält die Außentextur den Alpha-Kanal, der bei unseren Fahrzeugen für die Reflexionseigenschaften genutzt wird, jedoch je nachdem, wie der Fahrzeugbauer den Bus erstellt hat, auch für Transparenzen genutzt werden kann.

Möchte man nun einen neuen Anstrich oder eine Werbung erstellen, so wäre es ideal, wenn man einfach nur den Anstrich selbst gestalten muss - ohne Rücksicht auf das, was ansonsten noch in die Textur muss, also jene Oberflächenstrukturen und Alpha-Kanal.

Hier setzt das Repaint-Tool an: Es "presst" gewissermaßen aus der selbstgestalteten Anstrichdatei und den sog. Templates die fertige Texturdatei, wobei es sich an der Konfigurationsdatei orientiert, die man für diesen Vorgang zuvor auswählen muss.

Übersicht der genutzten Dateien

Die für den "Pressvorgang" genutzten Anstrichdateien liegen sinnvollerweise zusammen mit den Konfigurationsdateien in einem busspezifischen Repaint-Ordner (z.B. SD200), welcher einen Unterordner "templates" hat, in welchem sich die Templates befinden. Im folgenden werden die nötigen Dateien erklärt:

Konfigurationsdatei

Die Konfigurationsdateien haben die Dateiendung *.rpc und können mit dem Editor geöffnet werden. Ihre Syntax ist sehr simpel:

templates\SD81_01_BS.bmp
templates\SD80_01_AL.bmp
templates\SD80_01_MA.bmp
templates\SD81_01_AD.bmp
templates\SD81_01_MU.bmp

Genutzt werden nur die die ersten fünf Zeilen, alles, was danach folgt, wird ignoriert. Es handelt sich hierbei um die Pfadangaben (relativ zum Ort der Konfigurationsdatei) der verschiedenen Templates, die genutzt werden sollen:

  1. Basis-Template
  2. Alpha-Template
  3. Masken-Template
  4. Additions-Template
  5. Multiplikations-Template

Darunter können wie gesagt Kommentare stehen, z.B. bei unseren Konfigurationsdateien der "Referenzwert", der später erklärt wird, wenn es ums Anlegen von Templates geht.

Anstrichdatei

Die Anstrichdatei wird für jede Lackierung individuell erstellt. Selbst wenn hier nur einfachste Anwendungen benutzt werden (z.B. Paint) kann man dank des Repaint-Tools sehr gute Ergebnisse erzielen - weil ja nur die Werbung oder der Anstrich selbst erstellt werden muss.

Hier ein Ausschnitt der Drospa-Vorlage. Das Rauschen ist nur als Kopierschutz aufgetragen - natürlich sind die Anstrichdateien ganz glatt! :)

2012 0729 08 Anstrichdatei Pop.png

Das Repaint-Tool interpretiert die Farbe Magenta (also RGB = 1.0, 0.0, 1.0 oder 255 / 000 / 255) als transparent. Auf diese Weise kann man sehr leicht Teilwerbungen erstellen, bei denen der Untergrund teilweise noch erkennbar ist:

2012 0729 07 Anstrichdatei Banderole.png

Wichtig: Das gilt NUR für die Farbe "perfektes" Magenta. Wenn also die Farbe Magenta tatsächlich im Anstrich genutzt werden soll, dann verwendet man am Besten "fast-perfektes" Magenta, also z.B. RGB 254/000/255.

Wichtig: Genau aus diesem Grund darf man niemals beim Erstellen der Anstrichdatei mit der Funktion Anti-Alias direkt auf das Magenta als Untergrund malen! Ansonsten entstehen im Bereich der (schrägen) Kante Mischpixel aus Magenta und der gemalten Farbe, welche nachher nicht transparent werden:

Man sollte die gesamte Fläche zunächst in der Zielfarbe (im Falle unserer Doppeldecker beige) einfärben, dann mit Anti-Alias die freien Formen zeichnen und schließlich die reinbeigen Flächen in Magenta umfärben ohne dabei Anti-Alias oder Toleranzen zu nutzen:

2012 0729 09 AntiAlias.png

Dies erkennt man auch sehr gut am Beispiel der Pfennigs-Banderole: Dort sind auch die unmittelbaren Rand-Mischpixel der Heckklappenbeschriftung mit diesem Verfahren beige geblieben, erst dann beginnt die magenta Farbe.

Masken-Template

Das Masken-Template schränkt den Bereich, der bemalt werden kann, weiter ein: Über die Maske werden insbesondere die Fenster, Zielanzeigen, Beschriftungen oder die berühmt-berüchtigten beigen Umrandungen der Zielschilder "freigehalten":

2012 0729 04 Maskentemplate.png

Zu beachten ist, dass die Maske auch Graustufen beinhalten darf: Dort wird dann der Anstrich nur teilweise aufgebracht.

Ansonsten gilt: weiß = Anstrich erlaubt und schwarz = Anstrich verhindern.

Sollen die Fenster beklebt werden können, so sind diese natürlich in der Maske wieder weiß einzufärben:

2012 0729 05 Maskentemplate Fenster.png

Basis-Template

Das Basis-Template ist der Urzustand der Textur, wenn kein Anstrich verwendet wird. Auf ihn wird zurückgegriffen, wenn entweder durch die Maske oder durch magenta Einfärbung der Anstrichdatei kein Anstrich aufgebracht werden soll:

2012 0729 03 Basistemplate.png

Mit dieser Unterscheidung lässt sich tricksen: Wenn nämlich bestimmte Dinge wie Aufkleber verschwinden sollen, wenn ein Anstrich aufgebracht wird, dann kann man diese aus den folgenden Templates herausnehmen, im Basistemplate aber belassen, sodass sie nur dann sichtbar sind, wenn mittels Magentaeinfärbung kein Anstrich aufgebracht wird. Genauso haben wir es mit dem SD200-MAN-Grill und -Logo gemacht, der ja bei Vollanstrichen abgenommen wurde. Der Schatten des Grills und das MAN-Logo sind nur in der Basistextur vorhanden und verschwinden, wenn die Anstrichdatei dort nicht magenta ist.

Alpha-Template

Das Alpha-Template liefert den Alpha-Kanal für die finale Textur. In der aktuellen Version des Repaint-Tools gibt es bisher keine Möglichkeit, seitens der Anstrichdatei auf den Alpha-Kanal einzuwirken. Dies geht nur, indem ein abweichendes Alpha-Template erstellt wird und eine dazugehörige individuelle Konfigurationsdatei.

Bei unseren Fahrzeugen beeinflusst der Alphakanal aber die Reflexionseigenschaften (Envir-Map), welche nur dann manipuliert werden müssten, wenn glänzende Farben wie silber, gold oder kupfer dargestellt werden sollen.

2012 0729 02 Alphatemplate.png

Das Beispiel ist gegenüber dem realen Alphatemplate des SD200 aufgehellt, damit es besser erkennbar ist.

Additions-Template

Das Additions-Template wird, wie der Name schon sagt, auf die Anstrichdatei addiert, sodass diese aufgehellt wird.

Demzufolge ist sie überwiegend schwarz, enthält aber alle Reflexionen und ähnlich Details:

2012 0729 01 Additionstemplate.png

Multiplikations-Template

Dementsprechend wird das Multiplikations-Template mit der Anstrichdatei multipliziert, sodass es diese abdunkelt.

Sie ist also überwiegend hell und enthält alle dunklen Flächen, Schattierungen und Konturlinien.

Wenn die Möglichkeit gegeben werden soll, dass die Fensterflächen überklebt werden können, dann müssen diese natürlich auch entsprechend hell eingefärbt werden:

2012 0729 06 Multiplikationstemplate.png

Kombinationsoperationen

Nachdem nun fast schon komplett erklärt wurde, wie das Repaint-Tool arbeitet, schreibe ich hier noch für das genaue Verständnis die Formel, die verwendet wird:

Für jeden Pixel wird unterschieden, ob dieser auf der Anstrichdatei magentafarben ist.

  • Falls ja wird an dieser Stelle einfach der Farbwert des Basis-Templates genutzt.
  • Falls nein lautet die Formel für jede Farbe R, G und B: Resultat = Basistemplate * (1 - Maskentemplate) + ( Additionstemplate + Multiplikationstemplate * Anstrichdatei ) * Maskentemplate

Nachdem die ersten beiden Abschnitte recht theoretisch waren, wird nun auf die Praxis eingegangen:

Vorbereiten des eigenen Fahrzeuges zur Nutzung des Repaint-Tools

Für Fahrzeugentwickler gibt es mehrere Dinge zu beachten.

Überlegung zur Nutzung von Alphakanal und Transparenzmap

Üblicherweise benötigt man einen Kanal für Transparenzen und einen Kanal für die Reflexionsintensität (Environmentalmap). Ersteren benötigt man, um ggf. Werbungen über Fenster darstellen zu können, den zweiten dafür um Gummi (stumpf), Metall (leicht reflektierend) und Chrom oder silberne Anstrichelemente (stark reflektierend) unterschiedlich reflektierend darzustellen.

Es hat sich so ergeben, dass wir bei unseren Fahrzeugen für die Reflexionsintensität den Alpha-Kanal der Haupttextur benutzen und für etwaige Transparenzen eine separate Transmap. Bei dieser Variante sollte man auch bleiben; es sei denn, man spart sich den Reflexionskanal und macht den ganzen Bus entweder matt oder komplett gleichmäßig reflektiv. Dies jedoch ist beides nicht sonderlich hübsch und wird deshalb hier nicht behandelt.

Verwendete Texturen im Fahrzeug

Wir gehen also davon aus, dass die Kanäle so verwendet werden wie bei unseren Fahrzeugen und nehmen als Beispiel den SD80. Dieser verfügt unter anderem über folgende (an dieser Stelle relevante) Texturen:

  • SD80_01.tga: Diese Textur ist für die Seiten, Front und Heck sowie Details am Außenmesh. Sie verfügt über einen Alphakanal, welcher die Reflexion steuern soll.
  • SD80_02.bmp: Diese Textur ist für das Dach und für Elemente im Innenraum. Sie verfügt über keinen Alphakanal, die Reflexionsstärke des Daches ist fest vorgegeben.
  • SD80_03.bmp: Diese Innenraumtextur ist deshalb interessant, weil sie die Innenwände und Innenseiten der Fenster enthält. Diese sind genau gleich gemappt wie bei Textur SD80_01.tga, was später nochmal wichtig wird.
  • SD80_trans.tga: Diese Textur ist grundsätzlich schwarz. Sie verfügt aber über einen Alpha-Kanal, welcher für die Fensterüberklebungen und den halbtransparenten Aufkleber "Automatische Tür" genutzt wird.
  • envmap.bmp: Reflexionstextur. Darstellung der Umgebung für die Reflexionseffekte, scharf für Fensterglanz
  • envmap_unscharf.bmp: Gleich Funktion, aber unscharf für metallischen Glanz.
  • SD80_bump.bmp: Hierbei handelt es sich um die Relief-Textur, welche Unregelmäßigkeiten in der Oberflächenstruktur erzeugt
  • SD80_bump2.bmp: Bumpmap fürs Dach, welches über Längsrillen verfügt
  • fenster.tga: Außentextur für die Fenster: Sehr klein, grau und mit dunkelgrauem Alphakanal (relativ starke Transparenz)
  • fenster_int.tga: Innentextur für die Fenster: Wie fenster.tga, nur mit noch dunklerem Alphakanal (für noch stärkere Transparenz)

Einrichten des Texturtausches

Für den Texturtausch des SD80 gibt es den Ordner Werbung_SD80 als Unterordner im Ordner Texture. In diesem Ordner befinden sich:

  • beliebig viele *.cti-Dateien
  • und die zugehörigen Tauschtexturen für die jeweiligen Werbeanstriche

Außerdem muss der Texturtausch in der model.cfg festgelegt werden. Hierfür steht in der model_SD80.cfg:

########################################
Textur-Changes
########################################

[CTC]
Colorscheme
Texture\Werbung_SD80
0

[CTCTexture]
farbschema_tex1
SD80_01.tga

[CTCTexture]
farbschema_tex2
SD80_02.bmp

[CTCTexture]
farbschema_trans
SD80_trans.tga

Der [CTC]-Befehl richtet eine neue "Complex Tex Change"-(CTC)-Gruppe ein: Zunächst wird die Variable angegeben (Colorscheme), dann der Pfad, wo nach *.cti-Dateien gesucht werden soll und schließlich eine Null, die allerdings nicht mehr genutzt wird.

Jeder [CTCTexture]-Befehl richtet nun für diese CTC-Gruppe eine Textur ein und weißt ihr einen Ident zu, so z.B. der SD80_01.tga den Ident "farbschema_tex1" usw.

Der Vorteil des CTC-Systems: Es werden automatisch alle Vorkommen der aufgelisteten Texturen im Objekt getauscht, es sind keine weiteren Einträge in der model.cfg nötig.

*.cti-Dateien

Jede *.cti-Datei folgt den allgemeinen Syntaxregeln der Konfigurationsdateien. Ihr Name ist irrelevant, solange sie im richtigen Verzeichnis liegen und auf *.cti enden, da OMSI automatisch alle cti-Dateien in diesem Verzeichnis zusammensucht.

Ein typischer Eintrag ist der für Drospa:

***************************************
Drospa (Voll, orange)
***************************************

[item]
Drospa (Pop, orange)
farbschema_tex1
SD80_01_drospa_orange.dds

[item]
Drospa (Pop, orange)
farbschema_tex2
SD80_02_drospa_orange.dds

[setvar]
vis_grill_invisible
1

Jeder [item]-Befehl wird mit einem Anstrich-Namen ("Drospa (Pop, orange)") versehen, der dafür sorgt, dass die Einträge später zusammengehören, und weist für diesen Anstrich der Originaltextur mit dem Ident farbschema_tex1 (wie wir von oben noch wissen: das ist die SD80_01.tga!) die Tauschtextur zu, hier: "SD80_01_drospa_orange.dds".

Schließlich ist es möglich, mit dem [setvar]-Befehl noch eine Fahrzeugvariable abhängig vom Anstrich zu setzen - hier soll der MAN-Grill unsichtbar geschaltet werden, wofür der Variable vis_grill_invisible der Wert 1 zugeordnet wird.

Dennoch muss nicht jedem Ident auch eine Tauschtextur zugewiesen werden! So ist der Möbel-Hübner-Eintrag wesentlich kürzer:

***************************************
Möbel-Hübner grün, alt
***************************************

[item]
Möbel-Hübner (grün, alt)
farbschema_tex1
SD80_01_Huebner2.dds

Nur farbschema_tex1 (also SD80_01.tga) wird hier eine Textur zugewiesen, die anderen für diese CTC-Gruppe konfigurierten Texturen bleiben unverändert.

Setzen der Materialeigenschaften

Außenwand


[matl]
SD80_01.tga
1

[matl_envmap]
envmap_unscharf.bmp
10

[matl_bumpmap]
SD80_bump.bmp
0.1
	
[matl_transmap]

Die Textur SD80_01.tga (der Index variiert je nach Export) bekommt die unscharfe Envmap und die Bumpmap zugewiesen. [matl_transmap] beinhaltet zwar keinen Texturnamen (Freizeile darunter lassen!), sorgt aber für eine Umschaltung, sodass der Alphakanal der SD80_01.tga die Stärke der Envmap steuert.

Fenster außen

Die Fenster außen bestehen aus mehreren unabhängigen Ebenen, also übereinanderliegenden Polygonen für verschiedene Funktionen, insbesondere auch dem Dreckt und dem Regen. An dieser Stelle soll aber nur auf zwei wichtige Ebenen hingewiesen werden:

Die Ebene der Transparenz und der Reflexionen:

[matl]
Fenster.tga
0
 
[matl_envmap]
envmap.bmp
1.0
 
[matl_alpha]
2

[alphascale]
Envir_Brightness

Diese Ebene ist mit der Textur Fenster.tga gemappt und ihr werden die Envir-Map für scharfe Reflexionen zugeordnet, der Alphamodus 2 (Halbtransparenzen möglich) und die Funktion [alphascale] in Abhängigkeit von der Umgebungshelligkeit (Envir_Brightness-Variable) zugewiesen, die dafür sorgt, dass die Reflexionen bei Dunkelheit schwächer werden.

Die Ebene der Fensterbeklebung:

Diese Ebene ist nur dann überhaupt sichtbar, wenn die Fenster mit Werbung überklebt werden:

[matl]
SD80_01.tga
0

[matl_transmap]
SD80_trans.tga

[matl_alpha]
2

Hierbei ist wichtig, dass die Fenster genauso gemappt werden wie das Hauptmesh, sodass die Fensterüberklebungen sich korrekt über die Fenster fortsetzen. Allerdings wird ihr die Transmap SD80_trans.tga mit dem Alphawert Null (im Bereich der Fenster) sowie die Nutzung des Alphakanals für Halbtransparenzen ([matl_alpha] / 2) zugewiesen, sodass diese Ebene im Regelfall völlig unsichtbar bleibt.

Erst, wenn mittels Texturtausch eine Tauschtextur für die SD80_trans.tga genutzt wird, dann sorgt diese Ebene dafür, dass man die Werbung über den Fenstern überhaupt sieht - denn die vorher beschriebene Transparenz- und Reflexionsebene nutzt ja nur die fenster.tga für die Transparenz.

Fenster innen

Die Fenster von innen bestehen ebenso aus einigen Ebenen. Der Aufbau ist vergleichbar mit dem der Fenster von außen, jedoch wird für die Ebene der überklebten Werbungen hier mit der Textur SD80_03.bmp gemappt. Da diese genauso gemappt wird wie die SD80_01.tga kann dieselbe Transparenz-Textur genutzt werden, die Farbe bleibt aber grau, da die Fensterfarbe nur in der SD80_01.tga durch Texturtausch geändert wird.

Erstellen eigener Templates

Die einfachste Vorgehensweise, um Templates herzustellen, ist die folgende:

  • Öffnen der fertigen *.tga-Datei mit Alphakanal. Extrahieren des Alpha-Kanals => das wird die _AL.bmp
  • Extrahieren der RGB-Kanäle bzw. Speichern als Bitmap ohne Alpha-Kanal => das wird die _BS.bmp
  • Kopieren der _BS.bmp und die Farbsättigung vollständig rausziehen. Diese "farblose" Version dublizieren.
  • Ein Dublikat mit Hilfe der Histogramm-Funktion (gemeint ist die Funktion, wo die Häufigkeiten der Grauwerte dargestellt werden: Historgramm ) solange durch Verschieben der oberen Grenze aufhellen, bis die Helligkeitsverteilung in etwa so aussieht wie in dem gezeigten Beispiel des Multiplikationstemplates. Dies wird demzufolge auch die _MU.bmp. Den Grenzwert der Verschiebung merken: das ist der oben erwähnte "Referenzwert".
  • Das zweite Dublikat mit derselben Funktion solange verdunkeln, bis "von der anderen Seite" der Referenzwert erreicht wird. Dies bedeutet im Allgemeinen, dass kaum noch etwas sichtbar ist: Nur noch die Konturen, die im Original heller waren als die "normalen" Flächen. Dies ist die _AD.bmp.
  • Das aufwändigste ist die Maske: Diese muss üblicherweise manuell aus dem Basis-Template oder der _MU.bmp hergeleitet werden.
  • Als letzten Punkt sollte man nochmal schauen, ob ggf. einige Details beim Überstreichen mit Anstrichen verschwinden sollen: Die müssen dann aus _MU.bmp und _AD.bmp manuell herausretouschiert werden. Außerdem muss meistens die MU.bmp im Bereich der Fensterscheiben auf dieselbe Helligkeit wie die Umgebung gebracht werden, damit Fensterüberklebungen funktionieren.