SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Dynamisches Hautmodell
für Muskelbasierte Gesichtsanimation

Zwischenergebnisse 27.10.2006



                                         www.muskelbasierte-gesichtsanimation.de
Präsentation: Pawel Kazakow
Betreuer: Prof. Helmut Weberpals

Technische Universität Hamburg-Harburg
Inhalt



  Neuer Titel und Thema der Arbeit

  Geplanter Inhalt der Arbeit

  Gewähltes Hautmodell
     Aktueller Stand der Implementierung
     Implementierung der Federverbindungen
     Berechnung des Offset-Polygons
        Direkte Offset-Methoden




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Neuer Titel der Arbeit



 Dynamisches Hautmodell für Muskelbasierte
 Gesichtsanimation

 Hauptthema der Arbeit ist die Untersuchung bereits vorhandener
 Hautmodelle und Umsetzung eines geeigneten Hautmodells für
 muskelbasierte Gesichtsanimation.

 Anschließend soll dieses Hautmodell durch Federmuskeln und
 Bewegung des Unterkiefers getestet werden.

 Nebenthema der Arbeit ist die Untersuchung verschiedener
 Muskelmodelle. Eines davon wird zum Testen des Hautmodells
 verwendet.


Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Inhalt der Arbeit - Vorbereitung


 Vergleich der Verfahren für Gesichtsanimation
  Direkte Manipulation der Hautgeometrie, Morphing
  Muskelbasierte Gesichtsanimation

 Untersuchung vorhandener Hautmodelle
  Hautmodell von Kähler
  Schichtenmodell

 Kurzbeschreibung von Maya
  Polygone, Federn, Partikelsystem, Dynamik
  Konzept von Maya API




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Inhalt der Arbeit - Implementierung


 Automatische Erzeugung der Haut aus vorhandener
   Hautgeometrie
  Berechnung und Bereinigung des Offset-Polygons
  Erzeugung der Federverbindungen innerhalb der Haut
  Verbindung der Haut mit Knochengeometrie
  Hilfsfunktionen für Extraktion der Knochengeometrie aus der
   Haut

 Muskelmodelle
  Untersuchung verschiedener Modelle
  Manuelle Umsetzung des Federmodells

 Testen der Haut
  Bewegung des Unterkiefers
  Einbau von Federmuskeln

Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Hautmodell


 Hautmodell von Kähler (verworfen)
  hält nicht die Form bei fehlendem Knochen
  sehr künstliches Modell (einschichtig, Spiegelknochen)

 Schichtenmodell
  formhaltend auch bei fehlendem Knochen
  Modell näher am Vorbild (Knochen, Haut mit eigenem Volumen)


                                                   Hautgeometrie (gegeben)

       Federverbindungen

                                                   Unterhaut (Offset-Polygon)
                                                   Knochen (Offset-Polygon)


Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Aktueller Stand der Arbeit


 Maya API
  Verschiebung von Polygonknoten – erledigt
  Erstellung von Federverbindungen – erledigt
  Erstellung eines SpringNode
  Erstellung einer Benutzeroberfläche

 Offset-Polygon
  Knotenverschiebung entlang der Durschnittsnormalen – erledigt
  Berechnung der optimalen Verschiebungsentfernung
  Bereinigung von Überlappungen
      Effiziente Suche der überkreuzten Flächen




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Federverbindungen – Implementierung in MEL


 Erstellung von Federverbindungen mit MEL
  schnell implementiert: Hinzufügen von Federn zum vorhandenen
    Federknoten (SpringNode) mit dem Befehl spring -add …
  Skript funktioniert nur bei kleinen Polygonen
  Skript versagt bei großen Polygonen:
     Hautgeometrie mit ca. 60 000 Punkten
     nach ca. 3 Minuten Rechenzeit läuft der Speicher voll (1,5 GB),
      der Skript wird abgebrochen
     Kleine Verbesserung durch Abschalten des
      Konstruktionsverlaufs constructionHistory -tgl off
        nach ca. 7 Minuten Rechenzeit läuft der Speicher wieder voll,
         der Skript wird abgebrochen, es werden nur ca. 20 000 von
         6 x 60 000 Federn erstellt




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Federverbindungen – Implementierung in C++ (Maya API)


  Erstellung von Federverbindungen in Maya nicht dokumentiert!

  Entscheidende Hinweise liefert die .ma-Datei: mit MEL-Befehl
   SetAttr werden Federverbindungen dem SpringNode nach und
   nach hinzugefügt

  Im Wesentlichen legen die Int32Array-Attribute point0 und
   point1 die Knotennummern fest, die die einzelnen Federn
   verbinden und objekt0 und objekt1 bestimmen zu welchem der
   verbundenen Objekte die Knotennummern gehören:

       createNode   transform -n "spring1";
       createNode   spring -n "springShape1" -p "spring1";
          ...
          setAttr   ".obo"   -type   "Int32Array"   4   0   0   0   0   ;   //   object1 (obo)
          setAttr   ".obz"   -type   "Int32Array"   4   1   1   1   1   ;   //   object0 (obz)
          setAttr   ".pto"   -type   "Int32Array"   4   1   2   3   3   ;   //   point1 (pto)
          setAttr   ".ptz"   -type   "Int32Array"   4   0   0   1   2   ;   //   point0 (ptz)
          ...

Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Federverbindungen – Implementierung in C++ (Maya API)


 MEL-Befehl
 setAttr ".object1" -type "Int32Array" 4 1 0 3 2;


 Äquivalenter C++ Code

 MFnDependencyNode fnSpring(...);
 MPlug plug_object1 = fnSpring.findPlug("object1", true, &Status);
                     MObject ref;
                     plug_object1.getValue(ref);
                     MFnIntArrayData fnIntArray(ref, &Status);
                     MIntArray int32array_object1(fnIntArray2.array());

     int32array_object1.setLength(4);

     int i = 0;
     int32array_object1[i++]   =   1;
                                               Der Plug-In erstellt innerhalb von ca.
     int32array_object1[i++]   =   0;
     int32array_object1[i++]   =   3;          einer Sekunde alle 6 x 60 000 Federn,
     int32array_object1[i++]   =   2;          ohne Speicherprobleme.


Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon - Methoden


 Offset-Berechnung ein komplexes mathematisches Problem!

 Indirekte Offset-Methode (IOM)
  keine Überschneidungen
  aufwändig in der Implementierung
  hohe Rechenzeit
  verändert die Topologie
    keine triviale Knotenzuordnung für Federverbindungen

 Direkte Methode (DOM)
  Überschneidungen müssen nachträglich entfernt werden
  Beibehaltung der Topologie
     Federverbindungen einfach: Kanteniterierung



Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – Direkte Offset-Methoden




 Direkter Offset in 2D: einfach
  In einem Punkt schneiden sich genau zwei Geraden
  Richtung: Summe der Normalenvektoren der Geraden
  Entfernung: Satz von Pythagoras
  Richtung und Entfernung ergeben eindeutige Position

 Direkter Offset in 3D: eine Herausforderung
  Verschiebungsrichtung und -Entfernung in 3D zu finden
  Nachträgliche Entfernung der Überschneidungen




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – Direkte Offset-Methoden




 Probleme bei einem direkten Offset in 3D:

  In einem Punkt können sich beliebig viele Ebenen* schneiden
   Beibehaltung der Parallelität nur bei maximal drei Ebenen

  Keine optimale Verschiebungsmethode bekannt




 * Ebenen werden durch Polygonflächen beschrieben




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – DOM: Schnittpunkt von drei Ebenen


  Aufwändige Berechnung: Gaußalgorithmus
  Beibehaltung der Parallelität

     In der triangulierten Hautgeometrie schneiden sich meistens
     sechs Ebenen in einem Punkt:




  Nur bei genau drei Ebenen anwendbar, deshalb ungeeignet!



Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – DOM: Vertexnormale


  Schnelle Berechnung der Verschiebungsrichtung
   aus dem Durchschnitt der Flächennormalen, kann außerdem in
   Maya API direkt ausgelesen werden:
              Durchschnittliche Flächennormale = Vertexnormale

  Parallelität wird i. d. R. nicht beibehalten

  Entfernung muss noch berechnet werden
     Verschiebung aller Knoten um die gleiche Entfernung kann
      zu Überschneidungen führen
     Methode für die Berechnung einer optimalen Entfernung
      noch nicht gefunden




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – Probleme der Vertexnormalen


 Die Durchschnittsnormale gibt oft nicht die optimale Richtung vor!
 Beispiel: eine Pyramide mit geneigter Spitze

     Flächennormalen                                       Durchschnittsnormalen




 Durchschnittsnormale in der Spitze: keine optimale
   Verschiebungsrichtung
         Verschiebung in diese Richtung führt zu Überschneidung

 Abhilfe: Berechnung einer gewichteten Durchschnittsnormalen


Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – Existenz der Optimalrichtung


 Ursache des Problems:
   ungleichmäßige Verteilung von Flächen um den Knoten

 Annahme:
   es gibt eine optimale Verschiebungsrichtung der
   Pyramidenspitze, sodass bei beliebiger positiver
   Verschiebungsentfernung keine Überschneidung zwischen
   Offset- und Original-Polygon entsteht.

 Bedingung (folgt aus Annahme):
   Ist die Verschiebungsrichtung optimal, so ist die Relation
   (größter / kleiner) zwischen zwei Verschiebungsentfernungen
   gleich der Relation zwischen allen Winkeln zwischen Original-
   und Offset-Ebenen (z. B. erhöht man die
   Verschiebungsentfernung, so werden alle Winkel zwischen
   Original- und Offset-Ebenen größer).


Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – Existenz der Optimalrichtung


 Beweisversuch:
   O. B. d. A. für Parallelverschiebung von sechs Ebenen um den
   gleichen Abstand entstehen zwei Schnittpunkte. Die Mitte der
   Geraden, die diese Schnittpunkte verbindet, müsste der neue
   optimale Offsetpunkt sein.

     Bei einem beliebigen Abstand für Parallelverschiebung müsste
     die Richtung der Geraden durch den Original- und Offset-Punkt
     stets konstant bleiben.
     Für einen gemeinsamen Schnittpunkt muss die Parallelität
     aufgegeben werden: alle Ebenen neigen sich zur Mitte der
     Verbindungsgerade zweier Schnittpunkte. Folglich werden alle
     Winkel zwischen Original- und Offsetebenen größer sein mit
     steigender Verschiebungsentfernung, was die Bedingung erfüllt.




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – DOM: Gewichtete Vertexnormale


     In der Optimalrichtung gesehen, würden die Flächennormalen
     etwa folgendes Bild ergeben:




     Die Durchschnittsnormale zeigt nicht in die Optimalrichtung
     (aus der Präsentationsfolie hinaus), sondern nach oben:




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – DOM: Gewichtete Vertexnormale


     Grund: die Flächennormalen sind nicht gleichmäßig um den
     Optimalvektor verteilt

     Ansatz für die Gewichtung: je mehr Flächennormalen pro
     Winkeleinheit, desto weniger wird ihre Richtung gewichtet:




     Problem: Optimalrichtung nicht vorher bekannt
     Lösungsidee: Gewichtung über die Ähnlichkeit (Projektion der
     Richtungen aufeinander) der Flächennormalenrichtungen
     wählen, aber wie genau?!


Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – DOM: Kantenrichtung


     Bisher wurde versucht den neuen Schnittpunkt ausschließlich aus
     Flächennormalen zu bestimmen.
     Die Kantenrichtungen wurden vernachlässigt. Eine Flächennormale
     ergibt sich aus dem Kreuzprodukt zweier Kantenvektoren und enthält
     die Durchschnittsrichtung der Kantenvektoren nicht:

                                                           Durchschnittsrichtung
                                                           der Kantenvektoren
            Flächennormale
                                                            Polygonfläche


             Kantenvektoren


     Kantenrichtung eines Punktes:
     Durchschnittliche Richtung aller Kanten, die sich in diesem Punkt
     schneiden


Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – DOM: Kantenrichtung


     Verschiebung in die Kantenrichtung erfüllt für die
     Pyramidenspitze die aus der Annahme gefolgerte Bedingung
     und ist damit die optimale Verschiebungsrichtung.




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – DOM: Kantenrichtung


     Diese möglicherweise optimale Verschiebungsrichtung erweist
     sich in der Praxis als problematisch.

     Vorzeichenproblem: Die Kantenrichtung zeigt nicht immer nach
     außen, sodass einige Punkte gegen die Offset-Richtung
     verschoben werden.

               Offset-Richtung




                  Weiß: Original-Polygon, grün: Offset-Polygon


Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – DOM: Kantenrichtung


     Lösung für das Vorzeichenproblem: im Normalfall zeigen alle
     Vertexnormalen nach Außen der Polygonfigur. Zeigt die
     Kantenrichtung nach innen, so wird sie negiert.

     Annahme: Die Kantenrichtung zeigt nach innen, wenn ihr
     Winkel zu der Vertexnormalen 90° überschreitet.




     Diese Korrektur produziert ein neues Problem an den Punkten,
     wo der Winkel in der Nähe von 90° liegt…

Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Offset-Polygon – DOM: Kantenrichtung


     Abhilfe: Einberechnung der Vertexnormalen in den Durchschnitt
     der Kantenrichtungen. Die Kantenrichtung wird vorher negiert,
     wenn der Winkel nicht zwischen 80° und 100° beträgt.




 Fazit Kantenrichtung:
  Gute Ergebnisse nur bei künstlichen Beispielpolygonen
  Trotz Verbesserungen, Ergebnis beim komplexen Kopf schlecht
  Für die Praxis nicht geeignet




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Vergleich: Kantennormale und Vertexnormale




 Vergleich:            Blau: Originalpolygon
                       Rot: Kantenrichtung
                       Gelb: Vertexnormale




Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
Vergleich: Kantennormale und Vertexnormale


      Kantenrichtung                          Original     Vertexnormale




 Offset-Entfernung: 2
 Bisher beste Ergebnisse in der Praxis: Vertexnormale

Pawel Kazakow
Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
www.muskelbasierte-gesichtsanimation.de

Weitere ähnliche Inhalte

Empfohlen

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 

Empfohlen (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

Zwischenergebnisse 27.10.2006 - Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation

  • 1. Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation Zwischenergebnisse 27.10.2006 www.muskelbasierte-gesichtsanimation.de Präsentation: Pawel Kazakow Betreuer: Prof. Helmut Weberpals Technische Universität Hamburg-Harburg
  • 2. Inhalt  Neuer Titel und Thema der Arbeit  Geplanter Inhalt der Arbeit  Gewähltes Hautmodell  Aktueller Stand der Implementierung  Implementierung der Federverbindungen  Berechnung des Offset-Polygons  Direkte Offset-Methoden Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 3. Neuer Titel der Arbeit Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation Hauptthema der Arbeit ist die Untersuchung bereits vorhandener Hautmodelle und Umsetzung eines geeigneten Hautmodells für muskelbasierte Gesichtsanimation. Anschließend soll dieses Hautmodell durch Federmuskeln und Bewegung des Unterkiefers getestet werden. Nebenthema der Arbeit ist die Untersuchung verschiedener Muskelmodelle. Eines davon wird zum Testen des Hautmodells verwendet. Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 4. Inhalt der Arbeit - Vorbereitung Vergleich der Verfahren für Gesichtsanimation  Direkte Manipulation der Hautgeometrie, Morphing  Muskelbasierte Gesichtsanimation Untersuchung vorhandener Hautmodelle  Hautmodell von Kähler  Schichtenmodell Kurzbeschreibung von Maya  Polygone, Federn, Partikelsystem, Dynamik  Konzept von Maya API Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 5. Inhalt der Arbeit - Implementierung Automatische Erzeugung der Haut aus vorhandener Hautgeometrie  Berechnung und Bereinigung des Offset-Polygons  Erzeugung der Federverbindungen innerhalb der Haut  Verbindung der Haut mit Knochengeometrie  Hilfsfunktionen für Extraktion der Knochengeometrie aus der Haut Muskelmodelle  Untersuchung verschiedener Modelle  Manuelle Umsetzung des Federmodells Testen der Haut  Bewegung des Unterkiefers  Einbau von Federmuskeln Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 6. Hautmodell Hautmodell von Kähler (verworfen)  hält nicht die Form bei fehlendem Knochen  sehr künstliches Modell (einschichtig, Spiegelknochen) Schichtenmodell  formhaltend auch bei fehlendem Knochen  Modell näher am Vorbild (Knochen, Haut mit eigenem Volumen) Hautgeometrie (gegeben) Federverbindungen Unterhaut (Offset-Polygon) Knochen (Offset-Polygon) Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 7. Aktueller Stand der Arbeit Maya API  Verschiebung von Polygonknoten – erledigt  Erstellung von Federverbindungen – erledigt  Erstellung eines SpringNode  Erstellung einer Benutzeroberfläche Offset-Polygon  Knotenverschiebung entlang der Durschnittsnormalen – erledigt  Berechnung der optimalen Verschiebungsentfernung  Bereinigung von Überlappungen  Effiziente Suche der überkreuzten Flächen Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 8. Federverbindungen – Implementierung in MEL Erstellung von Federverbindungen mit MEL  schnell implementiert: Hinzufügen von Federn zum vorhandenen Federknoten (SpringNode) mit dem Befehl spring -add …  Skript funktioniert nur bei kleinen Polygonen  Skript versagt bei großen Polygonen:  Hautgeometrie mit ca. 60 000 Punkten  nach ca. 3 Minuten Rechenzeit läuft der Speicher voll (1,5 GB), der Skript wird abgebrochen  Kleine Verbesserung durch Abschalten des Konstruktionsverlaufs constructionHistory -tgl off  nach ca. 7 Minuten Rechenzeit läuft der Speicher wieder voll, der Skript wird abgebrochen, es werden nur ca. 20 000 von 6 x 60 000 Federn erstellt Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 9. Federverbindungen – Implementierung in C++ (Maya API)  Erstellung von Federverbindungen in Maya nicht dokumentiert!  Entscheidende Hinweise liefert die .ma-Datei: mit MEL-Befehl SetAttr werden Federverbindungen dem SpringNode nach und nach hinzugefügt  Im Wesentlichen legen die Int32Array-Attribute point0 und point1 die Knotennummern fest, die die einzelnen Federn verbinden und objekt0 und objekt1 bestimmen zu welchem der verbundenen Objekte die Knotennummern gehören: createNode transform -n "spring1"; createNode spring -n "springShape1" -p "spring1"; ... setAttr ".obo" -type "Int32Array" 4 0 0 0 0 ; // object1 (obo) setAttr ".obz" -type "Int32Array" 4 1 1 1 1 ; // object0 (obz) setAttr ".pto" -type "Int32Array" 4 1 2 3 3 ; // point1 (pto) setAttr ".ptz" -type "Int32Array" 4 0 0 1 2 ; // point0 (ptz) ... Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 10. Federverbindungen – Implementierung in C++ (Maya API) MEL-Befehl setAttr ".object1" -type "Int32Array" 4 1 0 3 2; Äquivalenter C++ Code MFnDependencyNode fnSpring(...); MPlug plug_object1 = fnSpring.findPlug("object1", true, &Status); MObject ref; plug_object1.getValue(ref); MFnIntArrayData fnIntArray(ref, &Status); MIntArray int32array_object1(fnIntArray2.array()); int32array_object1.setLength(4); int i = 0; int32array_object1[i++] = 1; Der Plug-In erstellt innerhalb von ca. int32array_object1[i++] = 0; int32array_object1[i++] = 3; einer Sekunde alle 6 x 60 000 Federn, int32array_object1[i++] = 2; ohne Speicherprobleme. Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 11. Offset-Polygon - Methoden Offset-Berechnung ein komplexes mathematisches Problem! Indirekte Offset-Methode (IOM)  keine Überschneidungen  aufwändig in der Implementierung  hohe Rechenzeit  verändert die Topologie  keine triviale Knotenzuordnung für Federverbindungen Direkte Methode (DOM)  Überschneidungen müssen nachträglich entfernt werden  Beibehaltung der Topologie  Federverbindungen einfach: Kanteniterierung Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 12. Offset-Polygon – Direkte Offset-Methoden Direkter Offset in 2D: einfach  In einem Punkt schneiden sich genau zwei Geraden  Richtung: Summe der Normalenvektoren der Geraden  Entfernung: Satz von Pythagoras  Richtung und Entfernung ergeben eindeutige Position Direkter Offset in 3D: eine Herausforderung  Verschiebungsrichtung und -Entfernung in 3D zu finden  Nachträgliche Entfernung der Überschneidungen Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 13. Offset-Polygon – Direkte Offset-Methoden Probleme bei einem direkten Offset in 3D:  In einem Punkt können sich beliebig viele Ebenen* schneiden Beibehaltung der Parallelität nur bei maximal drei Ebenen  Keine optimale Verschiebungsmethode bekannt * Ebenen werden durch Polygonflächen beschrieben Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 14. Offset-Polygon – DOM: Schnittpunkt von drei Ebenen  Aufwändige Berechnung: Gaußalgorithmus  Beibehaltung der Parallelität In der triangulierten Hautgeometrie schneiden sich meistens sechs Ebenen in einem Punkt:  Nur bei genau drei Ebenen anwendbar, deshalb ungeeignet! Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 15. Offset-Polygon – DOM: Vertexnormale  Schnelle Berechnung der Verschiebungsrichtung aus dem Durchschnitt der Flächennormalen, kann außerdem in Maya API direkt ausgelesen werden: Durchschnittliche Flächennormale = Vertexnormale  Parallelität wird i. d. R. nicht beibehalten  Entfernung muss noch berechnet werden  Verschiebung aller Knoten um die gleiche Entfernung kann zu Überschneidungen führen  Methode für die Berechnung einer optimalen Entfernung noch nicht gefunden Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 16. Offset-Polygon – Probleme der Vertexnormalen Die Durchschnittsnormale gibt oft nicht die optimale Richtung vor! Beispiel: eine Pyramide mit geneigter Spitze Flächennormalen Durchschnittsnormalen Durchschnittsnormale in der Spitze: keine optimale Verschiebungsrichtung  Verschiebung in diese Richtung führt zu Überschneidung Abhilfe: Berechnung einer gewichteten Durchschnittsnormalen Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 17. Offset-Polygon – Existenz der Optimalrichtung Ursache des Problems: ungleichmäßige Verteilung von Flächen um den Knoten Annahme: es gibt eine optimale Verschiebungsrichtung der Pyramidenspitze, sodass bei beliebiger positiver Verschiebungsentfernung keine Überschneidung zwischen Offset- und Original-Polygon entsteht. Bedingung (folgt aus Annahme): Ist die Verschiebungsrichtung optimal, so ist die Relation (größter / kleiner) zwischen zwei Verschiebungsentfernungen gleich der Relation zwischen allen Winkeln zwischen Original- und Offset-Ebenen (z. B. erhöht man die Verschiebungsentfernung, so werden alle Winkel zwischen Original- und Offset-Ebenen größer). Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 18. Offset-Polygon – Existenz der Optimalrichtung Beweisversuch: O. B. d. A. für Parallelverschiebung von sechs Ebenen um den gleichen Abstand entstehen zwei Schnittpunkte. Die Mitte der Geraden, die diese Schnittpunkte verbindet, müsste der neue optimale Offsetpunkt sein. Bei einem beliebigen Abstand für Parallelverschiebung müsste die Richtung der Geraden durch den Original- und Offset-Punkt stets konstant bleiben. Für einen gemeinsamen Schnittpunkt muss die Parallelität aufgegeben werden: alle Ebenen neigen sich zur Mitte der Verbindungsgerade zweier Schnittpunkte. Folglich werden alle Winkel zwischen Original- und Offsetebenen größer sein mit steigender Verschiebungsentfernung, was die Bedingung erfüllt. Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 19. Offset-Polygon – DOM: Gewichtete Vertexnormale In der Optimalrichtung gesehen, würden die Flächennormalen etwa folgendes Bild ergeben: Die Durchschnittsnormale zeigt nicht in die Optimalrichtung (aus der Präsentationsfolie hinaus), sondern nach oben: Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 20. Offset-Polygon – DOM: Gewichtete Vertexnormale Grund: die Flächennormalen sind nicht gleichmäßig um den Optimalvektor verteilt Ansatz für die Gewichtung: je mehr Flächennormalen pro Winkeleinheit, desto weniger wird ihre Richtung gewichtet: Problem: Optimalrichtung nicht vorher bekannt Lösungsidee: Gewichtung über die Ähnlichkeit (Projektion der Richtungen aufeinander) der Flächennormalenrichtungen wählen, aber wie genau?! Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 21. Offset-Polygon – DOM: Kantenrichtung Bisher wurde versucht den neuen Schnittpunkt ausschließlich aus Flächennormalen zu bestimmen. Die Kantenrichtungen wurden vernachlässigt. Eine Flächennormale ergibt sich aus dem Kreuzprodukt zweier Kantenvektoren und enthält die Durchschnittsrichtung der Kantenvektoren nicht: Durchschnittsrichtung der Kantenvektoren Flächennormale Polygonfläche Kantenvektoren Kantenrichtung eines Punktes: Durchschnittliche Richtung aller Kanten, die sich in diesem Punkt schneiden Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 22. Offset-Polygon – DOM: Kantenrichtung Verschiebung in die Kantenrichtung erfüllt für die Pyramidenspitze die aus der Annahme gefolgerte Bedingung und ist damit die optimale Verschiebungsrichtung. Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 23. Offset-Polygon – DOM: Kantenrichtung Diese möglicherweise optimale Verschiebungsrichtung erweist sich in der Praxis als problematisch. Vorzeichenproblem: Die Kantenrichtung zeigt nicht immer nach außen, sodass einige Punkte gegen die Offset-Richtung verschoben werden. Offset-Richtung Weiß: Original-Polygon, grün: Offset-Polygon Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 24. Offset-Polygon – DOM: Kantenrichtung Lösung für das Vorzeichenproblem: im Normalfall zeigen alle Vertexnormalen nach Außen der Polygonfigur. Zeigt die Kantenrichtung nach innen, so wird sie negiert. Annahme: Die Kantenrichtung zeigt nach innen, wenn ihr Winkel zu der Vertexnormalen 90° überschreitet. Diese Korrektur produziert ein neues Problem an den Punkten, wo der Winkel in der Nähe von 90° liegt… Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 25. Offset-Polygon – DOM: Kantenrichtung Abhilfe: Einberechnung der Vertexnormalen in den Durchschnitt der Kantenrichtungen. Die Kantenrichtung wird vorher negiert, wenn der Winkel nicht zwischen 80° und 100° beträgt. Fazit Kantenrichtung:  Gute Ergebnisse nur bei künstlichen Beispielpolygonen  Trotz Verbesserungen, Ergebnis beim komplexen Kopf schlecht  Für die Praxis nicht geeignet Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 26. Vergleich: Kantennormale und Vertexnormale Vergleich: Blau: Originalpolygon Rot: Kantenrichtung Gelb: Vertexnormale Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006
  • 27. Vergleich: Kantennormale und Vertexnormale Kantenrichtung Original Vertexnormale Offset-Entfernung: 2 Bisher beste Ergebnisse in der Praxis: Vertexnormale Pawel Kazakow Dynamisches Hautmodell - Zwischenergebnisse Oktober 2006