• Forum geschlossen!
    Das Forum befindet sich im Nur-Lese-Modus. Das Erstellen neuer Themen und Beiträge ist nicht mehr möglich.

Backe, backe Texturen

balthier9999

Bekanntes Gesicht
Mitglied seit
26.02.2007
Beiträge
7.598
Reaktionspunkte
0
Nein, es geht diesmal nicht um Weihnachten und Volkslieder, sondern um 3D-Gestaltung! Ab sofort erhaltet ihr regelmäßig einen kleinen Blog über die Wunder von 3D-Programmen. Dieses Mal freht sich alles um´s Backen!

Um mal gleich zur Sache zu kommen: Mit Backen
lassen sich äußere Einflüsse (wie Schatten, Licht, (Global) Illuminations*, Spiegelungen, Normal-Maps etc. pp.) auf Texturen in diese einspeichern, so dass Rechenzeit gespart wird. Also, um es mal praktisch zu demonstrieren: Wir müssen für ein Farbhandy eine 3D-Simulation erzeugen. Es sind maximal 6 Polygone erlaubt, und die einzigen technischen Möglichkeiten sind Animation und Texturen. Das heißt, wir bauen einen Würfel, und lassen eine Kamera um in drehen. Nun sieht dieser Würfel ziemlich einfach und unrealistisch aus. Das liegt daran, dass er nicht wirklich gut bleuchtet ist, keine Schatten wirft und so weiter. Denn all diese Dinge werden vom Handy aufgrund von mangelnder Leistung nicht unterstützt. Hier greifen wir auf das Backen zu. Wir erzeugen in einem normalen 3D-Programm ohne technische Einschränkungen (also auf dem High-End-PC^^) einen Würfel, der von 3 Seiten angestrahlt wird, realistische Flächen-Schatten wirft und nochdazu setzen wir die aufwendige Illuminations-Engine* ein. Am Ende haben wir einen fotorealistischen Würfel. Nun backen wir den Würfel. Der Rechner rendert (also erzeugt fertige Bilder) die mit Schatten und Licht beworfenen Texturen, speichert sie separat ab, und projeziert sie dann an derselben Stelle wieder auf das Polygon. Wenn der Würfel gebacken ist, können wir alle aufwendigen Techniken ausschalten; Licht : aus, Schatten: aus, Illuminations: aus, Occlusion: aus.... Aber trotzdem bleibt der Würfel so, als würden diese Techniken angeschaltet. Man kann es sich so vorstellen: Man nimmt ein Blatt Papier, legt einen Würfel auf dieses Papier, und richtet die Bürolampe auf den Würfel. Nun zeichnet man die Schatten, die der Würfel durch die Lampe auf´s Papier wirft, nach, bis es exakt genauso aussieht, wie der echte Schatten. Dann schaltet man das Licht aus (wollen ja Strom sparen), aber trotzdem haben wir einen schönen Schatten. Backen ist also Tricksen.
Vorteil ist ganz klar: Wir können nun den mit allerlei High-Defintion-Tricks gerenderten Würfel in ein 10 Jahre altes Handy einbauen, ohne das das Handy dann den Geist aufgibt.
Natürlich wird diese Technik nicht nur bei Handys eingesetzt, sondern im großen Stil bei Videospielen, vornehmlich die der letzten Generation. Schönstes Beispiel ist für mich Final Fantasy XII, bei dem alle Figuren bis ins kleinste Detail gebackene Textur-Kleider trugen.

Heute allerdings ist die Technik eher weniger interressant; und zwar aus einem einfachen Grund: Speichermangel. Nehmen wir mal Mirrors Edge und die scon häufig erwähnte Illuminations-Technologie. Hier ist erstmal die Beschreibung, was letzteres überhaupt ist:

