Techniken zur Produktion von realistischen Frisuren für Videospiele

Bachelorarbeit

Studiengang Gamedesign

Mediadesign Hochschule für Design und Informatik

Standort Düsseldorf

Ramona Kropp

Erstprüfer: Prof. Thomas Vogel
Zweitprüfer: Thomas Hummes

Rahmendaten:

Bearbeitungszeitraum: 2 Monate
Abgabedatum: 11.02.2019

1. Einleitung

1.1. Inhalt

In der folgenden Bachelorarbeit werde ich zunächst einen Überblick über Techniken geben, die in der Vergangenheit genutzt wurden, um Haare für die Echtzeitnutzung in Videospielen zu produzieren. Dabei werde ich auf verschiedene Möglichkeiten eingehen, die einzelnen Teilschritte durchzuführen.

Im nächsten Teil werde ich die Techniken heraussuchen, die für aktuelle Videospiele geeignet sind und keine drastischen Einschränkungen haben, werde diese Techniken praktisch umsetzen und den Prozess dokumentieren.

Zuletzt werde ich Vor- und Nachteile der verschiedenen Techniken und Arbeitsweisen aufzeigen und miteinander vergleichen, um am Ende ein allgemeines Fazit zu ziehen.

1.2. Abgrenzung

In dieser Arbeit werden nur Techniken behandelt, die mit Software realisierbar waren, die mir zu Verfügung stand. Dazu gehört Software, für welche durch die MD.H eine Studentenlizenz existiert (ZBrush1, Maya2), für welche es eine vollständige Testversion gibt, die im Rahmen dieser Arbeit genutzt werden kann ("Shave and a Haircut"3 Plugin für Maya4 ), oder welche frei zugänglich ist (NVIDIA HairWorks5, xNormal6). Techniken, deren Software keine Benutzeroberfläche zur Verfügung stellt, wurden ebenfalls nicht behandelt (TressFX7).

Außerdem wurde Software ausgeschlossen, die gleichen Funktionen und Werkzeuge bietet (3ds Max8, Blender9, etc.), wie in der Arbeit bereits behandelte Software. Hier wurde diese bevorzugt, in welcher der Autor bereits Kenntnisse besitzt (Maya10).

1 ZBrush 2018 [Software]. Kalifornien, USA: Pixologic, 2018. Software.
2 Maya 2018 [Software]. Kalifornien, USA: Autodesk, 2018. Software.
3 Shave and a Haircut [Software]. o.O., Alter, Joseph, 2018. Software.
4 Maya 2018 [Software]. Autodesk.
5 NVIDIA HairWorks [Software]. Kalifornien, USA: NVIDIA, 2016. Software.
6 xNormal [Software], Madrid, Spanien: Orgaz, S., 2012. Software.
7 TressFX [Software]. Kalifornien, USA: AMD, 2014. Library.
8 3ds Max [Software]. Kalifornien, USA: Autodesk: 2018. Software.
9 Blender [Software]. Amsterdam, Niederlande: Blender Foundation, 2018. Software.
10 Maya 2018 [Software]. Autodesk.

1.3. Fragestellung und Zielsetzung

Die Frisur eines Menschen sagt viel über die Persönlichkeit aus und wird häufig zur Selbstdarstellung genutzt. Deshalb ist sie auch für einen virtuellen Charakter ein essenzieller Bestandteil, der nicht nur zu einem realistischeren Aussehen beiträgt, sondern auch wichtige Informationen über den Charakter und seine Geschichte beinhalten kann.

Durch ihre Anzahl und natürlichen Eigenschaften sind Haare jedoch gerade in Echtzeit nicht einfach nachzubilden, und die Techniken, um ein zufriedenstellendes Ergebnis zu erreichen, sind nicht geradlinig, wie das modellieren anderer Objekte, sondern erfordern spezifische Schritte, einige spezialisierte Werkzeuge, und einen iterativen Arbeitsablauf.

Es gibt einige Ressourcen, die den Arbeitsablauf grob beschreiben, es fehlen jedoch meist wichtige Einzelschritte, wodurch das erfolgreiche Reproduzieren zur Herausforderung wird.

Diese Bachelorarbeit hat das Ziel, einige Techniken, die sich für die Produktion von Frisuren für die Verwendung in Echtzeit, und mit Blick auf moderne visuelle Möglichkeiten und Standards, eignen, zusammenzutragen. Außerdem sollen die benötigten Schritte und verschiedenen Herangehensweisen detailliert dokumentiert und am Ende im Hinblick auf Handhabung, Zeitaufwand und Ergebnis bewertet werden.

2. Theoretischer Überblick

2.1. Haarmodelle

2.1.1 Überblick

Diese Methode war eine frühe und naheliegende Art, Haare zu repräsentieren, da sie Modellierungstechniken anderer Objekte ähnelt. Das gesamte Volumen der Haare wird hierbei als polygonaler Körper dargestellt, Transparenz, Schichten und einzelne Haare werden dabei vernachlässigt.

Im Laufe der Zeit wurde diese Methode mit einigen Haircards kombiniert, um die Silhouette aufzubrechen und ein geschichteteres Aussehen zu erzielen11.

Screenshot aus Hitman

Abb. 1: Screenshot aus Hitman: Codenamme 47 (PC,IO Interactive, 2000). Haarmodell einer weiblichen Spielfigur.

2.1.2. Prozess

Wie beim modellieren der meisten anderen Objekte wird hier die Form der gewünschten Frisur mit Polygonen nachgebildet. Nachdem die UVs erstellt wurden, kann dann eine Textur manuell erstellt, oder mit Programmen wie Substance Painter12 generiert werden. Bei beiden Methoden sollte darauf geachtet werden, dass UV-Kanten nach Möglichkeit an weniger sichtbaren Stellen eingebaut werden, damit eventuell unbündige Texturen nicht auffallen.

11Airship Images:? Breakdown: Making the Hair on The Division, URL: http://airship-images.com/division-hair-breakdown/ (Stand: 04.02.2019).
12Substance Painter [Software]. Clermont-Ferrand, Frankreich: Allegorithmic, 2018. Software.

2.2. Shells und Fins

2.2.1. Überblick

Anwendung von Shells in Shadow of the Colossus

Abb. 2: Anwendung von Shells in Shadow of the Colossus (Playstation 2, Team ICO/Sony Interactive Entertainment/SIE Japan Studio, 2005).

Bei dieser Methode werden mehrere Iterationen eines Modells oder Teils eines Modells in kurzen Abständen übereinander gelegt und mit verschiedenen Texturen versehen. Diese Texturen stellen Querschnitte dreidimensionaler Haare dar, und werden vom Haaransatz auf der innersten Ebene zur Haarspitze auf der äußersten Ebene angeordnet. Dies erzeugt bis zu einem gewissen Blickwinkel die Illusion von Haaren, die vom Modell ausgehen. Um auch flachere Blickwinkel zu ermöglichen, werden zusätzlich Fins benutzt. Diese zweidimensionalen Flächen werden durch einen Shader am sichtbaren Rand des Modells gerendert und haben eine 2D Textur, die Haare darstellt.

2.2.2. Prozess

Diese Technik benötigt hauptsächlich zwei Komponenten: Die Texturen und das modifizierte Modell.

Um das Modell vorzubereiten, wird dieses dupliziert und leicht größer skaliert. Dies wird so oft wiederholt, bis die gewünscht Anzahl Ebenen erreicht ist. Für kürzere Haare reichen weniger Ebenen, für längere Haare werden mehr gebraucht, da der Abstand zwischen den Ebenen nicht zu groß sein darf. Mehr Ebenen mit weniger Abstand geben einen visuell glatteren Übergang. Je nachdem, wie viel Fläche des Modells von Haaren bedeckt sein soll, kann es auch sinnvoll sein, nur Teile des Modells zu duplizieren.

Die Texturen für diese Technik können z.B. in Programmen wie Adobe Photoshop13 oder auch Substance Designer14 erstellt werden. Anschließend können die Texturen auf die Entsprechende Ebene (Shell) des Modells angewendet werden.

Die Textur für die Fins kann manuell gezeichnet werden, oder z.B. mit xNormal15 oder Arnold aus mit XGen generierten Haaren gerendert werden.

Die Fins werden dann mit Hilfe von Shadern an den Rändern des Modells dargestellt, da ab einem gewissen Blickwinkel der Abstand zwischen den Shells sichtbar wird.16

13 Adobe Photoshop [Software]. Kalifornien, USA: Adobe Systems, 2018. Software.
14 Substance Designer [Software]. Clermont-Ferrand, Frankreich: Allegorithmic, 2018. Software.
15 xNormal [Software]. Orgaz, S.
16 Finkelstein, Adam/Hoppe, Hugues/Lengyel, Jerome/Praun, Emil: ?Real-Time Fur over Arbitrary Surfaces?, in: I3D '01 Proceedings of the 2001 symposium on Interactive 3D graphics (2001), S.227-232.

2.3. Haircards/Hairstrips

2.3.1. Überblick

Charaktermodell aus Uncharted 4

Abb. 3: Charaktermodell aus Uncharted 4: A Thief's End (Playstation 4,Naughty Dog, 2016).

Haircards sind eine Methode, Haare darzustellen, bei der der Eindruck einzelner Haare und definierter Strähnen erhalten bleibt, während die Polygonanzahl übersichtlich und kontrollierbar bleibt.

