Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya

Die Seite wird erstellt Nikolas-Stefan Hamann
 
WEITER LESEN
Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya
Vergleich von Automatisierungsmöglichkeiten für
       Textur‐Baking in Blender und Maya

                 Studiengang Medieninformatik

                        Bachelorarbeit
                            vorgelegt von

                         Jakob Kübler
                           geb. in Gießen

                     durchgeführt bei der Firma
                         mi360 GmbH, Lich

        Referent der Arbeit:      Prof. Dr. Cornelius Malerczyk
        Korreferent der Arbeit:   M. Sc. Hans Cristian Arlt
        Betreuer mi360 GmbH:      Dipl.‐Ing. Michael Müller

                           Friedberg, 2020
Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya
Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya
Danksagung

Ich möchte an dieser Stelle den Personen, die die Entstehung dieser Bachelor Arbeit an vielen
Stellen betreut und begleitet haben, meinen Dank aussprechen:

Ich danke Prof. Dr. Cornelius Malerzyk für die Begutachtung der Arbeit, für die Anregun‐
gen in der Themensuche und Formulierung des Schwerpunkts.

Ich danke Hans Christian Arlt, der diese Arbeit als zweiter Referent beurteilt.

Ich danke Michael Müller von der mi360‐GmbH für die Betreuung der Arbeit und der
Bereitstellung aller benötigten technischen Ressourcen.

Ich danke Sophie Seip und Andre Rinn für ihre gewissenhafte Korrekturlesung.

Ich danke meinen Eltern für ihre uneingeschränkte Unterstützung, die weit über den Ab‐
schluss dieser Arbeit und dieses Studiums hinaus geht.

Ich danke Madeleine Seip, Niklas Rinn, Julia Bunke, Pascal Schüler und allen zuvor ge‐
nannten Personen für viele Gespräche bezüglich des Inhalts und der Form der Arbeit und für
viele Worte der Unterstützung.

Jakob Kübler

Friedberg, Dezember 2020

                                                i
Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya
Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya
Selbstständigkeitserklärung

Ich erkläre, dass ich die eingereichte Bachelorarbeit selbstständig und ohne fremde Hilfe
verfasst, andere als die von mir angegebenen Quellen und Hilfsmittel nicht benutzt und die
den benutzten Werken wörtlich oder inhaltlich entnommenen Stellen als solche kenntlich
gemacht habe.

Friedberg, Dezember 2020

Jakob Kübler

                                            iii
Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya
Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya
Inhaltsverzeichnis

Danksagung                                                                                                                                   i

Selbstständigkeitserklärung                                                                                                                iii

Inhaltsverzeichnis                                                                                                                          v

Abbildungsverzeichnis                                                                                                                      vii

1 Einleitung                                                                                                                                1

2 Verwandte Arbeiten                                                                                                                        5

3 Grundlagen                                                                                                                                7
  3.1 Physically Based Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                    7
  3.2 Shading Prinzipien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                 10
  3.3 Baking und Textursynthese . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                    13

4 Methodik                                                                                                                                 19
  4.1 Ist‐Zustand . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   20
  4.2 Entwicklung der Addons . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   24
      4.2.1 Anforderungen an die Skripte           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   24
  4.3 Umsetzung Blender . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   25
      4.3.1 Vorbereitung . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   25
      4.3.2 Operator . . . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   27
      4.3.3 Benutzeroberfläche . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29
  4.4 Umsetzung Maya . . . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   32
      4.4.1 Vorbereitung . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   32
      4.4.2 Zugriff auf Materialien . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   34
      4.4.3 Benutzeroberfläche . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   36

5 Ergebnisse                                                                                                                               39
  5.1 Auswertung: Skript‐Entwicklung . . . . . . . . . . . . . . . . . . . . . . . . .                                                     39
       5.1.1 Ressourcen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                    39
       5.1.2 Datenzugriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                  40

                                               v
Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya
INHALTSVERZEICHNIS

                  5.1.3 Baking‐Features . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   41
                  5.1.4 Benutzeroberfläche . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   42
            5.2   Auswertung: Baking‐Ergebnisse .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   43
            5.3   Fazit . . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   46

        6 Ausblick und Zusammenfassung                                                                                                                      47

        A Anhang                                                                                                                                            49
          A.1 Blender Code ‐ Operator . . . . . . . . . .                       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   49
          A.2 Blender Code ‐ User Interface. . . . . . . .                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   56
          A.3 Maya/Arnold Code ‐ Material Vorbereitung.                         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   60
          A.4 Maya/Arnold Code ‐ User Interface . . . . .                       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   64

        Bibliography                                                                                                                                        67

vi
Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya
Abbildungsverzeichnis

1.1    Game‐Asset‐Pipeline; Quelle: https://druidstone-game.com/ . . . . . . . . .                2
1.2    Maps für die Darstellung einer Goldschale. . . . . . . . . . . . . . . . . . . . . . .     3

2.1    Darstellung Input und Output des Frameworks von Hu et al. . . . . . . . . . . . .          6

3.1    Vergleich zwei Sphären geshaded im Metalness‐Workflow (links) und im Specular‐
       Workflow (rechts) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   9
3.2    BRDF als Funktion der Lichtrichtung L und der Betrachtungsrichtung V, Grafik:
       [Wat02] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
3.3    Phong‐Modell Beleuchtungsanteile, Grafik: Wikipedia . . . . . . . . . . . . . . . .       11
3.4    Beispiel Subsurface Scattering, Grafik: Wikipedia . . . . . . . . . . . . . . . . . .     12
3.5    Strahlenverteilung innerhalb eines Materials, Grafik: [HK93] . . . . . . . . . . . .      12
3.6    Principled BSDF von Blender und aiStandardSurface von Maya/Arnold . . . . . . .           13
3.7    Konzeptionierte Shade‐Trees, Grafik: [Coo84] . . . . . . . . . . . . . . . . . . . .      14
3.8    Beispiel Shading‐Tree(l) und Renderergebnis(r). Nodes: a) Einzelwert, b) Re‐
       chenoperation, c) Textur‐Node ‐ Schachbrettmuster mit vorgeschalteten d) UV‐
       Koordinaten als Eingangsvektor, e) Shader‐Node ‐ Enthält die BSDF f) Material Out‐
       put ‐ regelt Verbindung zum Objekt. . . . . . . . . . . . . . . . . . . . . . . . . .     15
3.9    Shading Tree zum Erzeugen einer prozeduralen Bump‐Map. Die Noise‐Textur
       nimmt Objektdaten als Initialisierungsvektor entgegen. Die erzeugte Textur wird
       in einen Schwarz‐Weiß Farbverlauf übergeben, mit dem die Höhen und Tiefen an‐
       gepasst werden können. Endpunkt ist eine Bump‐Node, die die eingehenden Daten
       in eine Bump‐Map umwandelt. Die Oberfläche des Objekts wirkt dadurch unregel‐
       mäßig. Render: Blender/Eevee . . . . . . . . . . . . . . . . . . . . . . . . . . . .      16
3.10   Durch Ändern eines Parameters, der Weißtöne in der Noise‐Map, wirken die Bump‐
       Anteile nun wie herausgebrochene Stellen. . . . . . . . . . . . . . . . . . . . . .       16
3.11   Node‐Tree eines prozeduralen Mauer‐Materials. Quelle: youtuber ‐ Erindale . . . .         17
3.12   UV‐Mapping des Utah‐Teapots. . . . . . . . . . . . . . . . . . . . . . . . . . . . .      17
3.13   Gebakte Color‐Map und Rendering. . . . . . . . . . . . . . . . . . . . . . . . . .        18

4.1    Die Baking‐Funktion von Blender (links) und Maya/Arnold (rechts). . . . . . . . . .       22
4.2    Flussdiagramm Baking‐Prozess: Blender(l) und Maya/Arnold(r)
       Orange: Vorbereitung; Grün: Prozess im Material; Blau: Nachbereitung . . . . . . .        23

                                                 vii
