Dieses Kapitel erklärt einige weitere Details der grafischen Darstellung und die Verwendung von Farben in Future Pinball. Der Inhalt ist etwas technisch, doch wird versucht, die Zusammenhänge so anschaulich wie möglich zu erklären.

  Texture Mapping

Das Texture Mapping ist ein Vorgang, bei dem eine zweidimensionale Grafik über ein dreidimensionales Objekt gelegt wird. Alle Objekte, die in Future Pinball zur Bestückung Ihres Spieltisches vorhanden sind, sind 3D-Modelle. Einige wurden manuell vom Future Pinball Developement Team angefertigt, andere werden als shapeable (formbare) Objekte während des Renderns von Future Pinball erstellt. 3D-Modelle bestehen letztlich aus Daten die ein Objekt mittels der Achsen X (Breite), Y (Höhe) und Z (Tiefe) in einem dreidimensionalen Raum definieren.

Modelle selbst sehen eher unscheinbar aus, bis sie mit einer speziellen Textur belegt werden.

Diese Textur wurde speziell für Form des Modells gestaltet. Die Aufteilung der Bereiche einer solchen Textur ist von Objekt-Typ zu Objekt-Typ unterschiedlich, jedoch ist jeder Bereich der Grafik einem bestimmten Bereich auf dem Modell zugeordnet. Wenn diese Textur auf dem Flipperfinger angewendet wird, hat dieser schon recht viel Ähnlichkeit mit dem Vorbild auf realen Flippern.

Jedoch benötigen nicht alle Komponenten in Future Pinball Texturen, um gut auszusehen. Objekte wie Lane Guides oder Plastic Pegs, die in der Regel einfarbig sind, werden auch ohne Textur schön dargestellt.

  Farben in Future Pinball

Future Pinball verwendet das RGB Farbmodell, welches auf den Farben Rot, Grün und Blau basiert. Millionen von abweichenden Farben können jedoch durch unterschiedliche Mischungsverhältnisse dieser 3 Farben erzeugt werden. Hinzu kommt mit dem so genannten Alpha-Kanal eine weitere Komponente, die den Transparentwert einer Farbe definiert.

Die folgende Abbildung zeigt die drei RGB Komponenten und wie deren Mischung weitere Primärfarben erzeugt:

Der größte Teil der Future Pinball Komponenten stellt in wenigstens einer Einstellungs-Option ein Farbauswahlfeld  . Ein Klick auf dieses öffnet das Standard-Farbwahl-Dialogfenster:

 

Jede der 3 Grundfarben (Rot, Grün und Blau) ist in 255 Farbanteile aufgeteilt, wobei 255 der vollen Farbstärke entspricht und 0 die Farbe nicht berücksichtigt. Jeder Wert dazwischen steuert die Menge der zu verwendenden Farbanteile. Wenn Sie auf einen Bereich des Farbauswahlfeldes klicken, können Sie die verwendeten Anteile von Rot, Grün und Blau in den entsprechenden Feldern ersehen und gegebenenfalls manuell verändern. Die so ausgewählte Farbe wird dann mit einem Klick auf  übernommen.

  Farben in OpenGL

Da Future Pinball in seiner Grafik-Engine openGL verwendet, ist es wichtig, dass Sie verstehen, wie openGL Farben verwendet, da unterschieden wird, ob Sie für ein Modell Texturen verwenden oder nicht.

Farben in OpenGL mit Texturing

OpenGL skaliert die Farbe jedes einzelnen Pixels der Textur. Diese wird entsprechend der verwendeten RGB-Anteile Ihrer Farbauswahl neu bestimmt und gerendert. So können Sie den Helligkeitswert oder gar die Tönung einer Textur durch eine gezielte Farbauswahl verändern. Normalerweise werden Sie die Farben der Texturen jedoch in ihrer Tönung so verwenden wollen wie sie sind, weshalb ein Grauton die Richtige Farbwahl für die Verwendung mit Texturen ist.

 graphics 03