Hierbei werden Haarsträhnen mit verschiedener Dichte und Form aus einzelnen, simulierten Haaren auf Texturen mit Transparenz übertragen, welche auf Polygon-Flächen, die sogenannten Haircards, angewendet werden. Aus einigen Haircards in mehreren Variationen kann dann in Lagen eine Frisur aufgebaut werden. Dabei sind die Schichten nahe an der Kopfhaut dichter, die äußeren Schichten haben immer mehr Transparenz. So sind die unteren Schichten durch die äußeren sichtbar und erzeugen so den Eindruck von Tiefe.

2.3.2. Prozess

Ausgangspunkt dieser Technik sind verschiedene Haarsträhnen aus einzelnen, simulierten Haaren. Diese können in einer 3D Applikation (z.B. Maya17 ) erstellt, und anschließend auf verschiedene Texturen gebaked werden.

Eine Height Map sorgt mit verschiedenen Graustufen dafür, dass sich einzelne Haare optisch von anderen abheben, wobei konventionell schwarz unten und weiß oben darstellt.

Eine Alpha Map enthält informationen darüber, welche Pixel der Textur welchen Grad an Transparenz haben, damit diese entsprechend dargestellt werden können.

Eine Ramp oder Root Map enthält einen schwarz-weißen Verlauf von den Haarwurzeln zu den Haarspitzen, und kann für Farbvariationen genutzt werden.

Eine ID Map gibt einzelnen Haaren unterschiedliche Grauwerte und wird ebenfalls für Farbvariation genutzt.

Eine Diffuse Map gibt die Farbwerte der Haare an und kann je nach Anwendung entfallen, da die Farbe auf andere Weise bestimmt wird.

Als nächstes werden Planes erstellt die den Formen der Haarsträhnen folgen. Hier muss eine Balance zwischen Polygonanzahl und Genauigkeit des Umrisses gefunden werden. Anschließend werden die UVs der Planes erstellt und auf der Textur über der zugehörigen Haarsträhne angeordnet. Dies sorgt dafür, dass man nun die Planes mit den korrekten UVs duplizieren, die Polygone unterteilen und begrenzt verformen kann, da die UVs aller Iterationen an der selben Stelle bleiben.

Nun können mehrere Planes in verschiedenen Rotationen kombiniert werden, um dreidimensionale Haarbündel zu bilden, welche dann auf einem 3D Modell platziert werden. Hierbei sollten die dichteren Bündel näher an der Kopfhaut platziert werden, um einerseits das Durchscheinen dieser zu verhindern, und andererseits Volumen aufzubauen. In einer weiteren Schicht werden die Bündel mit mehr Transparenz platziert, um die Silhouette aufzubrechen und die natürliche Strähnenbildung menschlicher Haare nachzuempfinden. In einer letzten Schicht werden Bündel mit einzelnen Haaren platziert, um kurze, unbändige, oder durch Wind und Bewegung gelöste Haare darzustellen.18

17 Maya 2018 [Software]. Autodesk.
18 80Level: Tips & Tricks on Hair for Games (30.06.2018), URL: https://medium.com/@EightyLevel/tips-tricks-on-hair-for-games-66367a1b8be7 (Stand: 05.02.2019).

2.4. Tessellation

2.4.1. Überblick

Beispiel einer mit NVIDIA HairWorks erstellten Frisur

Abb. 4: Beispiel einer mit NVIDIA HairWorks erstellten Frisur.

NVIDIA HairWorks19 ist ein von NVIDIA entwickeltes Werkzeug, welches mit Hilfe von Tessellation Haare und Fell generiert. Mit dieser Methode können einzelne Haarsträhnen in Echtzeit dargestellt und simuliert werden.

Das Werkzeug besteht aus zwei Teilen. Zum einen ein Plugin für eine 3D Applikation ( z.B. Maya20 oder 3Ds Max21 ), und dem HairWorks Viewer22. Das Plugin dient dazu, mit der 3D Applikation eine für den HairWorks Viewer23 lesbare Datei zu produzieren.

Dieser gibt dem Nutzer diverse Möglichkeiten, die Eigenschaften der Haare zu bearbeiten. So können unter anderem die Haardicke, Steifheit, Gewelltheit und Tendenz zur Strähnenbildung festgelegt werden.

2.4.2. Prozess

2.4.2.1. Maya

Die Grundlage dieser Technik bilden Guide Curves, denen die generierten Haare folgen können. Diese müssen in einer 3D Applikation auf der Oberfläche eines 3D Objekts produziert werden.

In Maya24 können Curves vollständig per Hand erstellt, oder aus XGen Guides konvertiert werden. Dazu wird eine XGen Description erstellt, deren Primitives durch Guides kontrolliert werden. Dadurch kann der Nutzer mit einem Pinsel auf der Oberfläche des 3D Objekts festlegen, wo Guides generiert werden sollen.25

Diese werden bearbeitet, bis die gewünschte Frisur fertiggestellt ist, und abschließend zu Curves konvertiert und exportiert.

2.4.2.2. Shave and a Haircut

Eine Alternative dazu bietet das Plugin eines Drittanbieters mit dem Namen "Shave and a Haircut" (im folgenden "SaaH")26 . Dieses hat den gleichen ursprünglichen Verwendungszweck wie XGen, produziert aber seine Guides automatisch und an den Vertices des 3D Objekts. Da HairWorks27 diese Anordnung voraussetzt, und alle Guides, die dem nicht entsprechen, auf eine nahegelegenen Vertex verschiebt, werden so alle Vertices automatisch abgedeckt und Lücken vermieden. Die Guides können mit verschiedenen Werkzeugen bearbeitet werden, bis die gewünschte Frisur erzielt wurde. Die generierten Guides müssen vor dem Export zu Curves konvertiert werden.28

2.4.2.3. Fibermesh

Eine weitere Möglichkeit bietet die Fibermesh Funktion von ZBrush29. Fibermesh generiert einzelne Haare, hier Fibers genannt, die mit Werkzeugen bearbeitet und zu einer Frisur geformt werden können. Die Fibers können in gängigen Formaten (hier Maya Binary) exportiert und sofort von Maya30 als Curves gelesen werden.31

19 NVIDIA HairWorks [Software]. NVIDIA.
20 Maya 2018 [Software]. Autodesk.
21 3ds Max [Software]. Autodesk.
22 NVIDIA HairWorks [Software]. NVIDIA.
23 NVIDIA HairWorks [Software]. NVIDIA.
24 Maya 2018 [Software]. Autodesk.
25 Autodesk, Guides (09.09.2014), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/ Maya/files/GUID-7D22C4F0-F9AA-4F75-AD4A-18C556069415-htm.html (Stand: 04.02.2019).
26 Shave and a Haircut [Software]. Alter, Joseph.
27 NVIDIA HairWorks [Software]. NVIDIA.
28 NVIDIA: Using NVIDIA HairWorks?, URL: https://docs.nvidia.com/gameworks/content/artisttools/hairworks/Using_HairWorks.html (Stand: 04.02.2019).
29 ZBrush 2018 [Software].Pixologic.
30 Maya 2018 [Software]. Autodesk.
31 Pixologic, Advanced Options, URL: http://docs.pixologic.com/user-guide/3d-modeling/fibermesh/advanced-options/ (Stand: 04.02.2019).

2.5. Auswahl der Techniken zur praktischen Umsetzung