Vergleich von Automatisierungsmöglichkeiten für Textur Baking in Blender und Maya
ABBILDUNGSVERZEICHNIS

        4.3    Setup vor dem Baking‐Prozess für das Baken des Base‐Color‐Inputs des principled
               BSDF‐Shaders: a) Ausgewähltes Objekt, b) ausgewählte Image‐Texture‐Node, c)
               Baking‐Node, Material‐Shader, e) Hilfs‐Emit‐Node, f) Material Output, e) Baking‐
               Property‐Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      24
        4.4    Präambel eines Blender Addons . . . . . . . . . . . . . . . . . . . . . . . . . . .         26
        4.5    Grundgerüst des neuen Operators . . . . . . . . . . . . . . . . . . . . . . . . . .         27
        4.6    Default‐Inputs und Hilfs‐Node. . . . . . . . . . . . . . . . . . . . . . . . . . . . .      28
        4.7    Eine Geometry‐Node mit mehreren Ausgängen. . . . . . . . . . . . . . . . . . . .            28
        4.8    Material Slots eines Objekts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     28
        4.9    Code bis zur Baking‐Funktion. . . . . . . . . . . . . . . . . . . . . . . . . . . . .       30
        4.10   Grundaufbau einer UI‐Klasse. . . . . . . . . . . . . . . . . . . . . . . . . . . . .        31
        4.11   Erstellen eines Int‐Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   31
        4.12   Fertiges Addon eingebettet in das Property‐Panel der Cycles‐Engine. . . . . . . . .         32
        4.13   ls()‐Funktion, Beispielargumente grenzen die Liste ein auf selektierte Objekte (sl),
               die sich in einer DAG‐Hierarchie befinden (dag) und vom Typ ẞhapeßind. Die Kon‐
               sole gibt die Shape‐Objekte der selektierten Meshes als Liste aus. . . . . . . . . .        33
        4.14   Die neue Klasse Bakelist. Die Klasse erhält direkt eine Funktion zum Updaten der
               Baking‐Passes. Diese werden im späteren Userinterface durch Betätigen von Check‐
               Boxen hinzugefügt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      34
        4.15   Verbindung eines Einzelwert‐Outputs mit einem RGB‐Input. . . . . . . . . . . . .            35
        4.16   In dieser Funktion findet nach Bestimmen des Speicherorts und des Speicherna‐
               mens der Baking‐Prozess mit Render‐To‐Texture statt. . . . . . . . . . . . . . . . .        36
        4.17   Import der Bibliotheken und Initialisierung der Init() für die Benutzeroberfläche. .        36
        4.18   Die doExport‐Methode wird beim Betätigen des Render‐Buttons ausgeführt. . . . .             37
        4.19   Fertiges Addon eingebettet in das Render‐To‐Texture Fenser von Arnold/Utilities. .          38

        5.1    Vergleich Youtube‐Suchanfragen Maya Python, Blender Python von Nov. 2019 bis
               Nov. 2020; Quelle:https://trends.google.com/ . . . . . . . . . . . . . . . . . . . .        40
        5.2    Operator‐Template im Skripting‐Bereich von Blender. . . . . . . . . . . . . . . . .         40
        5.3    Vergleich Lesen/Schreiben von Daten. . . . . . . . . . . . . . . . . . . . . . . . .        41
        5.4    Renderings am Objekt mit Test‐Texturen (Cylces l., Arnold r.) Texturen Quelle:
               https://texturehaven.com/ . . . . . . . . . . . . . . . . . . . . . . . . . . .             43
        5.5    Ergebnis Render‐To‐Textue des blauen Würfels. Das Material des roten Würfels
               überdeck Flächen, auf denen Schatten sein müssten. Die tatsächlichen Schatten
               auf der Textur sind länger als zu erwarten wäre. . . . . . . . . . . . . . . . . . . .      45

        A.1 Liste der Baking‐Passes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       49
        A.2 Funktion zum Erstellen der Baking‐Bilder. . . . . . . . . . . . . . . . . . . . . . .          49
        A.3 Code, um Zugriff auf die Materialien eines Objektes zu erhalten. . . . . . . . . . .           50
        A.4 Funktion zum Isolieren der Nodes, deren Informationen gebaket werden sollen. . .               50
        A.5 Funktion zum erstellen temporärer Nodes mit Default‐Werten. . . . . . . . . . . .              51
        A.6 Ergänzung von getBakingNodes() (vgl. Abb. A.4) um ein else‐statement, für den Fall
            dass einem benötigten BSDF‐Input keine Node zugewiesen wurde. . . . . . . . . .                51
        A.7 Funktion, um den korrekten Otput einer Baking‐Node zu ermitteln. . . . . . . . . .             52

viii
Abbildungsverzeichnis

A.8    Funktion zur Erstellung der Texture‐Nodes im Material. . . . . . . . . . . . . . . .       52
A.9    Funktion zum Erstellen einer temporären Emit‐Shader‐Node. . . . . . . . . . . . .          53
A.10   Code der Baking‐Funktion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      54
A.11   Funktion zum Wiederherstellen der Materialien. . . . . . . . . . . . . . . . . . .         55
A.12   Anlegen der benötigten Properties zur Eingabe von Nutzer‐Daten. . . . . . . . . .          56
A.13   Registrieren der benötigten Properties und Anlegen eines Property‐Pointers. . . .          57
A.14   Draw‐Funktion des Haupt‐Panels. . . . . . . . . . . . . . . . . . . . . . . . . . . .      57
A.15   Draw‐Funktion des Option‐Panels. . . . . . . . . . . . . . . . . . . . . . . . . . .       58
A.16   Draw‐Funktion des Export‐Panels. . . . . . . . . . . . . . . . . . . . . . . . . . .       58
A.17   Mit Register werden neue Funktionen in Blender dauerhaft angemeldet. . . . . . .           59
A.18   Funktion, die die Materialien des Objekts in ein Dictionary einfügt. . . . . . . . . .     60
A.19   Funktion, die die Baking‐Nodes ermittelt und gegebenenfalls erstellt. . . . . . . .        61
A.20   Setzen der Verbindungen der Baking‐Nodes zum Utility‐Shader und vom Utility
       Shader zum Surface‐Shader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       62
A.21   Diese Funktion überprüft rekursiv, ob der Name der zu rendernden Map schon im
       Zielverzeichnis vorhanden ist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   62
A.22   Die cleanUp Funktion setzt die Materialien in ihren Ausgangszustand zurück. . . .          63
A.23   Die Methode zum Bauen der Benutzeroberfläche des Bake‐PBR‐Fensters. . . . . .              64
A.24   Diese Methoden werden an die Check‐Boxen der Bake‐Passes gebunden und lösen
       die updateBakeList()‐Funktion aus. . . . . . . . . . . . . . . . . . . . . . . . . . .     65

                                                                                                         ix
Kapitel 1

Einleitung

Der PBR‐Workflow (Physically Based Rendering) hat sich in der professionellen 3D‐Entwicklung
in vielen Firmen durchgesetzt, da der Prozess leicht zu verstehen ist und stabile Arbeitsstruktu‐
ren bietet. Nach PBR zu arbeiten bedeutet, Renderings zu erstellen, die physikalisch plausibel
sind und für den Betrachter überzeugend wirken[PJH16]. Zusammengefasst hängt die Bildge‐
bung in der Computergrafik von drei Dingen ab: Der Lichtquelle, der Struktur, der betrachte‐
ten Oberfläche und der Position des Betrachters. Diese Beziehungen plausibel zu simulieren
ist das Ziel von PBR. Abgesehen von soliden Rechenmodellen für die Interaktion von Licht und
Oberflächen, liegt es an 3D‐Entwicklern die Oberflächen von Objekten, also ihre Materialien,
so überzeugend wie möglich zu gestalten. Dazu werden in der 3D‐Industrie viele spezialisierte
Lösungen angeboten.
    Autodesk Maya und Blender sind 3D‐All‐In‐One‐Programme, mit dem Anspruch ihren Nut‐
zern einen vollständigen 3D‐Workflow zu ermöglichen. Maya ist seit Jahren der Industriestan‐
dart in der 3D‐gestützten Filmproduktion und ist an vielen Lehrinstituten das Programm, mit
dem professionelle 3D‐Entwickler ihre ersten Erfahrungen machen[Aut20a]. Mayas Kern ist ei‐
ne maximale Funktionalität, die versucht so viele Nutzer wie möglich zu erreichen. Im Gegen‐
satz zu Maya ist Blender ein Free‐Ware‐Programm[Fou20]. Es ist für Hobbyisten, aber auch viele
professionelle 3D‐Entwickler und ‐Künstler das Entwicklertool der Wahl. Es wirbt aktiv mit sei‐
ner Nutzerfreundlichkeit und den vielen online verfügbaren Lernressourcen. Beide Programme
erlauben mit ihrer jeweiligen Shading‐Funktion ebenfalls die Möglichkeit PBR‐Materialien zu
erstellen. Blenders Kombinationsshader pBRDF und der in Maya integrierte aiStandardSurface
der Render‐Engine Arnold[Sol20b], sind beides Shader, die auf PBR‐Prinzipien beruhen.
    Der Shading‐Workflow beider Programme erlaubt eine große Kontrolle und kreativen Aus‐
