Rendern von Gesichtern

Beim konventionellen Erstellen eines Gesichtes, hat man das Problem, daß die Animation künstlich und wie ein Zeichentrickfilm aussieht. Das menschliche Auge sieht auf jedem Körper eine detaillierte Struktur. Das bedeutet eine enorme Menge an Informationen über das Objekt. Für das Gesicht bedeutet das: Farbe, Reflexion, Pigmentation, ob die Haut rauh oder weich ist.

Texture-mapping

Eine Möglichkeit ist die Projektion eines Strukturbildes (Texture) auf ein 3D Gesichtsmodell (Texture-mapping). Damit bekommt man eine komplexe, detaillierte Struktur auf einen Körper, ohne jedes Detail auf einer Oberfläche extra berechnen zu müssen. Diese Art des Modellierens ist nicht neu [TexRefl], [SurTexMap], [RTManip]. Viele Anwendungen arbeiten schon seit langem damit.

Das Problem bei dieser Methode ist, daß man die Textur dem jeweiligen Körper anpassen muß, z.B. wenn der 3D-Körper nicht aus der Textur entstanden ist und somit die Dimensionen nicht passen.

Seit kurzem gibt es Versuche Texture-mapping einzusetzen, um die Qualität des Gesichtsrendern zu steigern. Dabei werden allerdings enorme Datenmengen und spezielle Hardware benötigt, um die Textur eines Gesichtes zu erfassen und schnell dem jeweiligen Gesichtsausdruck anzupassen. Damit wird versucht ein mögliches Echtzeit-Rendering umzusetzen.

Um die Daten gering zu halten, werden mit sogenannten Unterbildern nur bestimmte Teile des Gesichts, wie die Augen und der Mund, berechnet. Diese Bereiche verändern sich permanent in einem Gesicht.

In dem Multiebenenmodell ist das Rendern eine unabhängige Schicht, die von Änderungen in den anderen Schichten nicht beeinflußt wird. Die Textur eines Gesichtes kann z.B. mit Laserscannern erfaßt werden. Das 3D-Gesichtsmodell ist dabei nichts anderes als eine Gittermaske, die keine speziellen Merkmale wie Augen oder Lippen definiert.

Um die Textur auf das Gesicht zu projizieren, muß das Gesicht mit Grenzpunkte versehen werden.

Grenzpunkte (Keypoints) des Gesichts

Das Gesicht wird in mehrere Bereiche aufgeteilt. Diese bestehen aus Polygone. Typische Bereiche sind Front, linke Seite und rechte Seite des Gesichts. Die Punkte, die eine Grenze des jeweiligen Bereichs bestimmen, werden auch Grenzpunkte genannt. Diese sind die Bindeglieder zwischen mehreren Teilbereichen. Wenn ein Teil ausgewählt ist, werden in diesem Bereich Punkte bestimmt, die die Eigenschaften, wie z.B. Farbe, Position, usw. definieren. Anhand dieser Punkte wird die Projektion vorgenommen.

Zusammensetzen von Teilbildern

Ein einzelnes Bild eines Gesichts eignet sich nicht, um auf einen kompletten Kopf projiziert zu werden. Daher werden mehrere Bilder benötigt. Wenn alle Bilder möglichst die gleichen Lichtverhältnisse haben, können sie durch ineinander blenden kombiniert werden. Dazu werden die Bilder in kleine Mosaikteilchen zerlegt. An markanten Punkten werden die Teile zusammengesetzt. Durch Interpolation mehrerer Punkte zu einem Punkt, verschwinden die Schnittstellen und aus vielen Einzelteilen wird ein zweidimensionales 3D-Bild.

Veränderungen durch Emotionen

Die Emotion wird als Funktion von zwei Signalen definiert. Das eine Signal stellt die Intensität dar und das andere die Farbe.

Dabei entspricht   der Emotion über der Zeit,  einer Konstanten,   der Intensität und   der Farbe (Color).

Es ist auch wichtig den Grund für eine Gesichtsfarbenveränderung zu verstehen. So kann das Erblassen bei einer emotionalen Veränderung Angst oder das Erröten Verlegenheit bedeuten.

Es gibt zwei emotionale Zustände, bei denen die Veränderung der Farbe deutlich zu sehen ist: Erblassen und Erröten.

Dabei darf man nicht vergessen, daß bei Emotionen auch das Gesicht verzerrt wird, z.B. bei Panik weit aufgerissene Augen. Um diese emotionalen Zustände zu simulieren, wird normalerweise eine Maske verwendet, die den Gesichtsausdruck einheitlich verändert.

Ursachen für Bewegungen und Farben (Muskeln, Blutfluß)

Es gibt zwei Gründe für eine Veränderung der Gesichtsfarbe: körperlich und emotional, z.B. Bräune (körperlich) oder erröten (emotional). Um eine möglichst realistische Gesichtsanimation zu erzeugen, ist es wichtig, die Veränderung z.B. der Gesichtsfarbe und Bewegungen im Gesicht zu verstehen.

Wenn sich die Gesichtsfarbe ändert, ist stets der Blutfluß dafür verantwortlich, für Grimassen sind es die Muskelstränge. Es ist jetzt aber weder sinnvoll eine Karte über den Verlauf der Adern noch über den Verlauf der Muskelstränge unter der Haut zu erstellen. Es ist vielmehr der Grund für eine Veränderung im Gesicht und deren Verlauf wichtig. Damit werden dann große Bereiche und nicht jedes kleine Detail verändert.

Haare

Auch wenn die Haare nichts direkt mit dem Gesicht zu tun haben (außer der Bart), sind sie doch sehr wichtig für die Gesichtsanimation, da sie dem Kopf eine Form geben. Der Betrachter nimmt die Haare auch sehr detailliert wahr. Es bringt also nichts, ein perfektes, detailliertes Gesicht zu erstellen, die Haare aber nur als groben Umriß anzufügen. Damit würde wieder der ganze Effekt zunichte gemacht. Deshalb müssen, wie beim Gesicht die Haut, die Haare möglichst fein, mit natürlicher Oberfläche, gerendert werden.

Die Haare werden in zwei unabhängigen Phasen erstellt: Modellieren und Rendern.

Da z.B. die Bewegung des Haares im Wind berechnet werden muß, kann dies auch recht aufwendig werden. Die Animation von Haaren ist ein eigener unabhängiger Teil beim Erstellen von Avataren.