SimpleMakerPro XL7, XL8, XL9 Win, Mac, OSX | [home] [english]
| Allgemein | SimpleMakerPro | Finger | Mr.Pepper | Mr.Pepper Shader |
Mr.Pepper (ab XL8) 3D-Spiele arbeiten in Echtzeit und die Qualität wird immer besser. Mit Mr.Pepper nutzen Sie genau diese Technologie in Cinema 4D oder erstellen fertige Modelle für den Einsatz in diesen Game-Engines.
Frage | Antwort | Lösung in Cinema 4D
Welche Objekte können in Echtzeit gerendert werden? | Objekte mit ganz wenigen Polygonen | SimpleMakerPro
Warum sehen diese Objekte so gut aus? | Weil Texturen ein viel detailreicheres Objekt vortäuschen. | Mr.Pepper als Teil des SimpleMakerPro
Für das Aufpeppen benötigen Sie lediglich zwei Polygonobjekte. Eines (Low-Poly), für das Sie die Texturen erstellen wollen und eines als Referenz (High-Poly). Mr.Pepper tastet die Oberfläche des Low-Poly-Objektes ab, sucht die entsprechende Stelle im High-Poly-Objekt und speichert die Referenz-Normalen und die Abstände zwischen dem Low- und High-Poly und berechnet gleichzeitig eine GI-Simulation. Differenz-Map (Normalen-Map)
High-Poly | Low-Poly mit Pong | Low-Poly mit Normalen-Map
Mr.Pepper findet für jeden Textur-Pixel die dazugehörige Stelle des Low-Poly-Objektes und berechnet die zugehörige Normalen des High-Poly-Objektes. Doch Normalen-Map ist nicht gleich Normalen-Map. Normalen-Maps in Welt- oder Objekt-Koordinaten zeigen immer in die entsprechende Richtung (Rot = +X; Grün = +Y; Blau = +Z). Wenn das Objekt animiert oder verbogen wird, dann zeigen die Normalen trotzdem in die angegebene Richtung - was ja dann falsch ist. Besser ist es, wenn die Normalen nicht absolut sondern relativ zum dazugehörigen Polygon gespeichert werden. Denn dann kann das Polygon mit Bones oder PLA beliebig verschoben, rotiert und verzerrt werden. In diesem Fall hat das verzerrte Polygon eine andere Normale als vorher, aber mit der gespeicherten High-Low-Differenz kann eine Normale berechnet werden, als wenn das High-Poly-Objekt verzerrt werden würde. Mr.Pepper speichert deshalb die Differenzen der Normalen real zu den Polygonen ab. In der Spiele-Entwicklung spricht man auch von Normalen in tangent space. Zu den Normalen kann auch gleich noch eine Bump-Map mit eingerechnet werden. Das spart nochmals Zeit beim späteren Rendern.
- |  | + |  |
| = |  | = |
Displacement-Map
| - |  | = |
Mr.Pepper berechnet die Abstände zwischen dem Low- und High-Poly-Objekt und speichert diese in UV-koordinaten in einem Graustufenbild. Dabei bedeuten 100% (weiß) maximaler Abstand nach außen; 50% (grau) keine Differenz; 0% (schwarz) maximaler Abstand nach innen. Eine gleichnamige Textdatei beinhaltet den maximalen Abstand, der im Shader eingetragen werden sollte. Die Abstände werden immer in Normalenrichtung gemessen. Eine Variante, in der auch die Richtung gespeichert wird und auch eine höhere Auflösung (16Bit-Tiff), wird im nächsten, kostenfreien Update verfügbar sein. GI-Simulation (Occlusion-Map) Mit Radiosity kann man zwar schöne Beleuchtungen darstellen, aber die Berechnung ist sehr zeitintensiv. An einem Einsatz in 3D-Spielen ist dabei nicht zu denken.
| Will man trotzdem ähnliche Beleuchtungseffekte darstellen, hilft ein Trick weiter. Jeder Punkt des Objektes wird durch die Himmelskugel beleuchtet. Wird nun ein Teil des Himmels verdeckt, kann man davon ausgehen, dass weniger Licht auf diesen Punkt fällt. Genau dies wird als Graustufen-Textur gespeichert. Sie können diese ab Cinema XL8 direkt im Material-System mit der originalen Textur mischen oder nutzen dazu ein beliebiges Bildbearbeitungsprogramm. Einfach die Occlusion-Map über die Original-Textur legen und dabei Multiplizieren.
| * |  | = |
Textur |  | GI-Map |  |
| Mr. Pepper kann aber noch mehr. Er kann nicht nur die Beleuchtung durch eine Himmelskugel berechnen sondern auch noch spezielle Spotlichter (von oben, von der Seite). Auch können Sie bestimmen, ob zur Schattenberechnung Kinderobjekte oder die gesamte Szene berücksichtigt werden soll.
Bild1 nur Automatiklicht | Bild2 nur Automatiklicht Gesicht: GI-Map rundherum | Bild3 nur Automatiklicht Gesicht: GI-Map rundherum mit Kinder (Haare) | Bild4 nur Automatiklicht Gesicht: GI-Map von oben mit Kinder (Haare) Haare: GI-Map von oben ganze Szene
Mr.Pepper nutzen
Beide Objekte müssen unbedingt genau übereinander liegen. Nur so können die Unterschiede zwischen beiden Objekten berechnet werden. Damit Mr. Pepper die gewünschten Texturen berechnen kann wird ein Polygonobjekt mit einem UV-Tag benötigt. Ziehen Sie einfach dieses Objekt bzw. den gewünschten UV-Tag in den Bereich für das Low-Poly-Objekt. Als Referenzobjekt ziehen Sie das High-Poly-Objekt in den entsprechenden Bereich. Falls Sie zusätzlich noch eine Bump-Map einrechnen wollen, benötigen Sie einen UV-Tag und eine passende Graustufen-Textur. Die Skalierung entspricht der im Material-Manager. Falls Sie nur die GI-Simulation berechnen wollen, können Sie als High- und Low-Poly das gleiche Objekt zuweisen.
Breite Höhe | Hier stellen Sie die Größer der zu berechnenden Textur ein in Pixel ein.
Subpixel | Pro Texturpixel können mehrere Berechnungen durchgeführt werden, was zu einer qualitativ höherwertigen Textur führt. Aber gleichzeitig erhöht dies auch die Berechnungszeit.
Typ | Sie können die Texturen als TIFF, BMP oder TGA speichern.
Tiefe | Derzeit werden alle Texturen in 8 Bit gespeichert. Eine Möglichkeit zur Speicherung als 16Bit-Tiff wird als Update verfügbar sein.
Differenz-Map | Bitte geben Sie den Pfad und den Namen für die Normalen-Textur an.
GI-Simulation | Hier kann die so genannte Occlusion-Map berechnet und gespeichert werden.
Anzahl der Strahlen | Je mehr Strahlen berechnet werden, desto genauer wird die Textur. Beachten Sie aber die Anzahl der Subpixel. Bei 149 Strahlen und 5 Subpixeln werden letztlich 745 Strahlen berechnet und das pro Texturpixel.
Stochastisch | Wenn Stochastisch selektiert ist, dann werden die Strahlen nicht nach einem festen Schema sondern immer rein zufällig berechnet. In Verbindung mit Subpixeln und einer geringeren Anzahl von Strahlen, kann man Berechnungszeit sparen.
Nur dieses Objekt... | Für die GI-Berechnung können Sie nur dieses Objekt, oder dieses mit allen Kindern oder die gesamte Szene nutzen.
Bias | Ein Bias von 1 ist physikalisch korrekt. Ein hoher Wert erhöht die Empfindlichkeit von seitlichem Licht. Die Unterschiede sind aber minimal:
Bias:1 | Bias:20
Spotlicht | Normalerweise kommt das Licht von allen Seiten her. Hier können Sie bestimmen, ob das Licht nur von oben (+Y) kommen soll.
Displacement-Map | Parallel zur Speicherung der Displacement-Textur wird eine gleichnamige Text-Datei mit der Angabe der maximalen Höhe gespeichert. Denn es bringt wenig, wenn Ihnen Mr.Pepper bei der Berechnung sagt, dass er einen maximalen Abstand von 12,45 gefunden hat, denn das haben Sie sicher wieder vergessen, wenn Sie die Texturen einbauen.
Textur-Speicher | Bei der Berechnung benötigt Mr.Pepper zum Teil viel Speicher. Dies ist davon abhängig, welche Breite und Höhe Sie angegeben haben und welche texturen gespeichert werden sollen.
Mr. Pepper arbeitet asynchron. Sobald die Berechnung gestartet wurde, ist es nicht mehr notwendig, die Szene geöffnet zu lassen. Sie können diese schließen oder an einer anderen weiterarbeiten. Die Statusanzeige zeigt eine Hochrechnung an, wie lange die Berechnung noch dauern wird und wieviel Prozent bereits bearbeitet wurde.
© www.cinemax4d.de TZ INPETHO® MedienProduktion GmbH - Parzellenstrasse 27/28 - D 03050 Cottbus - Deutschland