druck. Umfangreiche Node‐Netzwerke für prozedurale Shader können in beiden Programmen
erstellt werden. Die Prinzipien sind jeweils ähnlich und die Ergebnisse vergleichbar. Die Nut‐
zung der erstellten Materialien funktioniert innerhalb von Maya und Blender sehr gut. Schwie‐
rigkeiten treten auf, wenn diese Programme nicht die Endanwendung zur Darstellung eines
3D‐Objektes sind, sondern nur Teil eines größeren Workflows. Üblicherweise bedienen sich
Entwickler mehrerer Anwendungen, um Ergebnisse zu produzieren. Die Tabelle 1.1 und die Ab‐
bildung 1.1 zeigen einen typischen Workflow zum Modellieren und rendern von 3D‐Objekten
in Videospielen.

                                               1
1. EINLEITUNG

                                       Tabelle 1.1: Game‐Asset Pipeline

         Konzept                            Photoshop, Ilustrator, ZBrush
         High‐Poly Modeling                 ZBrush
         Low‐Poly Modeling                  Maya, Blender
         UV‐Mapping                         Maya, Blender
         Normal Baking                      Maya, Blender
         Texturing                          Substance Designer, Quixel Mixer
         Animation                          Maya, Blender
         Rendering                          Unity Engine

                Abbildung 1.1: Game‐Asset‐Pipeline; Quelle: https://druidstone-game.com/

            In der Industrie haben sich Workflows etabliert, in denen Dritt‐Software wie Substance‐
        Painter ubiquitär verbreitet sind. Diese Programme sind unbestreitbar effizient in ihrer Funkti‐
        onsweise und ihre Nutzung wird in der 3D‐Szene von vielen Entwicklern beworben und von den
        meisten Firmen gefordert. Die Verwendung von Dritt‐Software zur Problemlösung hat prakti‐
        sche Gründe. Während 3D‐All‐In‐One Software die Möglichkeit eines abgeschlossenen Work‐
        flows wie eben beschrieben bietet, sind spezialisierte Programme meist funktionsreicher und
        intuitiver in ihrer Nutzung. Häufig ist mit weniger Zeitaufwand ein äquivalentes, oder besseres
        Ergebnis zu erzielen.
            Die Nutzung von weiterer Software verlangt von Entwicklern eine zusätzliche Investition
        von Geldern und Arbeitszeit, um ihre Mitarbeiter zu schulen und Programmlizenzen zu erwer‐
        ben. Entsprechend müssen Firmen abwägen, welche Programme für ihren Workflow essenziell
        sind, und welche Funktionalität mit Maya oder Blender ausreichend abgedeckt ist. Die Program‐
        me sind für das Arbeiten in einem PBR‐Workflow gut ausgestattet. Die großen Kombinations‐
        shader sind intuitiv benutzbar und erlauben die Erstellung von nicht‐destruktiven, prozeduralen

2
Materialien12 . Die umfangreichen Möglichkeiten des Shadens in Maya und Blender stehen aber
in auffälligen Kontrast zur Möglichkeit diese Materialien in Form von Texture‐Maps außerhalb
der Programme zu nutzen. Texture‐Maps hatten schon immer eine große Bedeutung in der
3D‐Visualisierung. Sie sind einfach in der Handhabung, flexibel für die entsprechende Arbeit
nutzbar und bieten die Möglichkeit viele Details mit wenig Speicherplatz darzustellen. Außer‐
dem lassen sie sich sehr einfach programmübergreifend nutzen. Dies hat sich auch im nun weit
verbreiteten PBR‐Workflow nicht geändert. Häufig werden nur wenige Maps benötigt, um ein
überzeugendes Material darzustellen[AHH08].

                      Abbildung 1.2: Maps für die Darstellung einer Goldschale.

     Die bereitgestellten Möglichkeiten von Maya und Blender generierte Materialien als
Texture‐Maps zu exportieren, sind nicht für Projekte mit vielen Texture‐Maps geeignet. Ma‐
ya/Arnold „Render to Texture“ und Blender „Bake Maps“ erlauben jeweils nur die Generierung
einer einzelnen Map, bevor der Workflow wiederholt werden muss. Der Mangel an Funktiona‐
lität ist aber nicht auf eine schlechte Qualität der errechneten Maps zurückzuführen, sondern
nur auf die Schwierigkeit der Bedienung. Die benötigte Zeit zum Erstellen und Exportieren von
Texture‐Maps ist linear zur gewünschten Anzahl. Das heißt, je mehr Materialien und unter‐
schiedliche Maps man exportieren möchte, desto mehr Zeit muss man aufwenden. Dies führt
zu einem unflexiblen Workflow, in dem Änderungen an Modell und Material viel Arbeitsauf‐
wand darüber hinaus generieren. Außerdem handelt es sich um eine sehr repetitive Arbeit, die
die stetige Aufmerksamkeit des Entwicklers erfordert.
     Um diesen Umständen praktisch zu begegnen, empfiehlt sich die Entwicklung von Auto‐
matisierungsskripten, die repetitive Klickarbeit übernehmen und bei solider Programmierung
die Fehleranfälligkeit reduzieren. Blender und Maya bieten umfangreiche Möglichkeiten die
Nutzeroberfläche zu individualisieren und eigene Programmfunktionen zu erstellen. Beide stel‐
len eine interne Programmieroberfläche zur Verfügung. Um die Potentiale des PBR‐Texture‐
Bakings in Blender und Maya besser einordnen zu können, untersucht diese Arbeit wie gut
sich der Prozess im jeweiligen Programm automatisieren lässt. Zu diesem Zweck wird jeweils
   1
       www.blender.org, abgerufen am 01.12.2020
   2
       docs.arnoldrenderer.com, abgerufen am 01.12.2020

                                                                                                3
1. EINLEITUNG

        ein Addon für Blender und Maya entwickelt, dass den limitierten Textur‐Baking‐Prozess bei‐
        der Programme automatisiert und nutzerfreundlicher gestaltet. Beide Addons haben zum Ziel,
        mit einem Knopfdruck den kompletten Textur‐Baking‐Prozess zu übernehmen. Dem Nutzer soll
        ermöglicht werden, mehrere unterschiedliche Maps gleichzeitig zu generieren und zu exportie‐
        ren. Zusätzlich soll es möglich sein, für mehrere Objekte gleichzeitig Maps zu generieren. Dies
        wird über die Entwicklung einer Nutzeroberfläche ermöglicht, die es auch Nutzern mit wenig
        Programmierkenntnissen erlaubt die Skripte zu nutzen.
            Zur Auswertung dient als Basis eine 3D‐Szene, die auf möglichst ähnliche Art und Weise
        in beiden Programmen geshaded wird. Es wird ausgewertet, inwieweit die Anforderungen des
        PBR‐Workflows im jeweiligen Programm durch ein Skript unterstützt werden können, welche
        Unterschiede in der Umsetzung auffällig sind, sowie bildliche Unterschiede in den erstellten
        Maps und worauf sie zurückzuführen sind. Besonderes Augenmerk wird auf Limitationen in
        der Umsetzung gelegt und wie bedeutend diese sind für einen erfolgreichen PBR‐Workflow.
        Zuletzt wird eine Beurteilung erstellt, ob die Entwicklung von Automatisierungsprozessen für
        eine mittelständische Firma einen Zeitgewinn darstellten kann.

4
Kapitel 2

Verwandte Arbeiten

Die Prinzipien des Bakens haben sich seit der ersten Verwendung des Begriffs nicht geändert.
Baking ist weniger ein Ziel als ein populärer Workaround in der 3D‐Industrie, weswegen sich die
Forschung darauf richtet, die Probleme zu lösen, die mit Baken umgangen werden. Zusätzlich
konnte für den Bereich des Vergleichs von Programmfunktionen von 3D‐Programmen keine
Primär‐ und Sekundärliteratur finden lassen. Die geringe Verfügbarkeit von Literatur zeigt, dass
Forschung in diesem Bereich benötigt wird. Im Folgenden werden deswegen einige Studien
vorgestellt, die sich im Orbit einiger in dieser Arbeit gewidmeten Konzepte befinden und in
der Diskussion der Ergebnisse aufgegriffen werden. Die Studien beziehen sich auf die Nutzung
von Blender als alternative Plattform für professionelle Arbeiten in der 3D‐Industrie und der
Umsetzung des PBR‐Standards und auf die Generierung von Texturen im Allgemeinen.

Die Studie ’Medical image processing tools for Blender with HPC support’[Str+16] unter‐
sucht die Möglichkeit Blenders, auf Basis von CT‐Schicht‐Bildern eine 3D‐Rekonstruktion
durchzuführen. Das von ihnen entwickelte Plugin nimmt DICOM‐Dateien (Digital Imaging and
Communications in Medicine standard) entgegen, konvertiert sie in von Blender lesbare Bilder
und konstruiert daraus ein 3D‐Modell. Im Vergleich mit in diesem Bereich häufig genutzter
Software (3DSlicer, Osirix) schneiden die Möglichkeiten ihrer Plugins gut ab. Das Plugin soll
eine Alternative für medizinisches Personal darstellen, die mit 3D‐Rekonstruktionsdaten
arbeiten.

