Von der Weltkarte zum 3D Schachbrett
Schon In Fritz 7 war in dem Serverteil eine
Weltkarte implementiert. Kleine rote Punkte zeigen dort an, welche User
eingeloggt sind und wo sie wohnen. Irgendwann im Jahr 2001 erschien in einer
Holländischen Zeitung ein Artikel über Satellitenfotos der NASA. Das Besondere
daran war, dass das eine hoch auflösende Foto in Wirklichkeit aus vielen
kleineren Satellitenaufnahmen zusammengesetzt war (Nasa...).
Das Foto bot einen fantastischen Anblick der Erde und ich wollte es unbedingt in
Fritz aufnehmen. Um allerdings dieses riesige Foto einbauen zu können, musste
man den bisherigen Globus anders implementieren. Die einzige logische Möglichkeit
war, dies mit Hilfe der DirectX-Technik anzupacken.
Als Erstes machte ich mich auf die Suche nach Vorbildern, wo eine Kugel mit
einer Texture (Bild) abgebildet wird. Ziemlich schnell realisierte ich, dass die
Verwendung von DirectX nicht so einfach ist, wenn man sich damit zum ersten Mal
befasst. Deshalb wollte ich die Technik sehr gründlich studieren und herausfinden, wie man mit DirectX am besten Objekte programmieren und abbilden kann.
Nun habe ich als Erstes einen Kubus in 3D programmiert. Dazu muss man wissen,
dass jedes 3D-Objekt aus einem oder mehreren zusammengesetzten Dreiecken besteht,
die dieses Objekt formen. Am Beispiel des Kubus: Ein Kubus besteht aus 12
Dreiecken. Jede Fläche hat zwei Dreiecke, ein Kubus hat 6 Flächen.
Als ich mich mit dem Kubus beschäftigte,
kam ich auf die Idee, aus Testzwecken auch einmal ein Brett abzubilden. Wo ein
Brett ist, da gehören auch Figuren hin. Wir baten den Spezialisten für
Computeranimation Stephan Huschenbeth (www.huschenbeth.com),
einen 3D-Figurensatz zu entwerfen. Nach einiger Entwicklungsarbeit entstand so
das 3D-Holzbrett.
Holz als Relief, leicht gekippt mit Lichtreflexen.
Ein interessanter Aspekt unserer Zusammenarbeit
bestand und besteht darin, dass wir ständig Kompromisse schließen müssen. Der
3D-Designer will immer so viele Details wie möglich. Aber größerer
Detailreichtum bedeutet auch, dass es viel länger dauert, das Brett zu zeichnen.
Die Qualität wird außerdem durch die Auflösung der Texturen bestimmt. Je
größer aber die Texturen, desto mehr Videospeicher wird beansprucht.
Ein hohes Maß an Entwicklungsarbeit wurde darin
investiert, das 3D-Brett spielbar zu machen. Es gibt Schachspieler, die immer
nur das 2D-Brett verwenden, aber andere haben sich Fritz nur wegen der
aufwändigen 3D-Technik gekauft. Ich habe mir viele Computerspiele mit 3D-Technik
angesehen, um zu schauen, welche Techniken wir für unsere Zwecke gebrauchen
können. Es fällt auf, dass die meisten Spiele große und dynamische Spielfelder
haben. Viel CPU-Zeit wird gebraucht, um das auszurechnen, was nicht gezeichnet
wurde. Hier konnte man einiges an Performance gewinnen.
Bei Fritz wird immer die komplette Szene gezeigt,
hier spielt sich alles ab. Dafür wurde die 3D-Engine der Fritz-Oberfläche
optimiert.
Bisher wurden 10 verschiedene 3D-Bretter
entwickelt. Jedes der Bretter hat eine andere Technik. So wurde beim Metallbrett
von Shredder eine besondere Technik (bump mapping) verwendet, die die grobe
Struktur von Metall zeigen soll.
Shredder: Metall
Shredder: Science Fiction
Rücksturz zur Erde
Nach der Entwicklung der ersten Bretter hatte ich nun genug
Erfahrung, um nun mit Hilfe hoch auflösender Texturen den 3D-Globus zu
realisieren.
Die roten Punkte von ganz nah betrachtet
Es gibt einige Features, die nicht dokumentiert
sind (und auch nicht im Support unterstützt werden :)). So kann man mit der
Taste s in Richtung Sonne schauen, mit 1 nach Merkur und mit 9 nach Pluto. Mit
etwas Glück sind die Planeten sogar sichtbar. Wer gut aufpasst, findet
vielleicht sogar ein Space Shuttle. Ein paar Sachen fehlen noch: real-time
Wolken, Wetterdaten - mal sehen, was noch kommt.
Jeroen van den Belt
Glas mit Spiegelungen
Silber
Marmor mit Spiegelungen
Landschaft mit Ballons, verkleinert
Ballons vergrößert
Ballons in Sepia, stark vergrößert
Wolken am Himmel
Hiarcs 9 bringt die Bundesform ...
...und Eis.
Reichlich Einstellmöglichkeiten im 3D-Brett: