Erstellt mit Ziel eine Hohe Vegetationsdichte darstellen zu können, war das Golfplatz-Projekt unsere Spielwiese, um Erfahrungen aus erster Hand mit der Erstellung und Wiedergabe sehr großer Szenen zu sammeln.
Die Umgebung eines Golfplatzes schien für ein solches Unterfangen eine sehr vernünftige Wahl zu sein, da sie viele verschiedene Arten von Pflanzen und Laub enthält, wie das sehr kurz geschnittene Gras auf der Spielfläche – das Grün -, mittelgroße Pflanzen wie das raue Gras und die Blumen, die sowohl das Grün als auch den See umgeben, sowie große Objekte mit vielen kleinen Details, wie die Bäume mit Laub aus einzelnen Blättern. Wir versuchten, so viele von ihnen wie möglich mit echten, individuellen Objekten anstelle von Texturen nachzubilden, und jeder Typ hatte seine eigenen, einzigartigen Merkmale und Probleme.
Von Anfang an wussten wir, dass wir mehr Vegetation erzeugen würden, als wir auf unseren Maschinen mit 16 GByte RAM in einem einzigen Durchgang rendern konnten. Wir wollten mit Methoden experimentieren, um eine schwere Szene in kleinere, besser handhabbare Brocken aufzuteilen und gleichzeitig Möglichkeiten erkunden, die uns die Möglichkeit geben, Dinge wie Farbe, Reflexionen und Beleuchtung zu ändern, ohne alles neu rendern zu müssen. Wege zu finden, mit dieser Art von Problemen umzugehen, war unsere Hauptmotivation, ein Projekt wie dieses durchzuführen, denn wir wollten die Vor- und Nachteile möglicher Lösungen selbst erfahren, um diese Art von Wissen immer dann parat zu haben, wenn es ein Kundenprojekt mit ähnlichen Problemen gibt.
Der Überblick demonstriert unseren Ansatz zur Aufteilung der Vegetation in separate Pässe mit den Funktionalitäten von VRay und RP Manager und wie es möglich ist, die verschiedenen Schichten in Eyeon Fusion zu einem Bild zu kombinieren.
Bei der Planung und Erstellung dieser Szene wollten wir in der Lage sein, die Kamera während der gesamten Szene zu platzieren und zu bewegen. Wir konnten also nicht einfach die ganze Szene nach einem einzigen, endgültigen Winkel mit Vorder-, Mittel- und Hintergrund aufteilen. Unter dieser Prämisse haben wir versucht, eine Vegetation zu schaffen, die in fast jedem Teil der Szenerie realistisch aussieht und sich realistisch anfühlt. Infolgedessen wurde die Szene sehr schwer, und es war unmöglich, ein einziges Bild zu rendern, bei dem alle letzten Elemente in einem Durchgang aktiv sind. Dieses Kapitel zeigt, wie wir uns entschieden, verschiedene Arten von Vegetation zu erstellen, und wie wir sie in einzelne, renderbare Blöcke aufteilten.
Es könnte sich die Frage stellen, ob es wirklich notwendig ist, Szenen wie diese mit einer großen Anzahl einzigartiger Objekte zu schaffen, um glaubwürdige und gut aussehende Naturszenen zu erreichen.
Natürlich ist es das nicht 🙂
Aber wir wollten eine hohe Variationsrate in der Vegetation haben, während wir in der Kompositionsphase noch so viel Kontrolle über die Farbe wie möglich haben wollten. Dieses Projekt sollte eher ein Experiment sein, um die Grenzen des technisch Machbaren auszuloten, als die rationellste und effizienteste Außenaufnahme aller Zeiten zu schaffen. Deshalb beschlossen wir, jedes Objekt für die Streuung auf eine andere Objekt-ID zu setzen und in Masken zu rendern.
Das nächste Bild veranschaulicht die verschiedenen Optionen für die Farbgebung im Compositing. Die Bäume zum Beispiel bestehen aus sechs verschiedenen Varianten.
Wie bereits erwähnt, war das Rendern der gesamten Vegetation in einem Durchgang (engl.: pass) zu viel für unsere Maschinen. Aus diesem Grund teilten wir die Szene in drei „passes“ auf, indem wir die Sichtbarkeitssätze des RP-Managers verwendeten. Wir waren in der Lage, jeden resultierenden Durchgang ohne Probleme auf unseren 16 GByte Render-Workstations zu rendern. Nachstehend sind die drei von uns erstellten Sichtbarkeitssätze aufgeführt:
Durch das Ein- und Ausblenden von Vegetationsbereichen mit den Sichtbarkeitssets des RP-Managers war es möglich, die gesamte Vegetation der Szene in drei Durchgängen zu rendern, um sie später im Compositing zusammenzuführen. Der erste Durchgang nahm nur weniger als 2 GByte Hauptspeicher in Anspruch, während der zweite und der dritte Durchgang jeweils bis zu 14 GByte RAM benötigten.
Nachdem wir die drei „beauty passes“ erstellt hatten, beschlossen wir, zusätzliche Durchgänge zu erstellen, um später beim Zusammenfügen der ganzen Szene mehr Kontrolle zu erhalten. Dieses Kapitel zeigt, wie wir die Durchgänge zu Farblinien- und Schachbrettmustern auf dem Grün erstellt haben und warum wir einen Durchgang benötigten, der schließlich alle Objekte enthielt. Es wird auch erklärt, was wir taten, um diesen Einen zu rendern.
Außerdem gehen wir im Detail darauf ein, warum und wie wir die Schönheitspässe für das Rendern der Animation in Berechnungen für Licht und das eigentliche Schönheitsrendering aufteilen.
Wir schufen fünf Durchgänge, die wir für die Konstruktion der endgültigen Bilder des Golfplatzes einsetzten. Drei Durchgänge waren, wo nötig, als Beauty-Rendering, während die beiden übrigen Durchgänge spezielle Durchgänge für bestimmte Effekte waren (Golf_Pictures_AO und *_Texturen). Alle haben unterschiedliche Sichtbarkeitssätze und individuelle Einstellungen für Kamera, Licht und einige Objekte (wie Boden, See und Himmel). Diese speziellen Eigenschaften für jeden Durchgang wurden über den RP-Manager eingestellt, wodurch es möglich war, sie zu jedem Zeitpunkt der Produktion zu ändern.
RP Manager ist ein großartiges Plug-in für 3ds Max, mit dem Sie die Eigenschaften einer Szene und ihrer Objekte für jeden einzelnen Durchgang individuell steuern können. Jeder Durchgang funktioniert und verhält sich wie eine einzelne 3ds Max-Szene, aber alle werden in einer Datei gespeichert. Das erlaubt es dem Benutzer, Eigenschaften wie die Anzahl der verstreuten Objekte zu ändern und sie durch alle Durchgänge zu propagieren, die auf diesen Eigenschaften beruhen.
Das folgende Diagramm gibt einen Überblick über die Durchgänge und ihre Unterschiede in Bezug aufeinander. Die angegebenen Renderingzeiten sind Durchschnittszeiten für die Animationsframes. Sie benötigen so viel Zeit, weil wir flimmerfreie Ergebnisse haben wollten. Die Frames der Bilder benötigen viel weniger Zeit als die Frames für die Animationen, weil wir das durch Anti-Aliasing verursachte Flackern für diese ignorieren können.
Der Alpha-Beitrag von „-1″ in der Spalte „Sichtbarkeitssatz“ bedeutet, dass die Objekte für die Kamera nicht sichtbar sind und als vollständig schwarz in den resultierenden Alphakanal eingearbeitet werden.
Für die einzelnen Bilder des Golfplatzes berechnen wir das Licht (mittels Light cache und Irridiance Map) und rendern die Bilder in einem Schritt aus. Für die Animation würde dieser Ansatz viel zu viel Zeit in Anspruch nehmen und die Lichtberechnung für jedes einzelne Bild würde auch ein Flackern im Endergebnis verursachen. Aus diesem Grund haben wir uns entschieden, die Berechnung des Lichts vom Rendering zu trennen. Daher wurden zusätzlich zu jedem der drei Beauty-Passes zwei neue Durchgänge erstellt: der Licht-Cache-Pass und der Irridiance-Map-Pass.
Das nächste Bild veranschaulicht den Rendering-Prozess eines einzelnen Bildes und wie wir die neuen Durchgänge für die Animation erstellt haben. Der erste Schritt eines Renderings ist die Berechnung des Light-Caches. Für die Animation haben wir einen neuen Durchgang erstellt, der nur den Light-Cache für die gesamte Animation berechnet. Durch Aktivieren der Option Kamerapfad verwenden im Rollout des Light-Caches ist es möglich, nur das erste Einzelbild des aktiven Zeitsegments zu rendern, und 3ds Max wird den Animationspfad der Kamera bei den Berechnungen mit einbeziehen. Nachdem die Berechnung abgeschlossen ist, wird die resultierende Karte in einer Datei gespeichert.
Der nächste Durchgang dient der Berechnung der Irridiance-Map. Bei der Vorverarbeitung dieses Durchgangs wird die gespeicherte Map des Light-Caches geladen, und dann wird die Irridiance-Map berechnet. Dies geschieht ebenfalls in einem Einzelbild mit der aktivierten Option Kamerapfad verwenden im Irridiance Map Rollout. Ähnlich wie beim Light-Cache-Pass muss nur das erste Einzelbild des aktiven Zeitsegments gerendert werden. Nach der Berechnung wird die map ebenfalls in einer Datei gespeichert.
Im letzten Durchgang wird der Light-Cache als sekundärer Bounce und die Irridiance-Map als primärer Bounce der indirekten Beleuchtung geladen. Danach kann das Bild gerendert werden, ohne dass die indirekte Beleuchtung in der Szene neu berechnet werden muss.
Diese Arbeitsweise macht es sehr einfach, flimmerfreie Animationen zu erhalten, wenn sich nur die Kamera bewegt und nicht die einzelnen Objekte.
Die Vegetation wurde geteilt und die Durchgänge wurden gerendert. Es war also an der Zeit, alle Durchgänge zu einem Bild zusammenzufügen. Dieses Kapitel gibt einen Überblick über unsere Probleme während dieses Prozesses, z.B. das Alphakanalproblem beim Arbeiten mit Masken auf dünnen Objekten in der Szene und wie wir die Reflexion der Bäume auf dem See erhielten.
Wenn Sie an einer Szene arbeiten, die viele sich überschneidende oder verdeckende Objekte enthält, können Änderungen an diesen Objekten in der Kompositionsphase unter Verwendung von Masken dazu führen, dass sichtbare Ränder um die Bereiche entstehen, in denen die Objekte miteinander in Kontakt kommen. Diese Ränder sind das Ergebnis der nicht vollständig schwarzen oder weißen Pixel in den Randbereichen der Objekte in der entsprechenden Maske. Diese Randprobleme können entstehen, wenn es unterschiedliche Anti-Aliasing Ergebnisse für die Beauty-Shots und die Masken-Renderings gibt. Diese Unterschiede können bei der Verwendung eines kontrastbasierten Bild-Samplers auftreten, wie es in den meisten modernen Rendering-Engines gemacht wird. Es ist auch immer dann ein Problem, wenn Objekte mit unterschiedlichen Farben in einem einzigen Bild übereinander liegen. Die Farbe beider Objekte wird zu einem Endergebnis berechnet, das den Kontrast zwischen beiden Bereichen und dem angewandten Bildfilter berücksichtigt. Das Ergebnis kann mit der entsprechenden Maske nicht kongruent sein, so dass Sie sichtbare Ränder um das Objekt herum erhalten, wenn sich Dinge wie Farbe oder Helligkeit des Objekts ändern.
Wir beschlossen, die Objekte in den Durchgängen der Vegetation durch ihre Masken einzufärben, die zusammen mit dem AO-Durchgang als Elemente gerendert wurden, und sie dann miteinander zu verschmelzen. So werden alle Ränder, die bei der Farbkorrektur auftreten können, durch die alpha-maskierte Verschmelzung weggeschnitten.
Für diesen Ansatz war es notwendig, dass der Boden nicht im gleichen Durchgang wie die Vegetation gerendert wird – was in unserem Fall die Durchgänge zwei und drei wären. Der Boden ist jedoch für die Berechnung des Lichts und das Rendering des Schattens auf der Vegetation notwendig, so dass wir dafür eine Lösung finden mussten.
Die gute Nachricht ist, dass VRay dafür eine großartige Option hat -> Den Alpha-Beitrag der Matte-Eigenschaften, der für jedes Objekt existiert und für jeden einzelnen Durchgang mit dem RP-Manager eingestellt werden kann. Diese Option gibt dem Benutzer die Kontrolle darüber, wie das Objekt im Alphakanal erscheint:
Das nächste Bild zeigt eine kleine Szene mit einem Boden, einer Teekanne und etwas Gras, die von einem Multiscatter erzeugt wird. Das Ergebnis des Beauty-Renderings ist immer dasselbe, aber der Alpha ändert sich in Abhängigkeit vom Wert des Alpha-Beitrags der Teekanne.
Das nächste Bild veranschaulicht, wie wir mit unseren Durchgängen gearbeitet haben. Der erste Durchgang rendert nur den Boden und die Objekte ohne jegliche Vegetation. Der zweite Durchgang (einer unserer Vegetationspässe) rendert diese Objekte ebenfalls, schließt aber auch die Vegetation mit ein. Der Alpha-Beitrag für den Boden und die Objekte wurde auf -1 gesetzt. Dadurch sind der Boden und die Objekte in der Lichtberechnung und im Rendering enthalten, aber sie werden nicht im Alpha-Beitrag gespeichert.
Auf diese Weise ist es sehr einfach, den Durchgang der Vegetation einzufärben und einfach mit der Alphamaske über den Boden-Pass zu verschmelzen, da es weder auf den Objekten noch auf dem Gras Ränder der Färbung gibt.
Nur als kurze Anmerkung – das folgende Bild ist nur als Beispiel dafür gedacht, wie man eine Grasschicht von einer Szene trennt. Wir sind uns bewusst, dass es in diesem Bild einige Fehler gibt, wie z.B. der fehlende Schatten des Grases auf der Bodenfläche oder der immer noch wahrnehmbare Farbeffekt am Boden der Teekanne. Sie zu entfernen ist ziemlich einfach, aber darum haben wir uns nicht gekümmert, da es dem Hauptzweck dieser Bilder nicht wirklich dienlich ist.
Wir entschieden uns für einen sehr einfachen und geradlinigen Ansatz, um alle Reflexionen der Vegetation und der Umgebung aller Durchgänge auf den See zu bekommen.
Im ersten Durchgang, dem für den Hintergrund und den Boden, hat die Wasseroberfläche ein Seewassermaterial mit Farbe, Bump-Map, Reflexion und so weiter.
Im zweiten und dritten Durchgang (der erste für Grün und Seegras, der zweite für hohes Gras und Bäume) hat der See ein Override-Material, das mit Hilfe des RP-Managers leicht eingestellt werden kann. Es handelt sich dabei um ein Standardmaterial, das eine schwarze Farbe, 100% Reflexion und auch die gleiche Bump-Map wie das Originalmaterial hat.
Im Compositing ist es also möglich, die Reflexion des Grases und der Bäume des zweiten und dritten Durchgangs auf den See des ersten Durchgangs mit Hilfe der Seeflächenmaske des AO-Durchgangs abzubilden. Ein weiterer Vorteil ist, dass Sie die Intensität und Farbe dieser Reflexionen kontrollieren können.
Auf dem nächsten Bild sehen Sie die verschiedenen Durchgänge mit den unterschiedlichen Materialien für den See. Eine weitere Sache, die Sie bemerken können, ist, dass der Boden im zweiten und dritten Durchgang nicht gerendert wurde, aber wenn Sie dem Alpha-Beitrag einen Wert von -1 geben, wird der See an den Rändern des Bodens und des Sees geschnitten.
Für die Komposition des Golfplatzes verwendeten wir Eyeon Fusion. Das nächste Bild gibt einen Überblick über den endgültigen node-tree. Sie müssen den node-tree von links nach rechts lesen. Zuerst versuchten wir, die Objekte nach ihren Masken einzufärben, nachdem wir die Durchgänge zusammengefügt hatten, aber dann bemerkten wir die Alpha-Probleme und suchten nach einer anderen Lösung, um alles zusammen zu bekommen.
Unser Ansatz bestand darin, die Objekte direkt nach dem Laden der Durchgänge einzufärben. Dann überlagerten wir die Schatten der Objekte aus den verschiedenen Durchgängen auf sie (zum Beispiel den Schatten der Bäume auf das Gras des Grüns), und erst dann verschmolzen wir alle Durchgänge unter dem Einfluss der Alphamasken der Schönheitspässe. Auf diese Weise haben wir das Problem mit den Rändern gelöst.
Der letzte Schritt vor dem Speichern der endgültigen Bilder bestand darin, die Reflexion der Bäume und des Grases auf die Seeoberfläche einzuspiegeln. Das Rechteck mit dem Namen „Farbmatrizen“ wandelt lediglich die Masken von ihren RGB-Werten in eine Schwarz-Weiß-Maske um. Dies ist notwendig, wenn sie mit anderen Masken zusammengeführt werden sollen.
Der Speicherteil besteht aus zwei Speichern, einem für die Schönheit und einem für die Z-Tiefe, und einem Gamut-Operator, der das Bild zu Vorschauzwecken im sRGB-Farbraum anzeigt. Die Schönheit wird als lineares Bild gespeichert, so dass wir in Nachbearbeitungseffekten für einige weitere Effekte wie Linsenreflexe, Schärfentiefe und Entsättigung von Objekten, die sich weit von der Kamera entfernt befinden, richtig damit arbeiten können.
Dies ist das Ende der Übersicht für den Golfplatz und wir hoffen, es hat Ihnen Spaß gemacht, zu lesen und vielleicht ein paar Tipps und Tricks mitzunehmen. Um mehr von unseren Projekten zu sehen, besuchen Sie unseren Showroom.
Tags
Veröffentlicht am 20 Oktober, 2015