Jaros et. al[Jar+15; Jar+17] beschreiben die Möglichkeiten, die in Blender integrierte
Render‐Engine Cycles auf eine bestimmte CPU‐Konfiguration hin zu optimieren. Ihr Ziel ist eine
Alternative zu regulären CPU‐ und experimentellen GPU‐Renderings in Cycles zu entwickeln.
Das von ihnen entwickelte Plugin, auf Basis der OpenMP‐Schnittstelle für parallele Nutzung von
verschiedenen CPU‐Kernen, hat Renderzeiten in Offline‐Renderings und Echtzeit‐Renderings
um bis zu 50% im Vergleich zu gängigen CPU‐ und GPU‐Konfigurationen gesenkt.

In der Studie ’Real‐time Rendering of Procedural Multiscale Materials’[ZK16] wurde ein
Verfahren zur besseren Darstellung von Glanzlicht‐Highlights von prozeduralen Highlights
in einer Echtzeit‐Renderumgebung vorgestellt. Sie haben eine NDF (Normal Distribution

                                               5
2. VERWANDTE ARBEITEN

        Function) entwickelt, die eine gute Kontrolle über die Glanzlichteffekte von Materialien
        erlaubt und auf globaler Ebene gute Effekte erzeugt, aber im Detail durch Künstler anpassbar
        bleibt. Ihre Ergebnisse sollen vor allem bei der Darstellung von Glanzlicht‐Mikrodetails von
        körnigen Materialien wie Sand und Schnee visuelle Effekte ermöglichen, die zuvor nur durch
        Offline‐Rendering möglich gewesen sind.

        Hu et al.[HDR19] stellen ein neues Framework zum Erstellen prozeduraler Materialien
        vor, dass die Vorteile von pixelbasierter[EL99] und prozeduraler[Per85] Textursynthese kom‐
        biniert. Ihr Modell baut auf der in der Praxis gemachten Erfahrung auf, dass Künstler bei der
        Suche nach Materialien erst eine grobe Kategorie vorgeben(Stein, Mauer, Grass) und sich dann
        in feinere Bereiche vorarbeiten. Ihr Framework erfordert die Eingabe eines Eingangsbilds und
        die Bestimmung einer Kategorie, um daraus eine prozedurale Textur auf Basis des Eingangsbild
        herzustellen. Das Modell erstellt automatisch Maps nach PBR‐Standard und lässt über die
        Initialeingabe Veränderungen zu.

        Sturm et al.[Stu+16] beschreiben 2016 ein Framework für die Darstellung von PBR‐Materialien
        in WebGL. Der von ihnen entwickelte Shader orientiert sich an den PBR‐Prinzipien die Disney
        in den vorherigen Jahren für ihre Produktionen formuliert und implementiert hat[BS12;
        Bur15]. Sie sprechen sich für eine flächendeckende Implementierung des Metalness/Rough‐
        ness Workflows aus, um die Ziele von PBR in WebGL zu verwirklichen. Sie entwickeln eine
        Zusatzfunktion zum gLTF‐Format, dass dazu in der Lage ist PBR‐Materialien zu erkennen und
        an eine Shading‐Engine auf OpenGl‐Basis zu übergeben.

                 Abbildung 2.1: Darstellung Input und Output des Frameworks von Hu et al.

6
Kapitel 3

Grundlagen

3.1    Physically Based Rendering
Für die Darstellung von 3D‐Objekten sind in der Computergrafik drei Parameter von fundamen‐
taler Bedeutung: Die Lichtverhältnisse des Raums, die Oberflächenstruktur des Objekts und die
Position des Beobachters. Damit ein Objekt für einen Betrachter sichtbar ist, muss es so be‐
leuchtet werden, dass einige vom Objekt reflektierte Strahlen direkt in Richtung des Beobach‐
ters abgehen. Der zweite Punkt ist die Oberflächenbeschaffenheit des Objekts, dem Material.
Das Material bestimmt in welcher Art Licht an der Oberfläche reflektiert wird. Glatte Oberflä‐
chen absorbieren wenig und reflektieren viel Licht in eine Richtung, was zu Glanzlichteffekten
führt und zu Spiegelverhalten. Unregelmäßige, raue Oberflächen streuen Licht hingegen in vie‐
le verschiedene Richtungen und absorbieren einen hohen Anteil, weswegen ihre Oberfläche
einen gleichmäßigen Farbverlauf haben.
    Die Beziehung zwischen Beobachter, Beleuchtung und Material so zu simulieren, dass
die entstehenden Bilder dem entsprechen was wir in der Realität erwarten, ist das Ziel des
PBR‐Workflows[PJH16]. PBR steht für Physically Based Rendering und ist ein Render‐Workflow
und eine Design‐Philosophie, die um die Jahrtausendwende zunehmend an Relevanz gewinnt.
PBR ist nicht genau definiert, sondern ist ein Schirmbegriff für viele Techniken in der 3D‐
Visualisierung, die alle gemein haben, überzeugende Bilder zu produzieren, indem sie sich auf
physikalische Gesetzmäßigkeiten beziehen. Der PBR‐Workflow hat sich als Industriestandart
sowohl in der 3D‐Industrie für Film und Animation, als auch in der Herstellung von interaktiven
Echtzeitanwendungen wie Videospielen und webbasierten Anwendungen durchgesetzt.
    Das wichtigste Prinzip des PBR‐Workflows ist eine realistische beziehungsweise glaubhaf‐
te Darstellung von Materialien und Lichtverhältnissen. Der Workflow soll es 3D‐Künstlern und
Entwicklern erlauben, sich auf die Qualität von Materialien zu konzentrieren, sowie vorherseh‐
bare Ergebnisse in unterschiedlichen Lichtverhältnissen zu generieren. Die Beleuchtung eines
Objekts und die sich daraus ergebene Sichtbarkeit hängt nicht nur von direkten auf es scheinen‐
den Lichtquellen ab, sondern auch von den Lichtstrahlen, die durch andere Objekte reflektiert
werden ‐ indirektes Licht. Da alle Oberflächen einen gewissen Teil des auf sie eintreffenden
Lichtes reflektieren, muss eine Render‐Engine für alle Flächen in der Szene ermitteln, inwie‐
weit von dieser Fläche reflektiertes Licht in erster, zweiter... n‐ter Ordnung andere Objekte be‐

                                               7