Wenn Sie ein Objekt auf dem Spieltisch erstellen, ist in der Regel ein Grauton  mit den Werten 192, 192, 192 als Farbe eingestellt. Diese Farbe stellt die Textur eine Kleinigkeit dunkler und mit etwas abgeschwächten Farben dar. Die Ursache dafür liegt einerseits in der Arbeitsweise von OpenGL begründet, jedoch auch im Echtzeit-Lichtsystem von Future Pinball, da es die Objekte abschattiert, je nach dem, aus welchem Blickwinkel es betrachtet wird und wie die Lichtverhältnisse des Raumes und des Spieltisches darauf einwirken. Durch diesen Effekt ist es möglich, dass sich Spitzlichter auf den Objekten befinden.

Wenn Sie die Farbe auf ein reines Weiß  setzen, wird die Textur in ihren Farben dargestellt, wie sie ist. Jedoch wirken sehr viele Objekt dadurch eher wie ausgebleicht, je nach dem, aus welchem Winkel sie betrachtet werden, obwohl dies beim Flipperfinger im aktuellen Beispiel wohl nicht der Fall ist. Aber experimentieren Sie ruhig mit verschiedenen Einstellungen, um ein Ergebnis zu erhalten, welches Ihren Vorstellungen entspricht.

Ein Grau mit den Werten 128, 128, 182  wird das Objekt eindeutig abdunkeln:

Es ist sehr wichtig, sich zu erinnern, dass Schwarz  nicht wirklich eine Farbe inm Sinne von Computergrafiken ist. Wenn Sie diesen Wert verwenden (0, 0, 0), werden alle Farben der Textur verschwinden und auch die Strukturen mit den Schatten und Spitzlichtern gehen verloren.

Da sich in OpenGL die Farben der Textur mit der eingestellten Farbe vermischt, kann dies auch dazu verwendet werden, um interessante Effekte zu erzielen. Im folgenden Beispiel wervenden wir die Farbe Rot, Grün und Blau, um den gelb-goten Flipper in der Darstellung vollkommen zu verändern.

Wenn wir dem Objekt die Farbe Rot  (255, 0, 0) zuweisen, wird die verwendete Textur und somit das gesamte Objekt rot getönt, da das Gelb des Flipper-Körpers ja aus Rotanteilen besteht und er rote Gummi so wie so.

Verwenden wir jedoch die Farbe Grün  (0, 255, 0), wird der Flipperkörper, welcher gelb ist, grün getönt, da er ja auch Grünanteile enthält.  Die roten Bereiche jedoch (in unserem Fall der Flippergummi) werden schwarz, da hier keine Grünanteile verwendet sind.

Wenn wir dem Objekt die Farbe Blau  zuweisen (0, 0, 255), verhält es sich fast wie mit der Farbe Schwarz, da weder der gelbe Körper noch der rote Gummi Blauanteile enthält. Der Bereich, in dem sich die Reflektion befindet, die das Raumlicht wiederspiegelt, ist jedoch sichtbar, da in diesem Raumlicht auch Blauanteile vorhanden sind. Deshalb bekommt diese Reflektion eine blaue Tönung.

Verwendet die Ursprungs-Textur Grautöne (gleiche Anteile von rot, grün und blau), dann können sie die Farbe verwenden, um die Textur zu tönen, da jedes Pixel sowohl Rot-, Grün- und Blau-Anteile enthält. Wenn Sie nun vollends irritiert sind, ist das nicht weiter schlimm. Wichtig ist nur, dass Sie Art der Veränderung durch Grautöne verstanden haben.

Farben in OpenGL ohne Texturing

Einige Komponenten in Future Pinball sehen auch ohne Texturen sehr schön aus, da das Echtzeit-Lichtsystem das Objekt derart abschattieren kann, dass alleine dadurch ein realistisches Aussehen entsteht. Zu den Objekten, die generell keine Texturen erfordern, gehören die Pegs, Lane Guides und einige Ornamente.