Die Techniken, die zur genaueren Betrachtung und praktischen Umsetzung ausgewählt wurden, sind Haircards/Hairstrips und Tesselation mit Hilfe von NVIDIA HairWorks32. Beide Techniken wurden innerhalb der letzten fünf Jahre in erfolgreichen3334 Videospielen verwendet (Uncharted 4: A Thief's End35, The Witcher 3: Wild Hunt36 ) und stimmen deshalb mit modernen visuellen Erwartungen und technischen Möglichkeiten überein. Sie haben zudem weniger Einschränkungen als andere Techniken und erlauben mit der richtigen Herangehensweise das Produzieren zahlreicher unterschiedlicher Frisuren.

Shells hingegen eignen sich allgemein eher für Fell oder kurze Haare, und geben über die Länge hinweg nur wenig Kontrolle über eine Frisur.

Auch Haarmodelle sind nicht für alle Frisuren geeignet. Sie funktionieren am besten für starre Frisuren wie Hochsteckfrisuren oder gegelte Haare, wobei sie auch in diesen Fällen heute meist mit Haircards kombiniert und so aufgewertet werden37.

32 NVIDIA HairWorks [Software]. NVIDIA.
33 Fuhrmann, Marvin: ?Uncharted 4: A Thief's End - Neuer Meilenstein für Verkaufszahlen? (05.01.2017), URL: http://www.gamona.de/games/uncharted-4-a-thief-s-end,neuer-meilenstein-fuer-die-verkaufszahlen:ne ws.html (Stand: 04.02.2019).
34 Makuch, Eddie: ?Witcher 3 Ships Almost 10 Million Copies - Report? (11.03.2016), URL: https://www.gamespot.com/articles/witcher-3-ships-almost-10-million-copies-report/1100-6435592/ (Stand: 04.02.2019).
35 Tzeng, Frank: ?Uncharted 4 - A Thief's End Characters Art Dump? (06.07.2016), URL: http://www.zbrushcentral.com/showthread.php?200729-Uncharted-4-A-Thief-s-End-Characters-Art-du mp (Stand: 04.02.2019).
36 Zoellner, Aron: ?NVIDIA HairWorks in the Witcher 3? (16.11.2015), URL: https://developer.nvidia.com/content/nvidia-hairworks-witcher-3 (Stand: 04.02.2019).
37 Airship Images:? Breakdown: Making the Hair on The Division?.

3. Praktische Anwendung

3.1. Haircards/Hairstrips

3.1.1. Haare generieren mit XGen

Um Texturen für diese Technik zu produzieren, müssen zuerst Haare in Form von Primitives generiert werden, die anschließend auf Texturen gerendert werden können. 3D Applikationen wie Maya38 haben eingebaute Funktionen, die diese Aufgabe übernehmen können. Mayas39 XGen ist darauf ausgelegt, detaillierte und realistische Haare (oder auch Fell, Gras, etc.) zu produzieren, welche als Primitives bezeichnet werden.

XGen benötigt zuerst Polygone, auf welchen die Primitives generiert werden können. Für den Zweck des Bakens von Texturen reicht hier eine einfache Plane. Zunächst wird eine neue XGen Description erstellt, deren Primitives durch Guides kontrolliert werden40. Anschließend können manuell Guides platziert und geformt werden, um die gewünschte Grundform der Haarsträhne zu bestimmen. Es werden mindestens zwei Guides benötigt, zwischen denen Primitives interpoliert werden. Diese können nach Bedarf ein- und ausgeblendet werden.

Die ersten Einstellungen, die im Primitives Reiter vorgenommen werden sollten, sind die Dichte, Dicke, und die Verjüngung der Haare. Dies dient dazu, das Aussehen realer Haare bestmöglich nachzubilden, damit die daraus entstehenden Texturen glaubwürdig sind. Als nächstes können Modifier, wie Clumping, Noise und Cut hinzugefügt werden.

XGen Guides und Primitives

Abb. 5: XGen Guides und Primitives.

Der Clump Modifier sorgt dafür, dass die Primitives zu Strähnen gebündelt werden. Die zuvor erstellten Guides können hier für das Clumping genutzt werden, alternativ können manuell Clumping Guides auf der Plane erstellt werden.

Wie sehr die Primitives gebündelt werden, kann mit Hilfe einer Kurve definiert werden, bei der die linke Seite der X-Achse die Haarwurzeln, und die rechte Seite die Haarspitzen darstellt. Auf der Y-Achse wird die Stärke des Clumpings dargestellt, welche durch den Clump-Wert als Maximalwert begrenzt ist .

Der Noise Modifier gibt den Primitives Varianz. Sie erhalten Wellen und folgen weniger stark den Guides. Mit dem Frequency-Wert kann der Abstand zwischen den Wellen definiert werden, während der Magnitude-Wert den Maximalwert der Stärke angibt. Diese kann, wie beim Clumping, durch eine Kurve von Haarwurzel bis -spitze definiert werden42.

Der Cut Modifier beeinflusst die Länge einzelner Primitives. Für ein realistisches Ergebnis, bei dem die Haare einer Strähne unterschiedliche Längen haben, kann hier für den Amount-Wert eine Expression benutzt werden, die einen zufälligen Wert aus einem Bereich wählt. Dadurch wird jedem Primitive einer dieser Werte für seine Länge zugeordnet43.

3.1.2. Texturen erstellen

3.1.2.1. Rendern mit Arnold

Der in Maya44 mitgelieferte Arnold Renderer bietet die Möglichkeit, die in XGen generierten Primitives als Bilddatei zu rendern.

Zunächst wird dazu eine Lichtquelle benötigt, deren Abstand zu den Haarsträhnen, Größe, und Belichtung je nach Anforderung eingestellt werden müssen.

Im Render View wird zunächst in der Dropdown-Liste anstatt Maya45 Software der Arnold Renderer ausgewählt. Als nächstes wird die Kamera (top, front, side, etc.) ausgewählt, die so auf die Primitives gerichtet ist, wie diese gerendert werden sollen. Im Viewport kann zwischen verschiedenen Kameras gewechselt, und durch Bewegen und Zoomen der zu rendernde Bildausschnitt eingestellt werden46.

In den Render Settings können Einstellungen wie ein Präfix für die gerenderten Dateien, das Dateiformat, die Abmessungen, und die Auflösung festgelegt werden47.

Um eine Alpha Map zu rendern, kann den in XGen generierten Primitives ein weißes Material zugewiesen, und das Licht so angepasst werden, dass diese rein weiß gerendert werden. Es empfiehlt sich, für Tests die Abmessungen gering zu halten, um das Rendern zu beschleunigen.

Mit Arnold gerenderte Alpha Map

Abb. 6: Mit Arnold gerenderte Alpha Map.

Die Ramp Map wird nach dem gleichen Prinzip produziert, nur wird hier statt einem weißen Material ein Farbverlauf von schwarz zu weiß benutzt.

Mit Arnold gerenderte Ramp Map

Abb. 7: Mit Arnold gerenderte Ramp Map.

Um eine ID Map zu rendern, wird den Primitives mit Hilfe eines Shaders eine zufällige Farbe zugeordnet48, und die entstandene Bilddatei anschließend in Graustufen umgewandelt.

Mit Arnold gerenderte ID Map

Abb. 8: Mit Arnold gerenderte ID Map.

3.1.2.2. Baken mit xNormal

xNormal49 benötigt zum Baken der benötigten Maps mehrere Modelle:

  • - Das Highpoly-Modell, in diesem Fall die Haarsträhnen
  • - Ein Lowpoly-Modell, auf welches die Informationen gerendert werden sollen, in diesem Fall eine Plane, die unter den Haarsträhnen liegt
  • - einen Cage, der definiert, wo das Highpoly-Modell endet, hier ebenfalls eine Plane, welche über den Haarsträhnen liegt

Dafür müssen die mit XGen generierten Primitives in Polygone konvertiert, und zufällig in fünf Gruppen aufgeteilt werden.

Um die Alpha Map zu baken, muss zunächst ein oder mehrere Modell/e, hier die im .obj Format exportierten Haarsträhnen, hinzugefügt werden. Als nächstes wird eine weiße Textur zugewiesen, damit nicht-transparente Pixel in der Alpha-Textur als weiß gebaked werden. Danach wird zunächst die untere Plane als Lowpoly-Modell, auf welches die Informationen übertragen werden sollen, hinzugefügt, und anschließend die obere Plane als Cage.

In den Baking Options können der Dateiname, der Speicherort, die Größe der Textur und des Edge Paddings, und der Grad an Antialiasing festgelegt werden.

Um nun die Alpha Map zu baken, muss der Parameter "Bake base Texture" gesetzt werden. So wird dort auf der Textur, wo sich das Highpoly-Modell befindet, das Weiß der zuvor hinzugefügten Textur gerendert. Außerdem muss Edge Padding für diesen Zweck auf Null gestellt werden, da das Ergebnis ansonsten verfälscht werden würde. Über die "Generate Maps" Funktion kann der Bake-Vorgang gestartet werden.

Mit xNormal gerenderte Alpha Map

Abb. 9: Mit xNormal gerenderte Alpha Map.

Zum Baken der ID Map werden die gruppierten Haare benötigt. Jeder der fünf Gruppen wird eine Textur mit unterschiedlicher Graustufe zugeordnet. In den Baking Options kann Edge Padding auf den gewünschten Wert gestellt und anschließend der Baking-Vorgang gestartet werden.

Mit xNormal gerenderte ID Map

Abb. 10: Mit xNormal gerenderte ID Map.

Der nächste Schritt ist das Baken einer Ramp Map. Hierzu wird eine Textur mit Farbverlauf von schwarz zu weiß benötigt, wobei die UVs der Haare so ausgerichtet sein müssen, dass der Haaransatz in Richtung schwarz, und die Haarspitzen in Richtung weiß gerichtet sind.

Mit xNormal gerenderte Ramp Map

Abb. 11: Mit xNormal gerenderte Ramp Map.

Zuletzt folgt das Baken einer Height Map. Dazu muss in den Baking Options anstelle von "Bake base texture" die Option "Height Map" ausgewählt werden, und der Bake-Vorgang kann gestartet werden.

Mit xNormal gerenderte Height Map

Abb. 12: Mit xNormal gerenderte Height Map.

3.1.3. Platzieren der Haircards

3.1.3.1. Manuelles Platzieren

Nachdem die Texturen erstellt wurden können diese auf die Haircards angewendet werden. So erhält man beim manuellen Platzieren auf dem Charaktermodell einen besseren Eindruck des Gesamtbildes.

Einzelne oder zuvor gebündelte Gruppen von Haircards werden auf der Kopfhaut platziert. Hierbei kann es hilfreich sein, den Pivot der Haircard/s an die Edge in Richtung der Haarwuzel zu verschieben, und entweder die Funktion, diesen an Vertices andocken zu lassen, zu nutzen, oder das Charaktermodell live50 zu machen, wodurch der Pivot überall auf der Oberfläche andocken kann.

Zunächst werden die Haircards mit der dichtesten Textur verwendet, um die Kopfhaut des Charaktermodells abzudecken und deren durchscheinen zu verhindern. Danach werden die dichtesten Haircards benutzt, um das Volumen der Haare möglichst undurchsichtig aufzubauen. Hier ist es hilfreich, von unten nach oben zu arbeiten, damit die aktuellen Haircards nicht von bereits angebrachten verdeckt werden.

Als nächstes werden die weniger dichten Haircards verwendet, um die Silhouette der Frisur aufzubrechen und einzelne Haarsträhnen nachzubilden.

Zuletzt werden die Haircards mit der meisten Transparenz platziert. Diese geben den Eindruck von einzelnen Haaren, die sich von Haarsträhnen gelöst haben.

Allgemein sollte hier darauf geachtet werden, dass sich dichte Haircards nicht kreuzen, da dies beim Darstellen unschöne Kanten in der Schattierung hervorruft. Außerdem sollten die Haircards in verschiedenen Rotationen, Biegungen u.Ä. genutzt werden, um der Frisur Varianz zu geben.

3.1.3.2. Platzieren mit XGen

Eine andere Möglichkeit, Haircards zu platzieren, ist mit Hilfe von XGen. Dazu wird eine neue XGen Description erstellt, die Groomable Splines produziert und durch Grooming Tools gesteuert wird51.

Groomable Splines mit Primitives

Abb. 13: Groomable Splines mit Primitives.

Die Dichte, Länge und Breite der generierten Primitives können anschließend so festgelegt werden, dass sie wie manuell erstellte Haircards aussehen.

Als nächstes können die Groomable Splines, von welchen die Primitives gesteuert werden, mit den vorhandenen Grooming Werkzeugen in die Form einer Frisur gebracht werden52. Das Ziel hierbei ist, die Primitives so an der Oberfläche der Kopfhaut auszurichten, dass diese nicht mehr sichtbar ist.

Zuletzt können die XGen Primitives in Polygone konvertiert und wie normale Haircards weiterverwendet werden53.

Zu Polygonen konvertierte Primitives

Abb. 14: Zu Polygonen konvertierte Primitives.

38 Maya 2018 [Software]. Autodesk.
38 Maya 2018 [Software]. Autodesk.
39 Maya 2018 [Software]. Autodesk.
38 Maya 2018 [Software]. Autodesk.
40 Autodesk: Create XGen Descriptions (09.09.2014), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/ Maya/files/GUID-28300C62-3AB2-4E21-9322-66AE5CDF1E27-htm.html (Stand: 04.02.2019).
41 Autodesk: Clumping (09.09.2014), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/ Maya/files/GUID-C3CDB895-8108-4A67-B96A-4EA306077D63-htm.html (Stand: 04.02.2019).
42 Autodesk: Noise (09.09.2014); URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/ Maya/files/GUID-033AB4A2-DF63-4966-8052-DCF93F91C178-htm.html (Stand: 04.02.2019).
43 Autodesk: Cut (09.09.2014), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/ Maya/files/GUID-9396070D-A4B1-4C89-A39A-3EEA64211351-htm.html (Stand: 04.02.2019).
44 Maya 2018 [Software]. Autodesk.
45 Maya 2018 [Software]. Autodesk.
46 Solid Angle: Rendering Your First Scene, URL: https://docs.arnoldrenderer.com/display/A5AFMUG/Rendering+Your+First+Scene (Stand: 04.02.2019).
47 Solid Angle: Arnold Render Settings, URL: https://docs.arnoldrenderer.com/display/A5AFMUG/Arnold+Render+Settings (Stand: 04.02.2019).
48 Griggs, Lee: Assigning Random Colors to Primitives (10.09.2016), URL: https://area.autodesk.com/tutorials/assigning-random-colors-to-primitives/ (Stand: 05.02.2019).
49 xNormal [Software]. Orgaz, S.
50 Autodesk: Set a live surface (11.05.2016). URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/ Maya/files/GUID-EBF1E652-4DDD-423F-B42E-3BF85AE46A5D-htm.html (Stand: 05.02.2019).
51 Autodesk: Create hair and fur using grooming brushes (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/ Maya/files/GUID-687F5111-FBE8-4D7F-89D7-F0B3CF958915-htm.html (Stand: 05.02.2019).
52 Autodesk: Grooming Brushes (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/ Maya/files/GUID-09E7B162-3676-4B98-9E7A-B60BE0870619-htm.html (Stand: 05.02.2019).
53 Autodesk: Convert XGen hair and fur to Maya geometry (13.08.2018), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2018/ENU/ Maya-CharEffEnvBuild/files/GUID-33279585-C22F-4E3E-880F-6EFD3D0BFA9A-htm.html (Stand: 05.02.2019).

3.2. NVIDIA HairWorks

3.2.1. Prozess

Um mit HairWorks57 Haare generieren lassen zu können, werden zuerst Guide Curves auf der Oberfläche eines 3D Objekts benötigt. Die Software arbeitet mit einer Guide Curve pro Vertex des 3D-Modells. Curves, die nicht genau auf einem Vertex liegen, werden beim Export als HairWorks Datei zum nahegelegensten verschoben. Sind alle Vertices belegt, werden alle übrigen Curves ignoriert.

HairWorks55 setzt außerdem voraus, dass das Modell, auf dem Haare generiert werden sollen, mindestens einem Joint zugewiesen ist.

Für die SaaH56 Methode ist es von Vorteil, die Kopfhaut des Charakters zu separieren, da das Plugin auf jedem Vertex des ausgewählten Modells eine Guide Curve generiert, wodurch ansonsten auf dem gesamten Kopf/Charaktermodell Guides entstehen würden. Für andere Methoden ist dies nicht zwingend notwendig, es kann direkt mit dem Kopf, oder dem vollständigen Charaktermodell gearbeitet werden, was jedoch ggf. die Rechenzeit negativ beeinflusst.

Schnittkanten in Kopfhautmodell

Abb. 15: Schnittkanten in Kopfhautmodell.

Beim Modell außerdem früh zu beachten ist die Interpolierung der Haare zwischen den Guides. Soll ein Scheitel erzeugt werden, oder liegen Haarsträhnen mit unterschiedlicher Ausrichtung nah beieinander, müssen die Edges/Vertices an der entsprechenden Stelle geteilt werden57. Dies sollte zumindest bei der SaaH58 Methode vor dem Generieren der Guides passieren, damit auch die neu entstandenen Vertices an den Schnittkanten Guides erhalten. Bei der Nutzung von XGen können jederzeit neue Guides hinzugefügt werden.

Um Zöpfe o.ä. zu produzieren, muss in der 3D Applikation ein Hair Pin erstellt werden. Dieser sorgt später dafür, dass die Haare in seinem Einflussbereich gebündelt bleiben.

3.2.1.1. XGen

Um in Maya59 Curves für HairWorks60 zu generieren, ist die eingebaute XGen Funktion hilfreich. Im XGen Editor wird eine neue Description erstellt, deren Primitives durch Guides kontrolliert werden.

Mit XGen generierte Curves

Abb. 16: Mit XGen generierte Curves.

Anschließend können auf bzw. in der Nähe der Vertices Punkte definiert werden, an denen Guides generiert werden sollen. Es ist hilfreich, sich hier das Gitternetz über dem Modell anzeigen zu lassen. Die Guides können im Anschluss mit dem Sculpt Tool, oder mit den Guide Control Points, bearbeitet werden. Für längere Haare sollte hier der Modifier CV Count erhöht werden, um mehr Unterteilungen der Guides und somit eine glattere Form zu erhalten.

3.2.1.2. Shave and a Haircut

Mit SaaH61 ist der Prozess ähnlich, wird jedoch dadurch vereinfacht, dass die Guides automatisch an den Vertices generiert werden. Dazu wird eine neue Shave Node erstellt und anschließend zum Zweck einer besseren Übersicht im Attribute Editor der Haircount auf 1 heruntergesetzt, wodurch keine Haare mehr dargestellt werden und nur die Guides übrig bleiben. Hier ist es auch sinnvoll, je nach zu erzielender Frisur die Hair Segments zu erhöhen. Dies gibt den Guides mehr Unterteilungen, wodurch komplexere Formen erstellt, oder lange Haare besser visualisiert werden können.

Nun können die Guides mit den Werkzeugen des Plugins bearbeitet werden. Das Hauptwerkzeug hierbei ist das Shave Brush Tool, welches sechs Modi besitzt, die in den Tool Settings ausgewählt werden können.

Mit SaaH generierte Curves

Abb. 17: Mit SaaH generierte Curves.

Der Translate Modus bewegt alle Punkte der Guides, die sich im Einflussbereich des Pinsels befinden. Dabei kann der gesamte Guide bewegt werden, da die vorhergegangenen Punkte mit abfallender Stärke folgen. Die Guides können so ausgerichtet oder glatt gezogen werden. Nachfolgende Punkte werden nicht beeinflusst.

Der Scale Modus skaliert den gesamten Guide, und fügt nicht nur Länge am Ende hinzu.

Der Rotate Mode bewegt die Punkte in einer Kreisbewegung um die Mausposition. Er eignet sich gut, um den Guides Schwung zu geben oder Wellen zu erzeugen.

Der Stand Hairs on End Modus richtet den gesamten Guide nach und nach auf, bis dieser wieder gerade und senkrecht von der Oberfläche absteht.

Der Puff Hairs out Modus hat einen sehr ähnlichen Effekt, fokussiert sich aber zunächst auf die Haarwurzeln bzw. den Anfang der Guides.

Der Clump Modus bündelt alle Guides in Richtung der Mausposition.

Bis auf den Translate Modus wird die Stärke des Effekts dadurch bestimmt, die weit die Maus von der ursprünglichen Position des Klicks nach rechts bewegt wird. Diese Effekte können umgekehrt werden, indem die Maus stattdessen nach links bewegt wird.

Mit dem Cut Tool können die Guides außerdem bis zum Rand des Pinsels abgeschnitten werden, ohne, dass der Rest des Guides beeinflusst wird.

SaaH62 bietet außerdem die Möglichkeit, zuvor vorbereitete Curves als Grundlage zur Ausrichtung der Guides heranzuziehen63.

3.2.1.3. Fibermesh

ZBrushs64 Fibermesh Funktion dient normalerweise dazu, Haare, Gras, oder ähnliches zu erstellen. Da von ZBrush65 generierte Curves exportiert werden können66, können diese, nach der Aufbereitung, ebenfalls für HairWorks67 genutzt werden.

Zu Anfang muss entweder ein 3D Modell in ZBrush68 erstellt, oder importiert werden. Für einen unkomplizierten Arbeitsablauf kann hier das vorbereitete Modell der Kopfhaut benutzt werden.

Mit Fibermesh generierte Curves

Abb. 18: Mit Fibermesh generierte Curves.

Anhand der Schnitte im Modell können durch Maskieren der Polygone Polygroups erstellt werden, welche beim Bearbeiten helfen, da diese ein- und ausgeblendet werden können, sodass an einzelnen Haarbündeln gearbeitet werden kann.

Da das Ziel nicht das Rendern von Haaren ist, können nach dem Erstellen eines Fibermesh einige Parameter (Clumps, Tangent, Twist, Revolve Rate) auf Null heruntergesetzt werden, um gerade, geordnete Fibers zu erhalten. Hier kann auch die Länge und Menge der Unterteilungen der Fibers je nach angestrebter Haarlänge angepasst werden69.

Unter Tool > FiberMesh > Preview Settings > FastPreview kann eine Vorschau eingeschaltet werden, bei der die Fibers reduziert werden.

Als letzter Vorbereitungsschritt sollte unter in den Pinseleinstellungen Preserve Length zunächst auf 100 eingestellt werden, damit die Fibers beim Verschieben ihre Länge beibehalten.

Mit dem Move und den Groom Werkzeug lassen sich diese in die gewünschte Form bringen. Dabei helfen die zuvor erstellen Polygroups, da sie von Fibers übernommen werden und ein- und ausgeblendet werden können. Außerdem können Fibers maskiert werden, so dass sie nicht von den Werkzeugen beeinflusst werden.

Polygroups

Abb. 19: Polygroups.

Das Smooth Werkzeug hilft dabei, den Fibers an der Kopfhaut eine glatte Rundung du geben, da sie an dieser Stelle nicht gut auf das Move Werkzeug reagieren, und glättet insgesamt Form und Länge. Auch hilfreich ist außerdem das Pinch Werkzeug, um die Fibers zu bündeln.

3.2.1.4. Export

Die letzten Schritte zur Vorbereitung sind für alle Methoden gleich und finden in der 3D Applikation statt.

Wurden die Guides mit XGen erstellt, müssen diese bei ausgewählter Description von Guides zu Curves konvertiert werden70.

SaaH71 besitzt in seinem Shave Menü eine eigene Funktion, um Guides in Curves zu konvertieren72.

Fibermesh Guides werden beim Export im .mb Format (Maya Binary) automatisch zu Curves konvertiert73.

Als nächstes muss mindestens ein Joint erstellt werden, an den das Modell gebunden werden muss, da Dateien ohne Joints und Skin Weights vom HairWorks Viewer74 nicht geöffnet werden. Ist das Modell schon gerigged entfällt dieser Schritt.

Als nächstes wird eine HairWorks Node erstellt und die Curves aus dem Outliner ausgewählt, die in HairWorks75 als Guides dienen sollen. Es kann außerdem festgelegt werden, mit wie vielen Unterteilungen die Guides exportiert werden sollen. Eine höhere Zahl bedeutet hier mehr Unterteilungen und somit ein glatteres Ergebnis.

Anschließend kann das Modell zusammen mit dem/den Joint/s im .fbx Format exportiert werden.

Als nächstes muss die HairWorks Datei exportiert werden. Hier kann entweder die gesamte Szene exportiert, oder das Modell, der/die Joint/s, und die Curves einzeln ausgewählt und exportiert werden, falls noch andere Objekte in der Szene vorhanden sind76.

Zuletzt können die beiden Dateien in den HairWorks Viewer77 importiert werden. Mit dem Import der .apx oder .apb Datei werden sofort Haare im Umkreis der Curves erstellt. Teile des Modells, auf denen keine Curves liegen, bleiben unberührt.

54NVIDIA HairWorks [Software]. NVIDIA.
55NVIDIA HairWorks [Software]. NVIDIA.
56Shave and a haircut [Software]. Alter, Joseph.
57NVIDIA: Using NVIDIA HairWorks.
58Shave and a haircut [Software]. Alter, Joseph.
59Maya 2018 [Software]. Autodesk.
60NVIDIA HairWorks [Software]. NVIDIA.
61Shave and a haircut [Software]. Alter, Joseph.
62Shave and a haircut [Software]. Alter, Joseph.
63Alter, Joseph: Shave and a Haircut 9.5, URL: http://www.joealter-downloads.com/newSite/softloads/dist96/shave96.pdf (Stand: 04.02.2019).
64ZBrush 2018 [Software].Pixologic.
65ZBrush 2018 [Software].Pixologic.
66Pixologic: Fibermesh, URL: http://docs.pixologic.com/reference-guide/tool/polymesh/fibermesh/ (Stand: 05.02.2019).
67NVIDIA HairWorks [Software]. NVIDIA.
68ZBrush 2018 [Software].Pixologic.
69Pixologic: Workflow, URL:http://docs.pixologic.com/user-guide/3d-modeling/fibermesh/workflow/ (Stand: 04.02.2019).
70Autodesk: Guides To Curves options (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-1FE5A416-518A-4A0F-8F3D-179FFE403390-htm.html (Stand: 05.02.2019).
71Shave and a haircut [Software]. Alter, Joseph.
72NVIDIA: Using NVIDIA HairWorks.
73Pixologic: Fibermesh.
74NVIDIA HairWorks [Software]. NVIDIA.
75NVIDIA HairWorks [Software]. NVIDIA.
76NVIDIA:Using NVIDIA HairWorks.
77NVIDIA HairWorks [Software]. NVIDIA.

4. Fazit

4.1. Haircards/Hairstrips

4.1.1. Haare generieren mit XGen

Mayas78 XGen ist ein umfangreiches und vielseitiges Werkzeug, welches zahlreiche Möglichkeiten bietet, Haarsträhnen glaubhaft abzubilden.

Mit Hilfe von Guides ist das Platzieren und Formen einzelner Haarsträhnen schnell, die Modifier erlauben das präzise festlegen von Attributen und können durch Expressions und Maps ergänzt werden, welche die Präzision und Kontrolle weiter erhöhen.

4.1.2. Texturen Erstellen

4.1.2.1. Rendern mit Arnold

Da Arnold nicht direkt zum Rendern von Texture-Maps entwickelt wurde, müssen einige Schritte unternommen werden, um dennoch ein gutes Ergebnis zu erhalten. Durch die Notwendigkeit einer Lichtquelle und des Ausrichtens der Kamera, mit welcher gerendert werden soll, ist der Prozess komplizierter als z.B. in xNormal79. Zusätzlich konnte mit Arnold keine zufriedenstellende Height Map generiert werden, die die Tatsächliche Position der einzelnen Haare auf der Z-Achse widerspiegelt, da keine Methode dafür auffindbar war. Auch die ID Map kann nicht optimal gerendert werden, braucht einige Vorbereitung (Erstellung eines Shaders und Nutzung von Expressions), und produziert ein weniger differenziertes Ergebnis als z.B. xNormal80.

Zuletzt fehlt beim Rendern mit Arnold die Möglichkeit Edge Padding zu generieren, wodurch die Texturen am Ende unsauber aussehen können.

4.1.2.2. Baken mit xNormal

Das Baken von Texturen mit xNormal81 ist hingegen recht simpel, das Endergebnis ist allerdings visuell schlechter. Dadurch, dass für xNormal82 die XGen Primitives in Polygone konvertiert werden, und diese keine Zylinder, sondern Streifen sind, wird die Textur bei gleicher Auflösung nie so sauber, wie eine mit Arnold gerenderte.

Mit xNormal gerenderte Alpha Map

Abb. 20(a): Mit xNormal gerenderte Alpha Map.

Mit Arnold gerenderte Alpha Map

Abb. 20(b): Mit Arnold gerenderte Alpha Map.

Die Vorbereitungen für eine ID Map sind auch hier durch das Gruppieren der einzelnen Haare umständlich, es wird jedoch ein differenzierteres Ergebnis erzeugt, bei dem mehr Graustufen genutzt werden.

4.1.3. Platzieren der Haircards

4.1.3.1. Manuelles Platzieren

Das Manuelle Platzieren von Haircards ist ein unkomplizierter, aber dafür sehr zeitaufwändiger Prozess, der aber volle Kontrolle über die gesamte Frisur erlaubt.

Durch Einschränkungen bei der Darstellung von Transparenz in 3D Applikationen kann es nötig werden, die Frisur während des Arbeitsprozesses regelmäßig zu exportieren und in einer Engine darzustellen, um einen vollständigen und korrekten Eindruck des bisherigen Fortschritts zu erhalten.

Haircards mit Texturen, Frontansicht

Abb. 25(a): Haircards mit Texturen, Frontansicht.

Haircards mit Texturen, Rückansicht

Abb. 25(b): Haircards mit Texturen, Rückansicht.

4.1.3.2. Platzieren mit XGen

Das Platzieren von Haircards mit Hilfe von XGen ist simpel und kann den Prozess gegenüber manueller Platzierung enorm beschleunigen. Es geht jedoch ein Teil der Kontrolle verloren, da nicht jede Haircard per Hand platziert wird. Außerdem nutzt XGen bei dieser Herangehensweise nur einzelne Haircards, und keine Bündel.

Als Grundlage, um das Volumen von Frisuren aufzubauen und anschließend weitere Haircards manuell hinzuzufügen, ist diese Methode jedoch gut geeignet. Auch für Spielfiguren, die nicht sehr nah zu sehen sind, reicht diese Methode völlig aus, da durch LODs ohnehin auf größere Distanz oft kleine Details wie die Flyaway Schicht ausgeblendet werden.

4.2. NVIDIA HairWorks

4.2.1. XGen

Mayas83 XGen Funktion ist ein wirksames Werkzeug, um Curves zur Verwendung in HairWorks84 zu produzieren. Das manuelle Erstellen von Guides dauert nur wenige Minuten, da diese nur auf einer Hälfte des Kopfes platziert werden müssen und anschließend gespiegelt werden können. Ist die Frisur symmetrisch kann dieser Schritt auch am Ende stattfinden, wodurch der gesamte Prozess potenziell enorm verkürzt werden kann.

Zum Bearbeiten der Guides sind nur wenige Werkzeuge vorhanden, da die Groom Tools nur für Groomable Splines zur Verfügung stehen. Das Sculpt Guides Werkzeug ist jedoch in den meisten Fällen vollkommen ausreichend. Einzig das Kürzen von Guides ist hier umständlich, da dafür die Spitzen der Guides verschoben werden müssen, diese sich dabei aber oft zusammenfalten, anstatt tatsächlich gekürzt zu werden.

Das Verschieben und Bearbeiten der Guides funktioniert hingegen sehr gut. Vorhergegangene und nachfolgende Vertices entlang des Guides werden mit einem glatteren Abfall beeinflusst, wodurch natürliche Rundungen anstelle von Spitzen entstehen.

4.2.2. Shave and a Haircut

SaaH85 bietet eine Alternative zu vorhandenen Funktionen wie Mayas86 XGen und nimmt dem Nutzer durch das automatische, korrekte Platzieren der Guides vor allem bei Charakteren mit hoher Polygonanzahl Arbeit ab. Auch die Möglichkeit, die Guides an einigen Curves auszurichten, spart Zeit, da die Grundform der Frisur so schnell definiert ist.

Die Werkzeuge funktionieren ähnlich wie die Gegenstücke in XGen und lassen sich im allgemeinen einfach bedienen, und auch das Konvertieren ist schnell und einfach.

Eine Funktion, die bei SaaH87 besser implementiert ist, ist das Cut Tool. Dieses ermöglicht das Kürzen von Guides, ohne diesen im Gesamten skalieren, zu müssen, oder die gleichen Probleme wie bei XGen hervorzurufen.

SaaHs88 Translate Tool ist XGens Sculpt Tool jedoch unterlegen. Beide Werkzeuge ziehen die nötige Länge aus dem gesamten Guide, bewegen jedoch nicht das Ende. Um den Verlauf des Guides nun besser manipulieren zu können, kann das Ende in Richtung des restlichen Guides verschoben werden. SaaH89 beeinflusst hierbei jedoch nur den direkt benachbarten Punkt, wodurch unschöne Spitzen im Guide entstehen. Versucht man diese nun wieder zu glätten, läuft man Gefahr, auch die restliche Form des Guides glatt zu ziehen.

Spitzen in Guides

Abb. 21: Spitzen in Guides.

SaaH90 implementiert seine eigene Undo-Funktion und reagiert auf die standardmäßige Implementierung (Strg + Z) teilweise mit einem Absturz des Programms.

Nachdem sowohl SaaH91 und XGen genauer betrachtet wurden, scheint es zumindest zum Zweck der Erstellung von Guides für HairWorks92 keinen Grund zu geben, SaaH93 Mayas94 XGen vorzuziehen.

Der Funktionsumfang ist ähnlich, wobei XGen über einige Funktionen verfügt, die in SaaH95 nicht vorhanden sind. Das Spiegeln von Guides, die Kontrolle einzelner Guides über Control Points anstelle der Vertices, und das Übertragen der Form von einem Guide auf den nächsten sind Beispiele für in SaaH96 fehlende Funktionen.

4.2.3. Fibermesh

Im Vergleich mit anderen Methoden ist das Erstellen von Curves mit ZBrush97 eine weniger sinnvolle Möglichkeit. Falls in der Produktion schon mit ZBrush98 gearbeitet wird, kann das Erstellen der Guides auf dem Highpoly-Modell sinnvoll sein, um sofort einen Eindruck des Gesamtbildes zu bekommen und das Wechseln zwischen verschiedenen Programmen zu ersparen.

ZBrush99 gibt dem Nutzer jedoch wenig Kontrolle über einzelne Fibers, und auch die Kontrolle über Gruppen von Fibers ist nur dann gegeben, wenn entweder vorher viele Polygroups erstellt wurden, oder ständig alle anderen Fibers ausmaskiert werden. Dies ist allerdings umständlich, da die Fibers nicht von der Wurzel aus, sondern auf der gesamten Länge ausmaskiert werden müssen. Werden diese Vorbereitungen nicht getroffen, muss in einer 3D Applikation nachgearbeitet werden.

Auch die in ZBrush100 zur Verfügung stehenden Werkzeuge sind für diesen Zweck nicht zahlreicher oder besser, als die zur Bearbeitung von Guides in Maya101 oder mit SaaH102.

Außerdem fiel auf, dass beim Importieren in Maya103 viele sehr kurze Curves entstanden sind, obwohl alle Fibers in ZBrush104 kollektiv deutlich länger skaliert wurden.

Zuletzt fehlt hier außerdem jegliche Kontrolle über die Platzierung der Curves, wodurch entweder sehr viele Curves erstellt werden müssen, um die Chance zu erhöhen, dass jedem Vertex eine Curve zugeordnet werden kann, und von denen ein Großteil verworfen werden wird, oder es muss erneut nachgearbeitet werden, indem einzelne Curves dupliziert und manuell verschoben werden.

4.2.4. Nvidia HairWorks

Insgesamt ist Nvidia HairWorks105 eine realistische Methode, um Frisuren für Spiele zu produzieren.

Die nötigen Curves können auf verschiedene Weisen in unterschiedlicher Software erstellt werden, der Nutzer kann sich je nach Präferenz oder Notwendigkeit einen passenden Arbeitsablauf aussuchen.

Änderungen können schnell vorgenommen werden, sowohl durch Parameter innerhalb von HairWorks106 als auch durch Anpassen der Guides. Nur durch Anpassen von Parametern können verschiedene Variationen einer Frisur produziert werden, während die Guides gleich bleiben.

Der vom Hersteller empfohlene Arbeitsablauf beinhaltet die Nutzung von Software eines Drittanbieters, deren Vollversion gekauft werden muss. Im Laufe dieser Arbeit hat sich jedoch herausgestellt, dass diese Software nicht zwingend notwendig ist, sondern diese lediglich einige wenige von HairWorks107 benötigte Aspekte unterstützt. Diese Voraussetzungen sind allerdings auch mit anderer Software zu erfüllen.

Zuletzt ist diese Technik zur Verwendung mit aktueller Technologie und Grafikkarten von NVIDIA entwickelt und optimiert, wodurch es bei Verwendung der produzierten Frisuren mit älteren Grafikkarten, oder Grafikkarten von anderen Anbietern, zu Problemen kommen kann. Deshalb müsste bei einer echten Produktion zusätzlich eine Alternative für diese produziert werden.

Resultat mit XGen Guides, Frontansicht

Abb. 22(a): Resultat mit XGen Guides, Frontansicht.

Resultat mit XGen Guides, Rückansicht

Abb. 22(b): Resultat mit XGen Guides, Rückansicht.

Resultat mit SaaH Guides, Frontansicht

Abb. 23(a): Resultat mit SaaH Guides, Frontansicht.

Resultat mit SaaH Guides, Rückansicht

Abb. 23(b): Resultat mit SaaH Guides, Rückansicht.

Resultat mit Fibermesh ohne weiteres Nachbearbeiten, Frontansicht

Abb. 24(a): Resultat mit Fibermesh ohne weiteres Nachbearbeiten, Frontansicht.

Resultat mit Fibermesh ohne weiteres Nachbearbeiten, Rückansicht

Abb. 24(b): Resultat mit Fibermesh ohne weiteres Nachbearbeiten, Rückansicht.

78Maya 2018 [Software]. Autodesk.
79xNormal [Software]. Orgaz, S.
80xNormal [Software]. Orgaz, S.
81xNormal [Software]. Orgaz, S.
82xNormal [Software]. Orgaz, S.
83Maya 2018 [Software]. Autodesk.
84NVIDIA HairWorks [Software]. NVIDIA.
85Shave and a Haircut [Software]. Alter, Joseph.
86Maya 2018 [Software]. Autodesk.
87Shave and a Haircut [Software]. Alter, Joseph.
88Shave and a Haircut [Software]. Alter, Joseph.
89Shave and a Haircut [Software]. Alter, Joseph.
90Shave and a Haircut [Software]. Alter, Joseph.
91Shave and a Haircut [Software]. Alter, Joseph.
92NVIDIA HairWorks [Software]. NVIDIA.
93Shave and a Haircut [Software]. Alter, Joseph.
94Maya 2018 [Software]. Autodesk.
95Shave and a Haircut [Software]. Alter, Joseph.
96Shave and a Haircut [Software]. Alter, Joseph.
97ZBrush 2018 [Software].Pixologic.
98ZBrush 2018 [Software].Pixologic.
99ZBrush 2018 [Software].Pixologic.
100ZBrush 2018 [Software].Pixologic.
101Maya 2018 [Software]. Autodesk.
102Shave and a Haircut [Software]. Alter, Joseph.
103Maya 2018 [Software]. Autodesk.
104ZBrush 2018 [Software].Pixologic
105NVIDIA HairWorks [Software]. NVIDIA.
106NVIDIA HairWorks [Software]. NVIDIA.
107NVIDIA HairWorks [Software]. NVIDIA.

5. Quellenverzeichnis

3ds Max [Software]. Kalifornien, USA: Autodesk: 2018. Software.

80Level: Tips & Tricks on Hair for Games (30.06.2018), URL: https://medium.com/@EightyLevel/tips-tricks-on-hair-for-games-66367a1b8be7 (Stand: 05.02.2019).

Adobe Photoshop [Software]. Kalifornien, USA: Adobe Systems, 2018. Software.

Airship Images: Breakdown: Making the Hair on The Division, URL: http://airship-images.com/division-hair-breakdown/ (Stand: 04.02.2019).

Alter, Joseph: Shave and a Haircut 9.5, URL: http://www.joealter-downloads.com/newSite/softloads/dist96/shave96.pdf (Stand: 04.02.2019).

Autodesk: Clumping (09.09.2014), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/GUID-C3CDB895-8108-4A67-B96A-4EA306077D63-htm.html (Stand: 04.02.2019).

Autodesk: Convert XGen hair and fur to Maya geometry (13.08.2018), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2018/ENU/Maya-CharEffEnvBuild/files/GUID-33279585-C22F-4E3E-880F-6EFD3D0BFA9A-htm.html (Stand: 05.02.2019).

Autodesk: Create XGen Descriptions (09.09.2014), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/GUID-28300C62-3AB2-4E21-9322-66AE5CDF1E27-htm.html (Stand: 04.02.2019).

Autodesk: Create hair and fur using grooming brushes (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-687F5111-FBE8-4D7F-89D7-F0B3CF958915-htm.html (Stand: 05.02.2019).

Autodesk: Cut (09.09.2014), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/GUID-9396070D-A4B1-4C89-A39A-3EEA64211351-htm.html (Stand: 04.02.2019).

Autodesk: Groomable Splines (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-44371401-F0F4-4089-B614-DD73E74CA7CA-htm.html (Stand: 05.02.2019).

Autodesk: Grooming Brushes (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-09E7B162-3676-4B98-9E7A-B60BE0870619-htm.html (Stand: 05.02.2019).

Autodesk, Guides (09.09.2014), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/GUID-7D22C4F0-F9AA-4F75-AD4A-18C556069415-htm.html (Stand: 04.02.2019).

Autodesk: Guides To Curves options (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-1FE5A416-518A-4A0F-8F3D-179FFE403390-htm.html (Stand: 05.02.2019).

Autodesk: Joints and Bones (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-1B59334F-2605-44C3-B584-A55B239A2CBE-htm.html (Stand: 05.02.2019).

Autodesk: Noise (09.09.2014); URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/GUID-033AB4A2-DF63-4966-8052-DCF93F91C178-htm.html (Stand: 04.02.2019).

Autodesk: Preview hair, fur, and instanced geometry (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-66822A1A-C6AD-47B4-8782-E058B5E6A528-htm.html (Stand: 05.02.2019).

Autodesk: Set a live surface (11.05.2016). URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-EBF1E652-4DDD-423F-B42E-3BF85AE46A5D-htm.html (Stand: 05.02.2019).

Autodesk: XGen Descriptions (13.08.2019) https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2018/ENU/Maya-CharEffEnvBuild/files/GUID-E90F6106-DF5B-4D8E-AE7B-65CBC2FDB13D-htm.html (Stand: 05.02.2019).

Finkelstein, Adam/Hoppe, Hugues/Lengyel, Jerome/Praun, Emil: Real-Time Fur over Arbitrary Surfaces, in: I3D '01 Proceedings of the 2001 symposium on Interactive 3D graphics (2001).

Griggs, Lee: Assigning Random Colors to Primitives (10.09.2016), URL: https://area.autodesk.com/tutorials/assigning-random-colors-to-primitives/ (Stand: 05.02.2019).

Fuhrmann, Marvin: Uncharted 4: A Thief?s End - Neuer Meilenstein für Verkaufszahlen (05.01.2017), URL: http://www.gamona.de/games/uncharted-4-a-thief-s-end,neuer-meilenstein-fuer-die-verkaufszahlen:news.html (Stand: 04.02.2019).

Makuch, Eddie: Witcher 3 Ships Almost 10 Million Copies - Report (11.03.2016), URL: https://www.gamespot.com/articles/witcher-3-ships-almost-10-million-copies-report/1100-6435592/ (Stand: 04.02.2019).

Maya 2018 [Software]. Kalifornien, USA: Autodesk, 2018. Software.

NVIDIA HairWorks [Software]. Kalifornien, USA: NVIDIA, 2016. Software.

NVIDIA: Using NVIDIA HairWorks, URL: https://docs.nvidia.com/gameworks/content/artisttools/hairworks/Using_HairWorks.html (Stand: 04.02.2019).

Pixologic, Advanced Options, URL: http://docs.pixologic.com/user-guide/3d-modeling/fibermesh/advanced-options/ (Stand: 04.02.2019).

Pixologic: Fibermesh, URL: http://docs.pixologic.com/reference-guide/tool/polymesh/fibermesh/ (Stand: 05.02.2019).

Pixologic: Polygroups, URL: http://docs.pixologic.com/user-guide/3d-modeling/modeling-basics/polygroups/ (Stand: 05.02.2019).

Pixologic: Workflow, URL:http://docs.pixologic.com/user-guide/3d-modeling/fibermesh/workflow/ (Stand: 04.02.2019).

Polycount: Edge Padding (10.06.2017), URL: http://wiki.polycount.com/wiki/Edge_padding (Stand: 05.02.2019).

Polycount: Texture Baking (11.12.2018), URL: http://wiki.polycount.com/wiki/Texture_Baking (Stand: 05.02.2019).

Shave and a haircut [Software]. o.O., Alter, Joseph, 2018. Software.

Solid Angle: Arnold Render Settings, URL: https://docs.arnoldrenderer.com/display/A5AFMUG/Arnold+Render+Settings (Stand: 04.02.2019).

Solid Angle: Rendering Your First Scene, URL: https://docs.arnoldrenderer.com/display/A5AFMUG/Rendering+Your+First+Scene (Stand: 04.02.2019).

Substance Designer [Software]. Clermont-Ferrand, Frankreich: Allegorithmic, 2018. Software.

Substance Painter [Software]. Clermont-Ferrand, Frankreich: Allegorithmic, 2018. Software.

TressFX [Software]. Kalifornien, USA: AMD, 2014. Library.

Tzeng, Frank: Uncharted 4 - A Thief?s End Characters Art Dump (06.07.2016), URL: http://www.zbrushcentral.com/showthread.php?200729-Uncharted-4-A-Thief-s-End-Characters-Art-dump (Stand: 04.02.2019).

Wikipedia: Antialiasing (Computergrafik) (18.01.2019), URL: https://de.wikipedia.org/wiki/Antialiasing_(Computergrafik) (Stand: 05.02.2019).

Wikipedia: Level of Detail (06.04.2018), URL: https://de.wikipedia.org/wiki/Level_of_Detail (Stand: 05.02.2019). Wikipedia: Shader (28.11.2018), URL: https://de.wikipedia.org/wiki/Shader (Stand: 05.02.2019).

Wikipedia: Tessellation-Shader (31.05.2018), URL: https://de.wikipedia.org/wiki/Tessellation-Shader (Stand: 05.02.2019).

xNormal [Software], Madrid, Spanien: Orgaz, S., 2012. Software.

ZBrush 2018 [Software]. Kalifornien, USA: Pixologic, 2018. Software.

Zoellner, Aron: NVIDIA HairWorks in the Witcher 3 (16.11.2015), URL: https://developer.nvidia.com/content/nvidia-hairworks-witcher-3 (Stand: 04.02.2019).

6. Abbildungsverzeichnis

Abbildung 1: Screenshot aus Hitman: Codename 47 (PC, 2000, IO Interactive). Haarmodell einer weiblichen Spielfigur, (beschnitten). Screenshot. Mobygames.com, Juni 2002. Web. URL: https://www.mobygames.com/images/shots/l/27369-hitman-codename-47-windows-screenshot-rieper-admires-the-fishies.jpg (Stand: 05.02.2019).

Abbildung 2:Anwendung von Shells in Shadow of the Colossus (Playstation 2, Team ICO, Sony Interactive Entertainment, SIE Japan Studio, 2005). Screenshot. Polycount.com, July 2014. Web. URL: http://wiki.polycount.com/w/images/8/86/Hair_sotc-wires.jpg (Stand: 05.02.2019).

Abbildung 3: Charaktermodell aus Uncharted 4: A Thief?s End (Playstation 4, Naughty Dog, 2016). Screenshot. Tzeng, Zbrushcentral.com, Frank, Juli 2016. Web. URL: http://www.zbrushcentral.com/attachment.php?attachmentid=503905 (Stand: 05.02.2019).

Abbildung 4: Beispiel einer mit NVIDIA HairWorks erstellten Frisur. Screenshot. Lilly, Paul, hothardware.com, Juli 2018. Web. URL: https://hothardware.com/ContentImages/NewsItem/45021/content/Hairworks.jpg (Stand: 05.02.2019).

Abbildung 5: XGen Guides und Primitives. Screenshot. Ramona Kropp, Februar 2018, Maya.

Abbildung 6: Mit Arnold gerenderte Alpha Map. Render. Ramona Kropp, Februar 2018, Maya.

Abbildung 7: Mit Arnold gerenderte Ramp Map. Render. Ramona Kropp, Februar 2018, Maya.

Abbildung 8: Mit Arnold gerenderte ID Map. Render. Ramona Kropp, Februar 2018, Maya.

Abbildung 9: Mit xNormal gerenderte Alpha Map. Render. Ramona Kropp, Februar 2018, xNormal.

Abbildung 10: Mit xNormal gerenderte ID Map. Render. Ramona Kropp, Februar 2018, xNormal.

Abbildung 11: Mit xNormal gerenderte Ramp Map. Render. Ramona Kropp, Februar 2018, xNormal.

Abbildung 12: Mit xNormal gerenderte Height Map. Render. Ramona Kropp, Februar 2018, xNormal.

Abbildung 13: Groomable Splines mit Primitives. Screenshot. Ramona Kropp, Februar 2018, Maya.

Abbildung 14: Zu Polygonen konvertierte Primitives. Screenshot. Ramona Kropp, Februar 2018, Maya.

Abbildung 15: Schnittkanten in Kopfhaut-Modell. Screenshot. Ramona Kropp, Februar 2018, Maya.

Abbildung 16: Mit XGen generierte Curves. Screenshot. Ramona Kropp, Februar 2018, Maya.

Abbildung 17: Mit SaaH generierte Curves. Screenshot. Ramona Kropp, Februar 2018, Maya.

Abbildung 18: Mit Fibermesh generierte Curves. Screenshot. Ramona Kropp, Februar 2018, Maya.

Abbildung 19: Polygroups. Screenshot. Ramona Kropp, Februar 2018, ZBrush.

Abbildung 20(a): Mit xNormal gerenderte Alpha Map. Render. Ramona Kropp, Februar 2018, xNormal.

Abbildung 20(b): Mit Arnold gerenderte Alpha Map. Render. Ramona Kropp, Februar 2018, Maya.

Abbildung 21: Spitzen in Guides. Screenshot. Ramona Kropp, Februar 2018, Maya.

Abbildung 22(a): Resultat mit XGen Guides, Frontansicht. Screenshot. Ramona Kropp, Februar 2018, NVIDIA HairWorks.

Abbildung 22(b): Resultat mit XGen Guides, Rückansicht. Screenshot. Ramona Kropp, Februar 2018, NVIDIA HairWorks.

Abbildung 23(a): Resultat mit SaaH Guides, Frontansicht. Screenshot. Ramona Kropp, Februar 2018, NVIDIA HairWorks.

Abbildung 23(b): Resultat mit SaaH Guides, Rückansicht. Screenshot. Ramona Kropp, Februar 2018, NVIDIA HairWorks.

Abbildung 24(a): Resultat mit Fibermesh ohne weiteres Nacharbeiten, Frontansicht. Screenshot. Ramona Kropp, Februar 2018, NVIDIA HairWorks.

Abbildung 24(b): Resultat mit Fibermesh ohne weiteres Nacharbeiten, Rückansicht. Screenshot. Ramona Kropp, Februar 2018, NVIDIA HairWorks.

Abbildung 25(a): Haircards mit Texturen, Frontansicht. Screenshot, Ramona Kropp, Februar 2018, Unreal Engine 4.

Abbildung 25(b): Haircards mit Texturen, Rückansicht. Screenshot, Ramona Kropp, Februar 2018, Unreal Engine 4.

7. Anhang

7.1. Glossar

Antialiasing: Kantenglättung; "[...] ist die Verminderung von unerwünschten Effekten, die durch das begrenzte Pixelraster [...] oder durch den Treppeneffekt bei der Erzeugung einer Computergrafik [...] entstehen können." 108
Baken: Übertragen von Informationen von einem 3D Modell z.B. auf eine Textur zur Nutzung mit einem anderen 3D Modell, dem diese Informationen fehlen109
Edge Padding: Kopieren der Pixelfarben einer Textur um einige Pixel nach außen, um versehentliches Darstellen der Hintergrundfarbe zu verhindern110
Groomable Splines: Interaktiv beeinflussbare Kurven in Maya, die benutzt werden, um in XGen generierte Geometrie zu steuern111
Grooming Tools: Werkzeuge, mit denen Groomable Splines bearbeitet werden können112
Guide: Kurve, nach welcher sich andere Objekte ausrichten (z.B. XGen Primitives in Maya)113
Joint: Objekte in Maya, aus denen Skelette zum Zweck der Animation aufgebaut sind114
LOD: Level of Detail. Wird genutzt um grafische Anforderungen von weit entfernten Objekten zu reduzieren, in dem z.B. Polygonanzahl und Texturauflösung gesenkt werden115
Polygroup: Funktion in ZBrush, bei der Polygone visuell gruppiert werden, ohne die Topologie zu verändern116
Primitive: Von XGen generierte Geometrie zur Visualisierung von Haaren, Gras, u.ä.117
Shader: "Shader (von englisch shade für "Schattierer") sind Hardware- oder Software-Module, die bestimmte Rendering-Effekte bei der 3D-Computergrafik implementieren"118
Tesselation: Zerlegung von Flächen in kleinere Flächen, um einen höheren Detailgrad zu erzielen119
XGen Description: Methode in Maya, um Informationen über Primitives zu kontrollieren und speichern120

108Wikipedia: Antialiasing (Computergrafik) (18.01.2019), URL: https://de.wikipedia.org/wiki/Antialiasing_(Computergrafik) (Stand: 05.02.2019).
109Polycount: Texture Baking (11.12.2018), URL: http://wiki.polycount.com/wiki/Texture_Baking (Stand: 05.02.2019).
110Polycount: Edge Padding (10.06.2017), URL: http://wiki.polycount.com/wiki/Edge_padding (Stand: 05.02.2019).
111Autodesk: Groomable Splines (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-44371401-F0F4-4089-B614-DD73E74CA7CA-htm.html (Stand: 05.02.2019).
112Autodesk: Grooming Brushes (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-09E7B162-3676-4B98-9E7A-B60BE0870619-htm.html (Stand: 05.02.2019).
113Autodesk: Guides (09.11.2014), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/GUID-7D22C4F0-F9AA-4F75-AD4A-18C556069415-htm.html (Stand: 05.02.2019).
114Autodesk: Joints and Bones (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-1B59334F-2605-44C3-B584-A55B239A2CBE-htm.html (Stand: 05.02.2019).
115Wikipedia: Level of Detail (06.04.2018), URL: https://de.wikipedia.org/wiki/Level_of_Detail (Stand: 05.02.2019).
116Pixologic: Polygroups, URL: http://docs.pixologic.com/user-guide/3d-modeling/modeling-basics/polygroups/ (Stand: 05.02.2019).
117Autodesk: Preview hair, fur, and instanced geometry (11.05.2016), URL: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-66822A1A-C6AD-47B4-8782-E058B5E6A528-htm.html (Stand: 05.02.2019).
118Wikipedia: Shader (28.11.2018), URL: https://de.wikipedia.org/wiki/Shader (Stand: 05.02.2019).
119Wikipedia: Tessellation-Shader (31.05.2018), URL: https://de.wikipedia.org/wiki/Tessellation-Shader (Stand: 05.02.2019).
120Autodesk: XGen Descriptions (13.08.2019) https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2018/ENU/Maya-CharEffEnvBuild/files/GUID-E90F6106-DF5B-4D8E-AE7B-65CBC2FDB13D-htm.html (Stand: 05.02.2019).

8. Eigenständigkeitserklärung

Ich erkläre, dass ich die vorliegende Bachelorarbeit selbst verfasst und dazu keine anderen als die angeführten Behelfe verwendet, die Autorenschaft eines Textes nicht angemaßt und wissenschaftliche Texte oder Daten nicht unbefugt verwertet habe.

Außerdem habe ich die Reinschrift der Bachelorarbeit einer Korrektur unterzogen und ein Belegexemplar verwahrt. Ferner gebe ich meine Einwilligung zur Veröffentlichung in der Universitätsbibliothek und online als Volltext.