3. GRUNDLAGEN

       leuchtet[Kaj98]. Da die Anzahl an möglichen Reflexionen in einer Szene gegen unendlich geht,
       haben die für eine realistische Lichtstimmung erforderlichen Berechnungen, die Leistung der
       verfügbaren Computertechnik lange überschritten. Ältere Workflows, wie die Phong‐Shader
       Renderpipeline[Pho75] begrenzen sich deswegen auf lokale Beleuchtungsmodelle. Ein lokales
       Beleuchtungsmodell rendert die Objekte einer Szene isoliert von einander und fügt sie später
       wieder zusammen. Dies bietet große Vorteile bei der Berechnungszeit der einzelnen Bilder. Es
       bedeutet aber auch, um eine realistische Lichtstimmung zu erzeugen, müssen Objekte entwe‐
       der so geshadet und positioniert werden, dass fehlende Einflüsse durch andere Objekte nicht
       auffallen. Wenn dies nicht möglich ist, müssen Unregelmäßigkeiten in der Postproduktion per
       Hand bearbeitet werden. Fotorealistische und überzeugende Ergebnisse zu erzielen, ist damit
       ein sehr aufwendiger Prozess. Erst um die Jahrtausendwende, mit der Entwicklung von spezia‐
       lisierter Grafikhardware, die auch für Endnutzer verfügbar war, wurden Verfahren zur industri‐
       ellen Nutzung von globaler Beleuchtung entwickelt[PJH16]. In den 1990gern produzierte Blue
       Sky Studios die ersten kommerziell hergestellten Videos mit PBR als Grundlage. Blue Sky mach‐
       ten ihre Verfahren aber nicht Publik, was die industrieweite Umsetzung verzögerte[Ohm97].
       1999 lieferten Heidrich und Seidel einen alternativen Workflow zum nach wie vor großflächig
       eingesetzten Phong‐Shading. Sie argumentierten, dass Computerhardware mittlerweile dazu
       in der Lage sei, Millionen von Polygonen darzustellen und deswegen weitere Rechenleistung
       vor allem in die Verbesserung der Qualität der Bilder gesteckt werden sollte. Sie stellen einen
       Workflow für lokale und globale Beleuchtung vor, der die physikalischen Parameter der Mate‐
       rialien in der Szene in den Vordergrund stellt und somit auch bei sich ändernder Beleuchtung
       vorhersehbare Ergebnisse erzeugt [HS99].
            Einige Entwickler sehen Nachteile bei einem branchenweiten Wechsel auf physikalisch ba‐
       sierten Rendertechniken. Ein großer Vorteil der Computergrafik besteht darin, Bilder zu ren‐
       dern, die in der Realität nicht möglich sind und entsprechend nicht physikalisch korrekt sein
       können. Das wachsende Bedürfnis der Filmindustrie, echt gedrehtes Filmmaterial mit CGI (Com‐
       puter Generated Imagery) zu verbinden, erforderte stärkere Notwendigkeit für die Entwicklung
       von physikalisch basierten Rendertechniken. Die Lichtstimmung an einem Filmset sollte mög‐
       lichst 1:1 durch die Shader am 3D‐Objekt repräsentiert werden, um die generierten Bilder so
       echt und überzeugend aussehen zu lassen wie möglich[Sno10].
            PBR ist mittlerweile nicht mehr als Neuheit anzusehen, da die Ideen und die Techniken von
       den meisten Firmen implementiert sind. Zu beachten ist, dass PBR keine allgemeine Technik ist,
       sondern ein Ziel. Firmen und Entwickler haben für sich spezialisierte Lösungen entwickelt, um
       ihren Vorstellungen von PBR zu näher zu kommen[BS12; Lan14; KG13]. Die Firma Disney hat
       ihren 2012 veröffentlichten PBR‐Ansatz anhand einer Studie des Mitsubishi Electric Research
       Laboratories[Lab07] entwickelt. Die Studie hat mehrere Shading‐Modelle und ihre Fähigkeit
       100 verschiedene Materialien darzustellen untersucht. Die Studie kam zu dem Schluss, dass
       eine große Anzahl an Materialien durch die etablierten Shading‐Modelle nicht realistisch dar‐
       gestellt werden können. Disney ist mit ihrer Studie zusätzlich zu dem Schluss gekommen, dass
       ein exakt physikalisches Ergebnis nicht notwendig ist, sondern dass ihre Bilder lediglich phy‐
       sikalisch plausibel für den Betrachter sein müssen. Sie erlauben sich dadurch einen höheren
       Grad an künstlerischer Freiheit und verminderte Komplexität beim Erstellen von Materialien.
            Die flächendeckende Implementierung von PBR in kommerziell genutzte Render‐Engines
       verlief in Inkrementen über die letzten 20 Jahre. Auf einer praktischen Ebene haben

8
3.1. Physically Based Rendering

Abbildung 3.1: Vergleich zwei Sphären geshaded im Metalness‐Workflow (links) und im
Specular‐Workflow (rechts)

sich die Grundregeln des Shadens für Entwickler dadurch aber wenig verändert. Den
größten Unterschied den PBR in der Praxis macht, ist die Adaption des sogenannten
Metalness/Roughness‐Workflows als Alternative zum Specular/Gloss‐Workflow[Nic18; KG13;
Ste16]. Der Specular/Gloss‐Workflow setzt für eine Totalreflexion eines Material vorraus, dass
die diffuse Komponente des Materials komplett schwarz ist, also keinerlei Farbinformationen
beinhaltet. Um dennoch spiegelnde Materialien mit Grundfarbe, wie einige Metalle, darzustel‐
len, können mehrere Specularity Shader übereinander gelegt werden, um einen entsprechen‐
den Effekt zu erzielen (vgl. Abb. 3.1).
     Beim Metalness/Roughness‐Workflow werden feste Materialien in zwei aus der Physik be‐
kannte Kategorien aufgeteilt: Dielektrika (nicht leitende Materialien) und Metalle. Metalle ha‐
ben die Eigenschaft, dass reflektierte Lichtstrahlen in der Farbe des Metalls reflektiert werden.
Durch die Ergänzung eines Shaders um eine Metalness‐Komponente müssen Künstler lediglich
bestimmen, ob das Material ein Metall ist oder nicht. Der Shader berechnet die Glanzlichtfarbe
dann anhand der Farbe des diffusen Kanals.
     Der Vorteil des Metalness/Roughness‐Workflows ist, dass ein Material als metallisch de‐
finiert werden kann und der Shader den Rest übernimmt. Bei nicht metallischen Materialien,
die dennoch eine Glanzlichtkomponente haben (z.B. Plastik oder Glas), kann wieder über die

                                                                                                      9