(*)Illuminations, oder was mir lieber ist: Global Illuminations simuliert die Reflektion von Licht aus matten Oberflächen, aber auch Spiegelungen. Jeder Körper, egal mit welcher Beschaffenheit, reflektiert Licht. Wer´s nicht glaubt, der nehme mal einen... öhm... roten Ball und hält ihn nah an eine weiße Tapete. Die Tapete wird nahe des Balls rötlich, weil sie sein Licht reflektiert. Es ist also eine Licht-Technik, wenn nicht sogar die realistischste. Wir wissen alle, dass selbst die foto-nahesten Spiele immer noch nach Spielen aussehen, weil zum Beispiel keine Eigen-Echtzeitschatten existieren oder weil die Grafik zu bunt und dunkel ist. Zum Beispiel hat beinah jedes Spiel Gegenstände, bei dem es regelrecht schwarze Bereiche aufgrund von extremen Schatten gibt. All diese Probleme bestünden nicht, würde man GI (Global Illuminations) einsetzen. Man braucht sich ja nur Mirrors Edge anzuschauen: Ist recht realitätsnah. Größtes Problem bei dieser Technik ist der unheimliche Rechenaufwand. Wenn ich bei mir zuhause ein Bild, mit mehreren Lichtquellen und Flächschatten mit GI rendere, kann ich im Prinzip eine Woche warten, bis das Bild fertig ist. Es liegt also nahe, für Videogames diese Technik per Backen einzusetzen.

Problem ist aber die HD-Auflösung. Wenn ich mir vorstelle, wie groß diese Texturen in Mirrors Edge sind (sind ja schon recht detailliert und scharf), und man müsste für das Backen all diese Texturen für jedes Gebäude einzeln speichern. Boah, da macht sogar die BluRay schlapp. Denn bei Videogames werden Texturen, besonders hochaufgelöste, gerne häufiger verwendet. Manchmal in einem Objekt nebenan, oder sogar beim gleichen Objekt nochmal. Das nennt man dann Kacheln; wenn eine Textur auf einem Objekt mehrmals wiederholt. Mal aus Faulheit, mal aus Speichergründen. Sicher ist auf jeden Fall, dass eine gebackte Textur für ein Gebäude in Mirrors Edge bestimmt mehr als 100 000 x 100 000 Pixel groß ist. Für Current-Gen ist es also sinnvoller diese rechenaufwändige Methode der Lichtberechnung in Echtzeit zu berechnen. So oder so sieht es ziemlich cool aus. Wenn ich mir vorstelle, vor ein paar Jahren GI in Echtzeit? Da hätte man einen ausgelacht.
So, das war der erste Blog der neuen Reihe. Wartet nicht auf einen neuen, sondern lasst euch überraschen^^.
 
Wenn also mein Speicherplatz etwas gräßer wäre und die Programmierer zu viel Zeit hätten, könnte ich dann mittels Textur-Backen die Hardware-Anforderungen deutlich verringern?

Speicherplatz ist ja inzwischen recht billig, aber Grafikkarten und Prozessoren gehen ordentlich ins Geld. Könnte größerer Einsatz von Backen eine Alternative zum modernen Polygontrauma sein?
 
Das hängt von allerlei Dingen ab. Eine gewisse Mindestleistung muss schon gegeben sein, damit die Programmierer auch rechenaufwensige Texturen verwenden können. Außerdem muss man beachten, dass ein Spiel, komplett gebacken, und nur mit wenigen Lichtquellen, keine Spielerein mit Licht erlauben kann. Hier können wir auch das Beispiel mit dem Papier nehmen: Ich habe den Schatten auf´s Papier gemalt, richtig? Was ist aber, wenn die Lichtquelle plötzlich wo anders steht. Dann stimmt der schatten nicht mehr.

Vorraussetzung ist also erstmal, dass alle Lichtquellen im Spiel fest sind, was bei modernen Spielen eigentlich unmöglich ist.

Ein anderes Problem: Texturen müssen geladen werden. Das beansprucht ebenfalls viel Rechenpower, gerade bei HD-Texturen.

Wie gesagt, in der vergangenen Konsolengeneration war das alles kein Problem. Da haben sich Lichtquellen nicht bewegt, da waren die Texturen niedrig aufgelöst.

Aber heutzutage ist das sinnlos, da der Rechenaufwand genauso, wenn nicht sogar größer wäre, wenn man nur gebackte Texturen verwendet.

Einzig der Handheld-Bereich bleibt für die Technik interressant, wie auch für CGi-Filmen von Pixar (um Renderzeiten zu sparen)

Nebenbei gesagt sind Polygone wichtig. Je mehr, um so besser. Klar, iwann gibt es eine Grenze, bei der es keinen Sinn mehr macht, mehr Polygone einzubauen. Diese Grenze ist aber bei weitem nicht erreicht. Zwar sind die Charaktermodelle detailliert, aber die Umgebung eher grob konstruiert und relativ klein. Doch auch dafür gibt´s Lösungen, z.B. die Normalen-Technik. Das kläre ich aber in einem der nächsten Blogs ;)
 
Zurück