Wenn einem Objekt keine Textur zugewiesen wurde, wird es in der von Ihnen eingestellten Farbe gerendert.

Wie auch im Zusammenhang mit Texturen beschrieben, liefern reine Farben mit voller Stärke schlechtere Ergebnisse in der Darstellung, da sie im Zusammenspiel mit dem Echtzeit-Lichtsystem dem Objekt die Strukturen rauben. Dies trifft auch für Schwarz zu. Möchten Sie schwarze Objekte verwenden möchten, wählen Sie stattdessen besser ein sehr dunkles Grau  (64, 64, 64).

  Sphere Mapping

Sphere Mapping ist eine computertypische Art der Wiedergabe, die eine Textur in Echtzeit um ein Objekt legt und bei der die Kamera als Referenzpunkt genommen wird. Wenn sich der Blickwinkel verändert, verändert sich auch die  Textur, weil diese mittels matematischer Formeln entsprechend der Form des Objektes verzerrt wird, so dass sie aussehen kann wie die Reflexion auf einer Flipper-Kugel

Future Pinball enthält eine Reihe von Sphere Map Texturen, die Ihren Objekten das aussehen von richtigem Metall geben können.

Die folgenden Wire Guides wurden mit einer Metall-Textur gerendert. Da diese Wire Guides durch ihre gerundete Form viele Polygone enthhält, kann das Erscheinungsbild sehr matt wirken.

Wenn jedoch das Sphere Mapping auf die Textur angewendet wird, kommen die Reflexionen des Raumlichtes erheblich besser zur Geltung, und die Objekte sehen wirklich aus, als hätten sie eine verchromte Oberfläche. Dabei verändern sich die Reflexionen je nach Blickwinkel der Kamera (z. B. wenn die Kamera die Kugel verfolgt).

Experimentieren Sie ruhig mit den verschiedenen Sphere Map Texturen, die in Future Pinball enthalten sind.

  Crystal Rendering

Einige Objekte wie Pegs, Lane Guides, Bumper-Kappen oder Flasher besitzen ein Crystal-Flag. Wenn dieses aktiviert ist, werden diese Objekte so gerendert, als wären sie leicht durchsichtig. Auf vielen modernen Flippern sind besonders Lane Guides und Bumperkappen semi-transparent.

Das folgende Beispiel zeigt anhand eines Lane Guide, wie sich das Crystal Mapping auf die Darstellung auswirkt:


ohne Crystal Mapping


mit Crystal Mapping

Durch das Crystal Mapping können Sie nun durch das Objekt hindurchsehen (darunter liegender Peg, Birnchen und Gummi sind sichtbar). Allerdings wirkt sich diese Art der Darstellung auf die Renderleistung aus und das Ergebnis hängt stark von der Leistungsfähigkeit der Grafikkarte des Anwenders ab. Deshalb können Sie diese Funktion in den Grafikeinstellungen von Future Pinball unter der Option "Super Nice Crystal Rendering" abschalten, falls die Wiedergabe während des Spieles anfängt zu stocken.

  Enamel Mapping

Enamel Mapping ermöglicht es, eine zweite Textur auf ein Objekt anzuwenden. Diese Textur (Enamel Map) erzeugt die Illusion, dass das Objekt, auf dem diese angewendet wird, die umgebung widerspiegelt. Diese Möglichkeit kann auf Plastics sehr schöne Effekte ergeben, da sie z. B. die Reflexion des Backglas wiedergeben können.

Eine Enamel Map (im aktuellen Beispiel möchten wir das Backglas reflektieren) kann dadurch erstellt werden, indem wir die Textur für das Backglas in einem Grafikprogramm in Farben und Helligkeit reduzieren und diese dann für die Verwendung als Enamel Map separat speichern.

Für einen anderen Effekt, nämlich wie durch Hitze verformtes Plastik, können Sie eine Textur mit hellen Flecken ähnlich der folgenden Grafik verwenden.

nach oben