3. GRUNDLAGEN

       Specular‐ und Roughness‐Komponenten des Shaders die Spiegelung bestimmt werden.
            Der PBR‐Workflow ist nicht nur ein Ziel in der Film‐Industrie, sondern hat auch Einzug ge‐
       funden in den Bereich des Echtzeit‐Renderings. Die Game‐Engines Unreal und Unity bieten
       ihren Nutzern die Arbeit mit PBR‐Shadern[Gam20; Uni20]. PBR in Echtzeit‐Umgebungen hat
       ähnliche Ansprüche wie in einer Offline‐Umgebung, verzichtet aber Leistungsbedingt auf vie‐
       le Funktionen wie zum Beispiel Subsurface‐Scattering. Dennoch ist der Workflow mittlerweile
       so verbreitet, dass der Umstieg auf eine andere Render‐Engine bei einem erfahrenen Künstler
       nicht bedeutet den kompletten Prozess neu zu erlernen. Die fast branchenweite Implementie‐
       rung ermöglicht ein hohes Maß an Austausch von Ressourcen zwischen den Programmen.
            Die Nutzung von Texturen, für eine realistischere Darstellung von Objekten im 3D‐Raum,
       ist seit dem Shading‐Modell von Phong integraler Bestandteil des Shading‐Prozesses[PJH16].
       Die Art der verwendeten Texturen hat sich mit dem Wechsel auf eine PBR‐Umgebung ver‐
       ändert. Man spricht vom Wechsel des Specular/Gloss‐Workflows zum Metalness/Roughness‐
       Workflow[Nic18]. Ein Großteil der Oberflächendarstellung im PBR‐Workflow findet über fünf
       Kanäle eines PBR‐Shaders statt. Grundfarbe (Base Color), Metalartigkeit (Metalness), Glanz‐
       licht( (Specularity) Rauheit (Roughness) und Oberflächenreliefs (Normal/Bump), sind die am
       meisten benutzten Parameter eines PBR‐Shaders und sind bedeutsam für Offline‐ wie Echtzeit‐
       renderings.

       3.2 Shading Prinzipien
       In der Realität stellen sich Objekte dem Auge des Betrachters anhand der Lichtstrahlen dar,
       die von der Objektoberfläche in Betrachtungsrichtung ausgesendet werden. Die Anzahl und
       die Wellenlänge der reflektierten Strahlen bestimmen wie das Aussehen des Objekts vom Be‐
       trachter wahrgenommen wird. Dieses Verhalten zu simulieren, ist ein wichtiger Bestandteil der
       Computergrafik und dementsprechend ein Gebiet auf dem viel geforscht wird. Das Reflexions‐
       verhalten einer Objektoberfläche oder Materials zu simulieren, funktioniert nur näherungswei‐
       se, da mathematische Formeln nicht alle Vorgänge und Abweichungen bis auf die molekulare
       Ebene abbilden können. Die Reflexion an einer idealen Oberfläche wird mit einer Bidirektionale
       Reflexionsverteilungsfunktion (BRDF) ermittelt. Allen BRDF liegt eine 4‐dimensionale Funktion
       aus dem Einfallswinkel des Lichts und dem Blickwinkel des Betrachters zu Grunde. Physikalische
       Ansätze erlauben es jedoch, Materialdaten aus der Realität, wie die zuvor genannte Leitfähig‐
       keit von Metallen, in eine Shading‐Funktion zu übergeben und daraus das Reflexionsverhalten
       zu bestimmen. Alle möglichen Parameter zu ermitteln und in eine Funktion einzubinden, über‐
       steigt jedoch die praktisch nutzbare Rechenleistung von Computern[Wat02].
           Die Forschung in der Computergrafik hat diese Funktion immer wieder erweitert und opti‐
       miert. Die wichtigsten Meilensteine werden im Folgenden kurz vorgestellt.
           Verbreitete praktische Nutzung erlangt erstmals das Phong‐Modell[Pho75]. Es ist aufgrund
       seiner guten Rechenleistung lange Zeit der Standard beim Rendern von 3D‐Szenen gewesen
       und wird heute noch verwendet. Das Modell macht zwei Annahmen: Licht, dass von einer Flä‐
       che reflektiert wird, hat eine diffuse‐ und eine Glanzlicht‐Komponente. Während Phong sich
       für den diffusen Teil des Lichtes der Lambert‐Beleuchtungsformel bedient, entwickelt er eine
       eigene Formel zur Simulation von Glanzlicht. Die Lichtstärke eines Punkts an einer Oberfläche

10
3.2. Shading Prinzipien

                       BRDF = f (θin, ϕin, θref, ϕref ) = f (L, V )                       (3.1)

Abbildung 3.2: BRDF als Funktion der Lichtrichtung L und der Betrachtungsrichtung V, Grafik:
[Wat02]

ist nach Phongs Modell die Summe aus der diffusen Reflexion, dem Glanzlicht und der Umge‐
bungsbeleuchtung.

            Abbildung 3.3: Phong‐Modell Beleuchtungsanteile, Grafik: Wikipedia

     Das Phong‐Modell ist kein physikalischer Ansatz. Die Materialkonstanten der Formel reprä‐
sentieren keine Werte eines echten Materials, sondern werden arbiträr vom Entwickler be‐
stimmt. Es ist theoretisch möglich die Materialkonstanten so zu wählen, dass die Oberfläche
mehr Licht reflektiert als ihr zugefügt wird. Entsprechend folgt das Phong Modell nicht dem En‐
ergieerhaltungssatz [Geb03]. Der Phong BRDF ist gut dazu geeignet, diffuse und plastikähnliche
Materialien darzustellen, überzeugt aber nicht bei der Visualisierung von metallischen Mate‐
rialien[Fol+13].
     J. Blinn modifiziert das Phong Modell, um die Oberflächenreflektion bei spitzen Betrach‐
tungswinkeln realistischer zu gestalten. Blinns Anpassungen machen das Modell zusätzlich
leichter zu berechnen [Bli77].
     Cook & Torrance erweitern das Phong‐Modell, mit dem Ziel physikalische Eigenschaften von
Materialien besser darzustellen. Cook & Torrence entwicken eine Formel, die die Oberfläche
eines Materials als ein Feld von Mikrofacetten darstellt. Die Facetten sind V‐förmige, symme‐

                                                                                                    11
3. GRUNDLAGEN

       trische Vertiefungen in der Oberfläche, die eingehendes Licht vollreflektiert zurückstrahlen. Je
       tiefer die Facetten, desto diffuser wirkt ein Material im Auge des Betrachters. Die Funktion er‐
       laubt zusätzlich die Nutzung des Fresnel‐Wertes, für eine physikalisch basierte Lichtbrechung.
       Die Ergebnisse von Cook & Torrance führen zu einer deutlich verbesserten Visualisierung von
       metallenen Materialien wie Gold oder Aluminium [CT82].
            Die BRD‐Funktion stellt bisher nur die Möglichkeit dar, Materialien als Lichtdurchlässig oder
       undurchlässig zu betrachten. Diese Einteilung wird aber einigen Materialien wie Haut oder
       Wachs nicht gerecht. Das sogenannte Subsurface Scattering sorgt dafür, dass Licht über den Ein‐
       trittspunkt hinaus in das Material eindringt, und innerhalb dessen reflektiert (scattered) wird.
       Je nach Dichte des Materials, können einige Strahlen das Objekt komplett durchdringen, wäh‐
       rend andere durch die Eintrittsfläche zurück reflektiert werden [HK93].

       Abbildung 3.4: Beispiel Subsurface Scatte‐              Abbildung 3.5: Strahlenverteilung inner‐
       ring, Grafik: Wikipedia                                 halb eines Materials, Grafik: [HK93]

           Die stetig wachsenden Möglichkeiten des Shadens erhöhen auch die Komplexität und den
       Produktionsaufwand. Die gängigen Arbeitsweisen in der 3D‐Produktion stützen sich entweder
       auf Uber‐Shader oder Stacked‐Shader[Lan14]. Ein Uber‐Shader vereint verschiedene Shader‐
       Funktionen in einer großen Funktion und ermöglicht die Manipulation der meisten Material‐
       parameter an einer zentralen Stelle. Stacked‐Shader berechnen die Reflexionsanteile einzeln
       und fügen sie im Nachhinein zusammen. Beide Wege bieten für unterschiedliche Produktio‐
       nen Vorteile. Die Firma Disney entwickelte einen Uber‐Shader für ihre Produktionen. Der Uber‐
       Shader‐Ansatz soll vor allem die Materialproduktion beschleunigen, neuen Mitarbeitern einen
       leichten Einstieg bieten und schlussendlich die allgemeine Shader‐Qualität verbessern[BS12].
           Der Disney‐BRDF ist nicht nur fester Bestandteil der Pixar Render‐Engine Renderman1 , son‐
       dern wird von der Blender‐Foundation als Standard‐Shader in den Render‐Engines Cycles und
       Eevee verwendet2 . Weitere Render‐Engines, wie zum Beispiel VRay3 und Redshift4 haben eige‐
       ne Variante eines Uber‐Shader integriert. Die Firma Solid Angle integrierte nach einer eigenen
       Studie 2014 ebenfalls einen Uber‐Shader in ihre Render‐Engine Arnold5 .

          1
            renderman.pixar.com, abgerufen am 12.10.2020
          2
            docs.blender.org, abgerufen am 12.10.2020
          3
            docs.chaosgroup.com, abgerufen am 12.10.2020
          4
            docs.redshift3d.com, abgerufen am 12.10.2020
          5
            docs.arnoldrenderer.com, abgerufen am 12.10.2020

12
3.3. Baking und Textursynthese

       Abbildung 3.6: Principled BSDF von Blender und aiStandardSurface von Maya/Arnold

3.3       Baking und Textursynthese
Der Begriff des Bakens wird in der Computergrafik für viele Prozesse verwendet. Gemeinsam
haben sie, dass sie einen rechenintensiven dynamischen Wert, in einen rechenleichten stati‐
schen umwandeln6 . Die wichtigsten Anwendungsgebiete sind Animation, Physik‐Simulation,
Beleuchtung, Geometrie‐Baking und Texture‐Mapping.
    Baking im Allgemeinen lässt sich gut anhand der Generierung einer Animation mittels einer
Physiksimulation veranschaulichen:
    Das Zusammenspiel von vordefinierten Kräften in einer 3D‐Szene sowie der Masse und
anderen physikalischen Eigenschaften eines 3D‐Objekts, können mit wenigen Eingangspara‐
metern und geringer manueller Positionierung, realistische Animation erzeugen. Je nach Kom‐
plexität einer Simulation, ist es unpraktisch das exakte Verhalten eines Objekts vor dem Start
vorauszuberechnen. Deswegen finden Berechnungen zur Laufzeit der Simulation ab dem Mo‐
ment statt, in dem das System einer Veränderung ausgesetzt ist. Zum Beispiel kann in einem
   6
       docs.blender.org, abgerufen am 14.10.2020

                                                                                                  13
3. GRUNDLAGEN

       3D‐Programm das Rollen eines Steins simuliert werden, bei dem Parameter wie die Startge‐
       schwindigkeit und die Richtung vom Entwickler bestimmt werden. Die Oberflächenbeschaffen‐
       heit des Steins ist aber so unregelmäßig, dass die zum Schluss eingenommene Position nicht
       vor Start berechnet werden kann. Die letzte Position ergibt sich aus zur Laufzeit immer wieder
       stattfindenden Berechnungen. Während der Entwicklung von Echtzeit‐3D‐Anwendungen wie
       zum Beispiel Computerspielen birgt eine Simulation viele Vorteile im Vergleich zu einer hän‐
       disch produzierten Animation. Die Simulation benötigt relativ wenige Startparameter (im Falle
       des Steins Geschwindigkeit und Richtung), um ein Objekt von A nach B zu bewegen. Von Nach‐
       teil sind die andauernden Berechnungen während der Laufzeit, die eine Implementierung in
       eine Echtzeit‐Anwendung unpraktisch machen kann. Um dies zu umgehen, wird die Simulati‐
       on gebaked. Das bedeutet, die Simulation wird einmal bis zur Vollendung berechnet und die
       aufgezeichnete Animation, also die festgehaltenen Positionsdaten des Steins zur Laufzeit, wird
       gespeichert. Zukünftige Durchläufe der Animation erfordern also nicht mehr eine Berechnung,
       sondern nur noch einen Aufruf der gespeicherten Positionsdaten, was eine deutlich schnellere
       Operation darstellt.
            Baking im Kontext dieser Arbeit ist als der letzte Schritt einer prozeduralen Textursynthese
       mit anschließender Generierung eines Texturatlasses zu verstehen. Die Texturesynthese[EL99]
       ist eine Teildisziplin der Computergrafik und die prozedurale Textursynthese eine Texturtechnik
       in der 3D‐Grafik.

                        Abbildung 3.7: Konzeptionierte Shade‐Trees, Grafik: [Coo84]

           Die prozedurale Textursynthese basiert darauf, dass durch Variation einer endlichen Anzahl
       an Eingangsparametern eine unendliche Anzahl an Ergebnisvariationen erstellt werden kann.
       Sie wird durch die scheinbar zufällige Musterbildung von verschiedenen Rauschfunktionen, wie
       zum Beispiel Perlin‐Rauschen in Verbindung mit mathematischen Funktionen und Orts‐ bzw.
       Richtungsvektoren ermöglicht[Per85].
           Bei der Erstellung von prozeduralen Materialien hat sich die Arbeit mit Shading‐
       Trees[Coo84] in der Industrie durchgesetzt. Ein Shading‐Tree stellt eine Nutzeroberfläche dar,
       die es dem Anwender erlaubt alle den Shader beeinflussenden Werte, Operationen und Be‐

14
3.3. Baking und Textursynthese

rechnungen mit einem Diagramm einzusehen und zu manipulieren. Der Tree besteht aus Kno‐
ten, die Nodes genannt werden und deren Verbindungen untereinander eine Baumstruktur
bilden. Jede Node steht für einen in sich geschlossenen Prozess oder eine Funktion, die von an‐
deren Prozessen unabhängig ist, solange keine direkte oder indirekte Verbindung besteht. Die
einfachsten Nodes stellen nur einen für sich alleinstehenden Wert oder eine mathematische
Formel dar oder beinhalten die Informationen eines eingebundenen Bildes. Die Komplexität ist
allerdings nicht begrenzt und eine Node kann eine Vielzahl von Operationen beinhalten, mit
dem Ziel einen bestimmten Effekt zu erzeugen.

Abbildung 3.8: Beispiel Shading‐Tree(l) und Renderergebnis(r). Nodes: a) Einzelwert, b) Re‐
chenoperation, c) Textur‐Node ‐ Schachbrettmuster mit vorgeschalteten d) UV‐Koordinaten als
Eingangsvektor, e) Shader‐Node ‐ Enthält die BSDF f) Material Output ‐ regelt Verbindung zum
Objekt.

     Nodes können vom Anwender frei eingefügt, ausgetauscht und verändert werden. So kön‐
