 Hallo und herzlich willkommen zurück auf dem Femme-Kanal. Die nächste Speakerin ist Franca. Sie hat sich mit Computer-Grafik befasst und zwar genauer mit der Darstellung von metallischen Oberflächen in verschiedenen Render-Engines. Nach dem Talk wird es leider kein Q&A im Stream geben, dafür wird es eine Breakout-Session in der AC3-World geben und zwar in der Femme-Assembly. Es wird dann nochmal eingeblendet, wo genau das ist. Außerdem ist sie gerade im Chat, das heißt, wenn ihr Glück habt und sie Zeit hat, gibt es vielleicht auch da Antworten. Für die Englisch-Speaking-Listung wird es eine Translation, um das zu hören und die Translater-Stream in der Web-Player. Und jetzt viel Spaß mit dem Talk. Willkommen zum Battle of Render-Engines. Heute soll es um die Frage gehen, ob das gleiche Material, also zum Beispiel Plastik oder Metall, in unterschiedlichen Rendering-Tools zum gleichen Ergebnis führt. Ich heiße Franca Bittner und studiere an der TU Ilmenau Medientechnologie im Master und habe zuvor an der Hochschule der Medien in Stuttgart Audiovisuelle Medien im Bachelor studiert. Und die Ergebnisse meiner Bachelorarbeit sollen heute Thema des Vortrags sein. Die Ergebnisse wurden außerdem schon im Tagungsband der Skill, also der Studierendenkonferenz der Gesellschaft für Informatik dieses Jahr veröffentlicht, unter dem Titel Comparison of Material Models in Modern Physically Based Render-Engine Pipelines. Ja, der erste von den vier Renderern, die ich miteinander verglichen habe, ist der Arnold Renderer aus der 3D Grafik Software Maya. Arnold ist ein Path Tracer, genauso wie Cycles vom Lender. Und beide Renderer sind Offline-Renderer, das heißt stauert etwas, bis man überhaupt einen Ergebnis von ihnen bekommt, also sie funktionieren nicht in Echtzeit. Ganz anders als Eevee, ebenfalls vom Blender und die Unreal Engine 4. Das sind beides Real-Time-Renderer, also Echtzeit-Renderer eben. Und die Unreal Engine 4 ist außerdem noch die 1Gig Game Engine, die ich auch noch mit untersucht habe. Oder ja, die Kategorien, in denen die vier gegeneinander antreten, sind zum einen Rathness, Metallic, Metalness und Specular, sowie Clearcoat. Ja, man sieht hier auch schon den Effekt von allen ein wenig. Ich gehe dann später nochmal genauer drauf ein, was das Ganze überhaupt bedeutet. Warum überhaupt das Ganze? Es geht um Physically-Based Rendering. Und dabei, oder das meint, der Begriff meint, dass man die reale Welt in der virtuellen Versucht nachzumodellieren, und zwar mit Hilfe von physikalischen Gesetzen. Und das hat den Hintergrund, oder warum man das macht überhaupt, ist, dass es letztendlich den Workflow eines 3D-Arts ist vereinfacht. Aber warum? Früher hat man das nicht gemacht und hat letztendlich jedes Phänomen, das man irgendwie beobachtet hat, versucht, für den konkreten Fall nachzumodellieren. Also man hat zum Beispiel Glanzlichter, also einem Mechanismus gebaut, dass man Glanzlichter irgendwie anpassen kann. Oder man hat außerdem Licht und Schatten früher in die Textur hinein gebacken. Allerdings, wenn man ein Objekt verschoben hat in der Szene, oder auch ein Licht, dann musste man natürlich die ganze Szene nochmal neu berechnen und die Textur neu hinein backen, also Bacon. Ja, und damit das Ganze etwas unabhängiger voneinander passiert, also der Szenenaufbau von der Platzierung der Objekte und der Gestaltung der Materialien, hat man eine neue Abstraktions-Ebene quasi eingeführt und das Ganze basierend auf physikalischen Gesetzen implementiert oder angelehnt an physikalische Gesetze. Letztendlich hat es dann auch noch zu realistischeren Ergebnissen geführt, besonders wenn sich mal die Lichtsituationen unerwartet ändern, dann ist das auch nicht mehr so leicht, das Ganze irgendwie per Hand nachzuimplementieren. Aber warum jetzt der Vergleich zwischen den ganzen Ränderern? Es gibt viele verschiedene Materialmodelle, die alle andere Features sozusagen haben, also mit manchen Materialmodellen sind bestimmte Dinge möglich, die mit anderen nicht möglich sind. Und die Frage ist jetzt, oder was man möchte, ist, dass man möglichst intuitive Modelle haben mag, mit denen man als Künstler in guter Arbeiten kann. Deswegen habe ich dann untersucht, wie und ob sich die Materialmodelle der Ränderer unterscheiden und welches Modell außerdem intuitiver ist zu verwenden. Ja, damit es ein fairer Wettkampf ist, muss natürlich auch das gleiche Objekt überall gerendert werden, also abgebildet werden. Ich habe mich für eine einfache konvächse Kugel entschieden, einfach, dass es sehr einfach zu implementieren war. Und außerdem treten sie in zwei verschiedenen Beleuchtungsszenarien gegeneinander an. Das ist zum einen eine sehr unnatürliche Beleuchtung, also eine einfache direkzionale Lichtquelle, die so im echten Leben eigentlich auch nicht vorkommt, aber nichtsdestotrotz ist sie sehr leicht zu implementieren und deswegen auch hiermit in den Ergebnissen mit drin, vor allem weil erwartet wird, dass in dieser Lichtsituation sich alle Ränderer eigentlich ähnlich verhalten müssten. Und demgegenüber steht die sehr natürliche Beleuchtung, die implementiert ist durch Image-Base-Lighting mit vier verschiedenen Environment-Maps. Wem das jetzt nicht sagt, das ist nicht schlimm, das kommen gleich noch ein paar Bilder. Ja, ausgewertet habe ich das Ganze dann, indem ich die Ergebnisse in einer Materialtabelle gegenübergestellt habe und dann quantitativ verglichen habe. Und hier unten sieht man hier fünf verschiedenen Beleuchtungs-Szenarien, das heißt um einen ganz links diese sehr unnatürliche Beleuchtung mit nur einer direkzionalen Lichtquelle, die so nicht vorkommt und daneben die verschiedenen natürlichen Szenarien. Das, was im Hintergrund ist oder auch was hier quasi mit Moonless Goal von so gemeint ist, sind die verschiedenen vier Arenen sozusagen. Ja, im Endeffekt sind das quasi die Bilder, die man für das Image-Base-Lighting verwendet, also der Hintergrund, der sozusagen bestrahlt wird und dann das Licht abwirft auf die Kugel, grob gesagt. Ja, und da nun jetzt alle, alles grundlegende erklärt wurde, bleibt nur noch zu sagen, ja, fine. Hier sind die Ergebnisse der Kategorie Ratherness. Ja, zuerst fällt vielleicht auf, dass gar nicht so viel anders ist, wie auch erwartet in der unnatürlichen Beleuchtungssituation, aber auch in anderen. Es sind die Ergebnisse eigentlich von Ratherness sehr ähnlich. Was meinen Ratherness überhaupt? Es geht darum, ob ein Objekt sehr rau ist oder eher eine glatte Oberfläche hat und dementsprechend Licht sehr gebündelt zurückwirft oder eher breit gefächert und verteilt. Und hier sieht man auch, wie ich überhaupt vorgegangen bin, also in dieser Material-Tabelle. Ich habe für jeden Renderer ein Rendering-Framework geschrieben, also mir weniger zugeschnitten auf den Renderer, da es halt da noch keine vereinheitliche Schnittstelle gibt. Das kommt zwar jetzt langsam mit Python, aber das war zu dem Zeitpunkt noch nicht so gegeben. Jedenfalls habe ich dann in Schritten, hier mit einer Schrittweite von 0,1, den Parameterwert immer erhöht. Das gilt für alle anderen Parameter auch. Und ja, dann hier immer ein Bild gemacht sozusagen und das Ganze dann in der Tabelle dann gegenübergestellt. Also von Ratherness gleich 0, das würde bedeuten ein ganz glattes Objekt, so glatt, dass man hier das Highlight schon gar nicht mehr sieht. Bis hin zu Ratherness gleich 1, das wäre quasi das rauere Objekt. Schlecht denn also ein Lumbatches Material ist auch nicht weiter wichtig. Und hier sieht man außerdem noch in einer Material-Tabelle mit Differenzbildern, was sich zwischen den Schritten verändert. Also wenn jetzt Ratherness von 0,0 auf 0,1 geändert wird, was ändert sich? Wenn die Farbe rot ist, bedeutet es, dass es heller geworden ist. 0 ist quasi weiß, gleich geblieben und sollte eine Fläche blau gefärbt sein, bedeutet es, dass sie dunkler geworden ist im Vergleich zum vorherigen Bild. Und ganz rechts habe ich noch mal dargestellt, quasi vorher nachher Ratherness gleich 1 gegen Ratherness gleich 0. Ja und wie man es sieht ist vor allem zwischen den Renderern Cycles und Arnold, im Gegensatz zu Eevee und Unreal, ein Unterschied zu merken, nämlich am Rande der Kugel. Besonders auch bei Cycles nochmal so am inneren Render der Kugel, nämlich der Terminator. Das scheint eine Besonderheit der Path Tracer zu sein. Es ist immer ein bisschen schwer zu sagen, aber vermutlich liegt es daran, dass besonders hier die Effekte besser eingefangen werden. Und letztendlich, wenn man die beiden sich hier auch nochmal im Detail anschaut, fällt außerdem auf, dass Cycles hier einem rechten Plot in gelb dargestellt, außerdem am Rande der Kugel auch nochmal einen Anstieg in der Helligkeit hat. Also was wir hier sehen ist quasi eine einzelne Bildzeile geplottet, die Helligkeitswerte von dem grünen Kanal. Der grünen Kanal ist quasi stellvertretend einfach für das, was wir Menschen als Helligkeit wahrnehmen, weil der Großteil davon aus dem grünen Kanal kommt. Und genau dieser kleine Anstieg am Ende der Kugel, der am Rande der Kugel, wo es sogar heller ist als in der Mitte der Kugel, das nennt man Retroreflektivität und das modelliert nur Cycles tatsächlich korrekt. Also Arnold hat das auch nicht, genauso wie die anderen Renderer, auch nicht korrekt dargestellt. Und ja, auch hier unten, was quasi ein grauer hier noch dargestellt ist, ist, dass die Kugel selbst das ist ein kleiner Bildausschnitt, um das noch ein bisschen schöner darzustellen. Ja, das bringen wir weiter zum nächsten Parameter, nämlich Metallic. Hier gibt es schon größere Unterschiede, vor allem wenn man sich den Renderer die Unreal Engine anschaut, im Vergleich zu den anderen 3. Und hier nochmal die Übersicht im Detail, da fällt besonders das mit Unreal nochmal mehr auf. Allerdings, wenn man sich anschaut, was von einem Schritt auf den nächsten passiert, sieht es bei allen Renderern ziemlich ähnlich aus. Das spricht dafür, dass der Parameter eigentlich nur linear interpoliert wird. Also, ich habe mir auch die Implementierung im Source Code immer angeschaut von allen Renderern und so gut wie bei allen, hat Metallic eigentlich nur den Einfluss zwischen dem Zustand nicht metallisch und metallisch linear zu interpolieren und das sieht man hier eigentlich ganz schön. Mit Ausnahme eben von Unreal und außerdem Unreal, hier habe ich auch nochmal wieder eine Bildzeile geplottet von einem auf der linken Seite nicht metallischen und auf der rechten Seite metallische Material. Ich wollte hier vor allem ausschließen, dass ich einen Fehler begangen hätte bei der Implementierung von der Lichtsituation, was zum Beispiel Unreal von vornherein etwas dunkler wäre. Es ist zwar leicht dunkler, aber im Großen und Ganzen würde ich trotzdem mir behaupten, dass ich es gut getroffen habe und das an die anderen angeglichen habe. Nichtsdestotrotz ist der Unterschied dann bei Metallic sehr groß und ich konnte leider nicht herausfinden, warum das so ist. Nur, dass es anscheinend in meinen Experimenten zumindest so war. Ja, der nächste Parameter wäre Specular und der Einfluss von Specular ist schon etwas dezenter, wie man merkt. Bei Arnold ist er fast gar nie zu sehen. Bei Evian's Cycles verändert sich auch gerade wieder am Rand hin einiges. Was man vielleicht merkt ist, dass dieses Highlight von diesem Fenster, diese Spiegelung sozusagen ein und ausfaded, also sie erscheint und wird leicht wieder ausgeblendet. Und im Endeffekt ist es auch das, was Specular macht. Es geht darum, also in den drei unteren Rennen, Cycles Evie und Unreal, beeinflusst Specular intern den Brechungsindex. In Arnold hingegen funktioniert das Ganze wirklich als einfach Multiplayer, also einfach Wert, der mit dem tatsächlichen Lichtwert, also Helligkeitswert von dem Highlight multipliziert wird. Das heißt, hier hat der Parameter eine grundlegende andere Funktionalität in den Programmen tatsächlich, obwohl man das natürlich so, wenn man an die Programme reingesetzt wird, ist man gar nicht weiß. Man denkt natürlich gleiche Name und es wird auch wahrscheinlich das gleiche beeinflussen. Das ist tatsächlich nicht der Fall. Das sieht man auch ganz gut hier in den Differenzbildern. Bei Arnold wird es quasi immer dunkler zum Rand hin, außen herum. Wohingegen ist bei Cycles und Evie besonders am Rand hin heller wird? Je mehr man den Parameterspecular incrementiert, also von 0 auf 1, anhebt. Ja, und das ist vermutlich auch wieder der Fall, weil hier der Fresnel-Effekt einen Einfluss hat. Ich werde jetzt allerdings im Rahmen dieses Vortrags nicht weiter darauf eingehen. Es geht nur grob quasi darum, dass um die Reflektivität, also wie sie etwas sozusagen spiegel am Rande eines Objekts, und im Endeffekt ist es tatsächlich ja korrekt, wenn das Licht dann, also aus physikalischer Sicht, soweit ich das beurteilen kann. Ich bin natürlich auch kein Experte darin. Ja, aber korrekt, wenn das Licht dann stärker reflektiert wird, ja, mit dem anderen Brechungsindex hier. Und die letzte Kategorie, Clearcoat. Ebenfalls der Effekt ist wieder sehr subtil in allen vier Ränderaden. Dieses Mal, dieses noch am stärksten in Arnold, womit er sehen kann, hoffentlich sieht man es, dass der Rande etwas dunkler wird, der Kugel. Falls man es gerade nicht gesehen haben sollte, sieht man es hier auf jeden Fall noch mal in den Differenzbildern. Und ja, da ist tatsächlich auch der Effekt, also was Clearcoat überhaupt tut, vielleicht muss man an der Stelle mal erklären. Es gibt einen Unterschied zwischen Clearcoat und Rathness, der auch sehr subtil ist, mehr oder weniger. Also man muss genau hinschauen, zumindest in meinen Ergebnissen. Also es kann gut sein, dass es in anderen Szenen besser ersichtlich ist oder auch vor allem mit anderen Objektformen. Aber hier habe ich jetzt mal Beispiele gebracht, ganz links von der Kugel, wo Rathness auf 0,2 gestellt ist, also der Defaultwert und Clearcoat auf 0,0. Wenn man jetzt Clearcoat auf 0,0 auf 1,0 stellt, dann sieht man, dass dieses leicht, also dieses rauchende Highlight immer noch verblört im Hintergrund zu sehen ist leicht. Verminder man stattdessen aber Rathness von 0,2 auf 0,1 und das Clearcoat bei 0,0 im rechten Bild. Hat man ein ähnliches Highlight, aber dieser leicht verblörte Hintergrund aus herum, verschwommen in der Hintergrund, der fehlt hier und das spricht also, Clearcoat meint im Endeffekt, dass man eine A2-Teschicht auf das Material aufträgt, die dann nochmal besonders mit dem Licht reagiert. Genaueres habe ich darüber auch gar nicht herausfinden können, aber das soll anscheinend der Effekt sein und der Name an sich ist auch sehr intuitiv, deswegen hatte ich den Parameter auch immer als sehr intuitiv abgestempelt, auch wenn der Effekt sehr subtil ist. Ja, das wäre es eigentlich auch schon zusammenfassend nur noch mal hier. Nicht alle Renderer stellen eben das vermeintlich gleiche Material gleich da, vermeintlich deswegen, weil ich natürlich auch nicht immer garantieren kann, dass es wirklich eins zu eins genau das gleiche Material ist, dass ich in jedem Renderer nachgebastelt habe. Aber ich habe es so gut scheme versucht und die gleichen Werte eingestellt. Besonders natürlich dort, wo die Werte, also wo die gleichen Materialparameter Namen verwendet wurden, da habe ich den gleichen Wert eingegeben. Das hat wiederum zur Folge oder dass sich ein Problem darstellt für 3D-Künstlerinnen, denn der Austausch von solchen Materialien zwischen den Tours wird untereinander dadurch erschwert. Das heißt, man kann nicht mal eben den coolen Shader, also Shader, mein Demand Effekt auch in dem Kontext des Materiales, den von Arnold hinüber kopieren in die Unreal Engine, ohne dass dabei Informationen entweder verloren gehen oder falsch interpretiert werden. Und die größten visuellen Unterschiede entstehen allerdings oft trotzdem noch durch die Rendetechnik selbst. Das heißt, oft haben die Path Tracer dann doch noch mal ein realistisches Ergebnis, sag ich mal, als die Echtzeitrennerer, die das Ganze dann doch meistens vereinfacht darstellen. Ja, vielleicht wird es auch in Zukunft eine Art dannetisiertes Materialmodell geben. Ich hatte auch schon Arbeiten gesehen in Richtung Web-basiertes Darstellen von Materialien. Das wäre auf jeden Fall interessant. Und was es noch zu berücksichtigen gibt bei dem Ganzen, ist, dass ich den Einfluss von Algorithmen zum Lichttransport, also Ray Tracing, Path Tracing, Restorization, nicht systematisch weiter erforscht habe. Und die Auswahl von Environemaps-Objektformen haben natürlich auch einen Einfluss, ebenso wie die Grundfarbe, also Albedo, nennt man es auch, eines Objekts und die Texture. Außerdem könnte man, wer ist natürlich interessant, inwiefern sich die Materialparameter untereinander noch beeinflussen, denn eigentlich ist ja das, was man macht. Man schraubt ja nicht nur in einem Parameter herum, sondern an einer Vielzahl von Parameter. Letztendlich wäre es natürlich auch noch spannend, andere Rendering Tools, wie z.B. die Game-Engines Unity oder die Godot-Engine zu untersuchen. Und darüber hinaus natürlich noch anderen Materialmodelle, also anisotropische Material oder transmensive oder welche die Volumenstreuung, wo Volumenstreuung vorkommt, zum Beispiel Subsurface-Skettering ist alles Stichwort, z.B. an Haut. Ja, falls ihr bis jetzt zugehört habt, danke ich für die Aufmerksamkeit. Swisscode und Grafiken könnt ihr hier auf der Projektwebs-Seite finden. Und hier ist auch noch mal die Veröffentlichung zu dem Vortrag ebenso wie meine Referenzen. Vielen Dank. Ja, vielen Dank, Franke, an den sehr interessanten Vortrag. Wie bereits gesagt, gibt es keinen Q&A hier im Stream, aber es gibt eine Breakout-Session in der RC3 World und die findet in der Femme-Assembly-Stadt. Also das müsste jetzt demnächst eingeblendet werden, genau hier. Falls ihr kein Ticket habt, könnt ihr auch den GCC-Link direkt aufrufen. Falls ihr das Brauch schreibt noch mal im Chat, dann müsst ihr jemand den posten. Genau hier im Femme-Kanal gibt es als nächstes um 21 Uhr die nächsten Verkehrsnachrichten. Dann um 22 Uhr berichtet uns Jakob über Signale und Filterdesign und um Mitternacht gibt es dann noch mal eine richtige RC3 News Show. Tschüss und bis dahin.