nen ganze Stränge von Informationen, die in einen Shader fließen, voneinander isoliert und be‐
arbeitet werden. Durch die Verkettung verschiedenster Parameter ist es möglich, unterschied‐
lichste Oberflächenstrukturen zu generieren. Die Manipulation eines einzelnen Parameters be‐
sitzt dabei das Potenzial, große Veränderungen mit sehr geringem Aufwand zu erzeugen. Da‐
mit können prozedurale Texturen ohne auffällige Wiederholungen an jedes Objekt individuell
angepasst werden. Solche Texturen besitzen aber dieselbe Problematik wie die beschriebene
Physiksimulation. Wie sich die Textur tatsächlich darstellt wird während der Programmlaufzeit
berechnet und erfordert eine entsprechende Rechenleistung. Beim Erstellen aufwendiger wir‐
kender Materialien erhöht sich meistens die Komplexität der Shader‐Netzwerke.
     Da jede verbundene Node am Endergebnis beteiligt ist, führt das Anpassen eines individuel‐
len Parameters zu einer Neuberechnung aller nachfolgenden Nodes. Bei großen Shading‐Trees
kann dies zu langen Berechnungszeiten führen. Gleichsam ungeeignete sind große Shading‐
Trees in Echtzeit‐Render Umgebungen, da jedes Frame eine neue Berechnung des Shaders er‐
fordert, auch wenn keine Werte direkt verändert werden. Gerade für Echtzeit‐Anwendungen
empfiehlt sich das Verwenden von statischen Bild‐Texturen, auf die die Render‐Engine nur im
Speicher zugreifen muss. Das Baken eines Shaders erlaubt es, wie in der oben beschriebenen
Physiksimulation, aus dem dynamischen rechenintensiven Prozess, ein statisches Bild zu gene‐
rieren. Die Lösung für diese Problematik ist das Baken der erstellten Textur, um aus dem dyna‐
mischen Prozess, ein statisches Bild zu gewinnen. Beim Textur‐Baking wird die finale Darstellung
der Textur in einer Bilddatei abgespeichert. Sie bleibt dadurch, von manueller Bildbearbeitung

                                                                                                    15
3. GRUNDLAGEN

       Abbildung 3.9: Shading Tree zum Erzeugen einer prozeduralen Bump‐Map. Die Noise‐Textur
       nimmt Objektdaten als Initialisierungsvektor entgegen. Die erzeugte Textur wird in einen
       Schwarz‐Weiß Farbverlauf übergeben, mit dem die Höhen und Tiefen angepasst werden kön‐
       nen. Endpunkt ist eine Bump‐Node, die die eingehenden Daten in eine Bump‐Map umwandelt.
       Die Oberfläche des Objekts wirkt dadurch unregelmäßig. Render: Blender/Eevee

       Abbildung 3.10: Durch Ändern eines Parameters, der Weißtöne in der Noise‐Map, wirken die
       Bump‐Anteile nun wie herausgebrochene Stellen.

       einmal abgesehen, unveränderlich. Der Vorteil liegt auch hier in der Rechenoptimierung. Statt
       zur Darstellung einer Textur eine lange und aufwendige Rechnung durchzuführen, greift der
       Renderer lediglich auf den Speicherort der Textur zu und projiziert diese entsprechend des UV‐
       Mappings auf ein Objekt [AHH08].
           Der Variantenreichtum bei der prozeduralen Textur‐Synthese ist nicht der einzige Vorteil.
       Beim Texturieren von 3D‐Objekten im 3D‐Workspace ermöglicht die Nutzung von lokalen Vek‐
       toren als Texturparameter (z.B. Objektraum oder Objektposition) das Umgehen des 2D UV‐
       Spaces. Im 3D‐Workspace werden alle Dimensionen des Objekts berücksichtigt und ein auf‐
       wendiges Auffalten des Objekts in den UV‐Space ist nicht notwendig. UV‐Islands bilden dadurch
       keine Seams und es ist dem Entwickler möglich, das UV‐Mapping auf minimale Verzerrung und
       Platznutzung hin zu optimieren. Das eine UV‐Map vorhanden ist, ist dennoch für den Baking‐
       Prozess unabdingbar. Die UV‐Map dient während des Baking‐Prozesses als „Form“ für die ent‐
       stehende Map.

16
3.3. Baking und Textursynthese

Abbildung 3.11: Node‐Tree eines prozeduralen Mauer‐Materials. Quelle: youtuber ‐ Erindale

                     Abbildung 3.12: UV‐Mapping des Utah‐Teapots.

                                                                                               17
3. GRUNDLAGEN

                Abbildung 3.13: Gebakte Color‐Map und Rendering.

18
Kapitel 4

Methodik

Der Prozess des Shadings und Texturing ist in der Pra‐
xis nicht nur bestimmt durch die Fähigkeiten des an‐ Tabelle 4.1: Suchtreffer auf Art‐
wendenden Künstlers oder Entwicklers. Die Programmaus‐ station, gefiltert nach benutzter
wahl spielt eine wichtige Rolle, da Shading‐Programme und Texturing‐Software
Render‐Engines unterschiedliche Funktionen bieten und un‐
                                                                  Substance       307648
terschiedliche Arbeitsweisen unterstützen. Im Bereich des
Shadings und der Materialerstellung sind die Programme            Mari            13830
Substance Painter und Substance Designer von Adobe (2019          3D‐Coat         24042
übernommen von Allegorithmic) allgegenwärtig. Substance           Mudbox          13989
Designer ist auf ArtStation1 und Sketchfab2 , den beiden          Quixel          959
größten Seiten zum Vorstellen von 3D‐Kunst, der meistge‐
nannte Texture‐Painter zum Erzeugen von PBR‐Maps. Die Programme von Substance und Qui‐
xel sind von Haus aus auf die Shading‐Anforderungen des PBR‐Workflows ausgerichtet[Ado20;
Qui20]. Sie bieten nicht nur umfangreiche Möglichkeiten, 3D‐Objekte in einem Echtzeit‐
Showcase zu texturieren, sondern generieren beim Export der Materialien programmübergrei‐
fend nutzbare PBR‐Maps.
     Die in dieser Arbeit zum Vergleich stehenden Programme Blender und Maya besitzen eben‐
falls umfangreiche Tools zum Shaden und zur Textur‐Synthese, die den PBR‐Workflow unterstüt‐
zen. Diese aber in ihrer Qualität und ihren Möglichkeiten PBR‐Maps zu erstellen einzuordnen,
ist aufgrund ihrer umständlichen Bedienbarkeit, die in diesem Kapitel noch genau skizziert wird,
sehr schwierig. Blender und Maya bieten allerdings beide umfangreiche Möglichkeiten, die Pro‐
grammfunktionen zu erweitern. Beide Programme nutzen Python als Skriptsprache, was einen
Vergleich der Funktion, PBR‐Maps zu erstellen gut möglich macht.
     Ziel ist es also:

   1. Für jedes Programm ein Addon auf Python‐Basis zu erstellen, dass den Baking‐Prozess,
      bzw. PBR‐Map‐Export automatisiert.

   2. Die Skripte auf ihre Erstellungsschwierigkeit und Nutzbarkeit hin zu vergleichen.
   1
       https://www.artstation.com/, abgerufen am 15.11.2020
   2
       https://www.sketchfab.com/, abgerufen am 15.11.2020

                                                 19
4. METHODIK

          3. Die exportierten PBR‐Maps zu vergleichen und Unterschiede aufzudecken.

           Um sich diesen Zielen adäquat zu widmen, ist es zuerst erforderlich, eine genaue Beschrei‐
       bung des Ist‐Zustands der zu vergleichenden Programme aufzustellen. Die Erstellung der Ad‐
       dons unterliegt in erster Linie den Entwicklungsvorgaben, die Maya und Blender ihren Nut‐
       zern vorgeben. Da die Implementierung sich in vielen Aspekten stark unterscheiden kann, ist
       es wichtig ein genaues Anforderungsprofil für die Addons zu definieren. Dies geschieht auf Ba‐
       sis der im betrieblichen Umfeld aufgetretenen Herausforderungen beim Erstellen und Bear‐
       beiten von PBR‐Maps mit Blender und Maya. Deswegen wird zuerst der Workflow zum Export
       eines PBR‐Map‐Sets beider Programme in der Praxis skizziert, verglichen und analysiert. Aus
       der Analyse werden Ziele für eine Vereinfachung des Vorgangs formuliert, um daraus anschlie‐
       ßend einen Programmplan zu erstellen. Der Programmplan dient als Basis für die Umsetzung
       im jeweiligen Programm.

       4.1 Ist‐Zustand
       Blender unterstützt von Haus aus zwei Render‐Enginges: Eevee und Cycles. Beide teilen sich
       denselben Shading‐Workflow und dieselben Shading‐Nodes zum Erstellen von Materialien. Ee‐
       vee ist allerdings eine Engine für Echtzeit‐Renderings, wohingegen Cycles ein Ray‐Tracer für
       Offline‐Renderings ist. Die Möglichkeiten zum Baken sind nur mit Clycles verfügbar, was aber
       praktisch keine Einschränkung darstellt, da sich beide Engines die Shading‐Nodes teilen. Bei
       Maya verhält sich das anders. Maya bietet mit dem Turtle‐Plugin die Möglichkeit Texturen und
       Maps zu baken. Der Workflow sieht allerdings die Übertragung von Maps von einem, auf ein
       anderes Objekt vor und ist nicht geeignet für das Baken oder Simplifizieren von Shadern. Ar‐
       nolds Utility‐Funktion, Render‐Selection‐To‐Texture, ermöglicht genau das. Dieses Tool der Ar‐
       nold Render‐Engine baked den Output eines Shaders als Textur auf ein Bild, unter der Berück‐
       sichtigung der UV‐Maps des Objekts. Die Funktionssweise gleicht der von Blender/Cycles. Die
       Hauptshader von Blender (principled BSDF) und Arnold (AiStandardSurface) sind in ihrer Funk‐
       tion und Bedienung sehr ähnlich, was einen Vergleich leichter macht.
           Im Vergleich zu Maya benötigt Blender einige Vorbereitungen vor einem Baking‐Vorgang.
       Blender benötigt ein vom Nutzer definiertes Bild, auf dem das Baking gerendert werden soll.
       Dieses Bild muss in allen Materialien des Objekts eingebunden (aber nicht zwangsweise mit
       dem Shader verbunden) und selektiert sein, bevor der Baking‐Vorgang gestartet werden kann.
       Bilder werden entweder von Extern in die Szene importiert, oder direkt in Blender erstellt. Die
       Dimensionen der Maps sind durch die Bildgröße festgelegt. In diesem Aspekt verhält sich Ma‐
       ya/Arnold gradliniger. Um ein Baking zu starten, wird lediglich die Auswahl eines Shape‐Objekts
       verlangt. Im zugehörigen Kontextmenü können die Bild‐Dimensionen frei gewählt werden.
           Maya/Arnold ermöglicht die Manipulation aller vorhandenen Parameter über das Render‐
       To‐Texture Kontextmenü. Dazu zählen wie bereits genannt Bild‐Dimensionen und Ausgabepfad,
       aber auch die Anzahl der Rendersamples und die Nutzung bestimmter Bildfilter. Bei Blender
       werden die Samples für das Rendering global festgelegt und müssen über mehrere Renderings
       hinweg nicht mehr angepasst werden.
           Beide Baking‐Vorgänge rendern bei unveränderten Einstellungen die Oberfläche des Ob‐
       jekts mit allen Materialeigenschaften des Shaders und Lichteinflüssen der Szene. Blender er‐

20
4.1. Ist‐Zustand

                                Tabelle 4.2: Begriffslegende

 Ziel‐Bild:                        Das Bild auf dem die Map‐Informationen gerendert wer‐
                                   den sollen.
 Quell‐Node:                       Die Node, deren Output auf das Ziel‐Bild gebaked werden
                                   soll. Dies kann jede Node im Material sein, unabhängig wie
                                   viele Nodes ihr vorgeschaltet sind.
 Emission‐Shader (Blender) /       Diese Shader geben die in ihnen ankommenden In‐
 Flat‐Shader (Maya):               formationen als lokale Lichtquelle aus. Dies bedeutet,
                                   dass Flat/Emission‐Materialen ohne Einfluss anderer Licht‐
                                   quellen sichtbar in der Szene sind. Gleichzeitig ignorie‐
                                   ren Emission‐Materialien eingehendes Licht. Durch die‐
                                   se Eigenschaften sind sie ideal dazu geeignet, Rohdaten
                                   von Shading‐Nodes darzustellen. Sie sind bei Entwicklern
                                   sehr beliebt beim Entwickeln und Debuggen von Shader‐
                                   Netzwerken.
 Material Output (Blender) /       Der Material Ouput/die Shading Engine ist die letzte Node
 Shading Engine (Maya):            eines Node‐Trees. Was in dieser Node ankommt, wird als
                                   Material am Objekt in der Szene/im Rendering dargestellt.

möglicht von Haus aus verschiedene Maps zu berechnen, benötigt aber für jede Einzelne das
Erstellen eines neuen Bildes und die manuelle Durchführung. Außerdem sind für Metalness‐
Bakings keine Optionen verfügbar. Die Baking‐Funktion erlaubt zwar als Option „Glossyn‐
ess“, diese rendert aber nur die Specular‐Anteile des Shaders. Entwickler, die den Metalness‐
Workflow nutzen, haben hier keine Option eine Metalness‐Map zu baken.
    Maya/Arnold erlaubt standardmäßig nur Kombinationsrenderings mit Render‐To‐Texture.
Um einzelne Parameter des Shaders zu baken, bedarf es zusätzlicher Arbeit im Hypershade.
    Maya/Arnold exportiert die Renderings automatisch in das gewählte Zielverzeichnis, ex‐
portiert allerdings nur exr‐Dateien. Nutzer, die das Bildformat ändern möchten, müssen dies
über weitere Programme realisieren. Blender exportiert Bilder nicht nach Beenden des Baking‐
Vorgangs und bietet auch keine automatisierte Option dazu. Bilder werden in der Szene gespei‐
chert und müssen einzeln exportiert werden, wobei aber ein beliebiges Dateiformat angegeben
werden kann, sowie einige andere gängige Bildparameter.
    Die im Folgenden vorgestellten Workflows beziehen sich auf das Rendern der Outputs ein‐
zelner Nodes und Shader‐Werte, um PBR‐Maps zu erstellen. Es wird vorausgesetzt, dass alle
Modelling‐, UV‐ und Shading‐Arbeiten abgeschlossen wurden und die PBR‐Materialen nur noch
gerendert und exportiert werden müssen.
    Erste Unterschiede sind bereits in der Vorbereitung erkennbar. Blender nutzt für seine
Baking‐Funktion die global eingestellten Sample‐Werte von Cycles. Dadurch muss in der Praxis
dieser Wert nur einmal im Voraus bestimmt werden. Maya/Arnold Render‐To‐Texture gibt ei‐
nen Default‐Wert vor, der vor jedem Baking angepasst werden muss. Dafür befinden sich alle
für den Nutzer und den Renderprozess wichtigen Parameter im selben Kontextfenster.

                                                                                                   21
Sie können auch lesen