Hinweis: Wäre JavaScript aktiviert würden die Bilder in den Galerien als Popup erscheinen und zusätzliche Informationen würden eingeblendet....
Hinweis: Wäre JavaScript aktiviert würden die Bilder in den Galerien als Popup erscheinen und zusätzliche Informationen würden eingeblendet....
Wait...

Einleitung
Nachdem meine eigenen Versuche mit eigenen Programmen unter Verwendung von Bezier- und/oder B-Spline-Flächen ein Gesicht zu modellieren nicht sonderlich weit gediehen sind, was u.a. daran lag, dass es doch etwas zu aufwändig war einen "fluffig" bedienbaren Editor zu bauen, habe ich mich mal den freien Programmen auf diesem Gebiet zugewendet.

Meine Erfahrungen und natürlich auch die ersten Ergebnisse werde ich in den folgenden Abschnitten darstellen.
Inhalt
Sculptris
Sculptris der Fa. Pixologic ist ein sehr nettes kleines, fast vom Fleck weg sehr gut und intuitiv bedienbares (noch?) freies Programm.
Einschränkungen sind:
  • Stürzt öfter mal ab. Insbesondere mit Objekten die aus sehr vielen Dreiecken bestehen gibt es Probleme. Ich komme z.Zt. nicht über 1.3 Mio "Tris" hinaus (die aktuelle Anzahl ist im Programm unten links abzulesen). Abhilfe besteht z.B. darin den Detaillierungs-Brush invertiert (+Alt) anzuwenden um die Anzahl der Tris in Bereichen zu Reduzieren wo kein allzu hoher Detailierungsgrad benötigt wird.
  • Wenn man mehrere Objekte hat, insbesondere wenn diese sich überschneiden, dann bemalt man diese besser einzeln, indem man alle anderen Objekte weglöscht, bevor man in den Paint-Modus wechselt (dann natürlich unter einem anderen Dateinamen abspeichern!)
  • Die Größe der Textur für das UV-Mapping ist stark beschränkt. Bei sehr großen Objekten, die aber zumindest teilweise (Gesichter) hohe Detaillierung erfordern wird man Probleme haben. Dann trennt man das Objekt besser auf (Körper / Kopf). Leider ist das nachträglich in Sculptris nicht gut möglich.
  • Man kommt vom Paint-Mode nicht zurück in den Sculpt-Mode! Einzige Möglichkeit ist das Objekt neu zu laden und die Frage "Go to Paint-Mode?" zu verneinen. Man verliert aber dabei alles was man im Paint-Mode bereits gemacht hat...
  • Texturen die man z.B. mit einem Brush im Paint-Modus auf das Objekt legt lassen sich nicht drehen. Man kann entweder versuchen die Ansicht entsprechend zu drehen (was aber nur eingeschränkt möglich ist) oder mehrere gedrehte Versionen einer Textur erzeugen (z.B. mit Gimp). Im Sculpt-Modus könnte man stattdessen auch noch das ganze Objekt drehen, was man aber auch nicht unbedingt will und recht unhandlich ist.
class="bsplineImage" Trotzdem ist es für den Einstieg IMO sehr gut geeignet, weil man schnell ein paar nette Ergebnisse erzielen kann....
Sculptris-Tastenkombinationen
Hier noch ein paar wenige Shortcuts die man wirklich gut gebrauchen kann:
Key
Funktion
Mode
Left Mouse-Button aktuellen Brush anwenden Sculpt-Mode Paint-Mode
Alt + Left Mouse-Button Invertiert den aktuellen Brush Sculpt-Mode Paint-Mode
Right Mouse-Button Drehen Sculpt-Mode Paint-Mode
Alt + Right Mouse-Button Verschieben Sculpt-Mode Paint-Mode
h + Objekt anklicken Hide Object Sculpt-Mode Paint-Mode
Ctrl+h Unhide all Sculpt-Mode Paint-Mode
Ctrl+i invert Selection Sculpt-Mode Paint-Mode
Space Brush-Attribute einstellen Sculpt-Mode Paint-Mode
c + Objekt anklicken Color-Picker Paint-Modus
Ctrl+e Export als *.obj-Datei, die in Blender importiert werden kann (Achtung: Texture- und Normal-Maps müssen gesondert exportiert und in Blender importiert werden! Dazu im Paint-Mode die "Show advanced tools" aktivieren) Sculpt-Mode Paint-Mode
Blender
Blender ist ein bisschen das Gegenteil von Sculptris: sehr mächtig, aber dadurch auch sehr komplex in der Bedienung, zumal die Bedienlogik ausgesprochen ungewohnt ist.
Blender-Features
Features, die ich besonders genutzt habe (es gibt sehr viel mehr):
  • Objekte, die aus Sculptris als *.obj-Dateien exportiert wurden können importiert werden (Texturen und Normal-Maps müssen aber getrennt importiert und als Texturen zugewiesen werden - dafür unbedingt im Textur-Tab unter Mapping - Cooridnates auf "UV" umstellen und für Normal-Maps außerdem Influence "Normal" statt "Color" auswählen, sowie unter "Image Sampling" "Normal Map" anhakern, siehe auch unten)
  • Haare (Fell, Gras, etc) können mit dem Partikelsystem erstellt werden
  • Wasser (Flüssigkeiten), Rauch und Flammen, Textilien und andere weiche Objekte können simuliert werden
Einschränkungen
Einschränkungen über die ich gestolpert bin:
  • Auch Blender stürzt oft und gerne ab. Bei mir waren es zunächst aber wohl meist Probleme mit zu wenig Speicher, da ich versehentlich die 32-Bit-Version installiert hatte, was den allocierbaren Speicher je Programm für komplexe Szenarien (zu) stark einschränkt. Zu hektisches Klicken, insbesondere in Simulationen bringt aber auch die 64-Bit-Version noch diverse Male zum Absturz...
  • Der Sculpting-Mode kommt IMO nicht an Sculptris heran, obwohl in Blender inzwischen auch ein dynamisches Verfeinern der Struktur möglich ist, denn die Performance ist bei komplexen Meshes einfach nicht so richtig prickelnd.
  • Vom Simulieren von Textilien, die sich tatsächlich angezogen an einem Körper befinden sollen, bin ich nach einigen Versuchen, wieder etwas abgekommen. Lieber korrigiere ich die Kleidungsstücke "händisch" etwas nach - allerdings will ich momentan auch keine Animationen machen, sondern nur "Still-Images" rendern.
  • Haare, Fell, Gras, etc. die mit dem neueren "Strand render" für Partikelsysteme erstellt wurden werfen im Blender-Internal-Renderer keine Schatten (in Cycles aber schon, s.u.)! Abgesehen davon sehen Strand-gerenderte Haare aber realistischer aus (insbesondere bei hellen Haarfarben).

    • Deaktiviert man die Strand-Render-Option wird man evtl. mit deutlich weniger Partikeln (inkl. Children) arbeiten müssen, um den Rechner nicht zu überfordern. Außerdem sollte man dann eine Blend-Textur über die Haare legen, die das Ende jedes Haars transparent auslaufen lässt (dazu unbedingt Transparency im Material aktivieren und im Textur-Tab unter Mapping - Coordinates auf "Strand/Particle" umstellen, unter Influence "Alpha" (statt "Color") aktivieren, DVar auf "0" und Influence auf Alpha=-1 setzen). Ich habe außerdem mit derselben Blend-Textur auch den Anfang der Haare leicht transparent gemacht, was IMO besser aussieht (jedenfalls dort wo man den Haaransatz sehen kann).

    • Man kann aber die eigentlichen Haare mit der Option "Strand Render" rendern und einen zweiten identischen Satz Haare erzeugen, die aber nur die Schatten werfen - d.h. für diese Haar-Kopie nicht die Option "Strand Render" aktivieren. Damit das Partikelsystem beim Kopieren eines Objekts mitkopiert und nicht einfach auf dasselbe Partikelsystem referenziert wird muss man unter "User Preferences" (Menü "File") im Tab "Editing" die Option "Duplicate Data" "Particle" anhakern. Für das, so kopierte, Objekt muss man dann im Material-Tab die Optionen "Cast only" und "Shadows only" aktivieren, damit es wirklich nur Schatten erzeugt, ansonsten aber unsichtbar bleibt. Lästig ist nur, dass man die Aktion jedesmal wiederholen muss, wenn man die Frisur ändert und natürlich der erhöhte Ressourcen- und Rechenbedarf (man kann evtl. noch die Anzahl der Kinder im Partikel-System der "Schatten-Haare" etwas verringern).

    • Auch ganz hypsch, aber noch viel ressourcenfressender sieht es aus, wenn man wieder das Nicht-Strand-Render-Haar-Objekt kopiert aber diesmal beiden nur unterschiedliche Materialen zuweist: einmal etwas dickere Strands, die leicht transparent sind (z.B. Alpha 0.75) und dem anderen ein ansonsten identisches Material mit dünneren nicht transparenten Strands. Auch hier muss man daran denken die Kopie nach jedem umfrisieren neu zu erzeugen und das Material entsprechend zu ändern.

      Ohne
                            Strand-RenderOhne Strand-Render-Option: Schatten werden geworfen, Haare wirken nicht wirklich rund (Bilder jeweils anklicken für volle Auflösung)

      Ohne Strand-Render
                            (2x)
      Zwei identische Haar-Partikel-Systeme, beide ohne die Strand-Render-Option, aber mit unterschiedlichen Materialen (einmal dickere leicht transparente Strands einmal dünne nicht transparente Strands)
      Strand-Render
                            (keine Schatten)
      Mit Strand-Render-Option: Kein Schattenwurf der Haare; Haare wirken dafür runder, aber auch heller und dünner bei ansonsten identischen Einstellungen zu den vorigen Beispielen

      Strand-Render (mit
                            Schatten)
      Zwei fast identische Haar-Partikel-Systeme einmal mit Strand-Render-Option und einmal ohne und mit einem Material, das nur Schatten wirft, ansonsten aber unsichtbar bleibt (sogar die Schatten auf den Haaren selbst funktionieren!)
Cycles
Der neue Cycles-Renderer, der den alten, Blender-Internal genannten Renderer, wohl irgendwann ganz ersetzen wird, ist sehr interessant, weil er die Licht-Verteilung realistischer berechnet. Cycles kann inzwischen auch Haare/Fell (Blender 2.66) und im allerneuesten Latest Build (03.04.2013) auch Subsurface Scattering darstellen (offiziell erwartet für Version 2.67). Wie das Subsurface Scattering im Vergleich zu den bisherigen Workarounds abschneidet konnte ich noch nicht wirklich testen. Ich zeige hier noch zwei Workarounds - evtl. kann man diese Ansätze ja zukünftig mit dem Subsurface Scattering Node kombinieren... Haare werfen in Cycles übrigens immer Schatten, egal, ob die Option "Strand Render" aktiviert ist oder nicht.

CyclesCycles: Haare werfen immer Schatten, mit oder ohne Strand-Render-Option, ist aber noch recht langsam (4'05h für dieses Bild in 1080x1200 mit 1500 Samples)

bezüglich des, für Haut praktisch unverzichtbaren, Subsurface-Scatterings gibt es einen ganz interessanten Workaround, bei dem man andere Shader (z.B. Diffuse, Glossy) über einen Mix-Shader mit einem Translucent-Shader kombiniert. Dadurch kann ein Teil des Lichts (einstellbar über den Mix-Shader) die Oberfläche durchdringen. Zusätzlich wird eine Art Skelett erzeugt, welches dieses Licht unter der Oberfläche wieder nach außen reflektiert. Das Skelett hat dann eine nicht durchscheinende Oberfläche (Diffuse Shader) und ist mehr oder weniger einfach eine leicht verkleinerte Kopie des äußeren Meshes (zum Verkleinern ist die Funktion "Scale along Normals" im Edit-Mode sehr hilfreich, die mit "Alt+S" aktiviert wird). Bestimmte Teile, wie Ohren, unterer Teil der Nase, usw., die tiefer durchscheinen sollen kann man im Skelett-Objekt komplett wegnehmen (aber ohne Löcher zu hinterlassen!), bzw. im Sculpting-Mode einfach wegglätten. Der Effekt ist sehr interessant, insbesondere für durchscheinendes Licht von hinten - das fehlende Subsurface Scattering ersetzt es aber eigentlich nicht wirklich.
 
Cycles Subsurface Scattering
Links: gerendert mit Cycles (gut zu sehen die durchscheinenden Ohren);
Rechts: Kopf und "Schädel" (Kopie, der richtige "Schädel" ist natürlich im Kopf)
Unten: Einstellungen via Nodes für den Kopf

Ich habe diesen Ansatz noch etwas abgewandelt und benutze hauptsächlich einen Subdermal-Layer, der über Displace-Modifier aus dem Haut-Oberflächen-Objekt erzeugt wird. Interessant ist, dass dieses Subdermal-Objekt ein linked Duplicate des Oberflächen-Objekts sein kann. Damit teilen sich Skin-Oberfläche und Subdermal-Objekt immer dasselbe Mesh! Dieser Ansatz ist unten dargestellt und kann zusätzlich mit einem weiteren, noch tiefer liegenden Layer, wie oben beschrieben kombiniert werden. Nachteilig ist, dass man in Cycles sehr viele Samples braucht, um das Rauschen weitgehend zu eliminieren (d.h. Rendern dauert recht lange). Zumal der hier gezeigte Ansatz nicht zusammen mit der Option "No Caustics" zur Rauschreduktion funktioniert.

Skin-Oberfläche und
                        Subdermal-Layer
Skin und Subdermal-Layer: Der Subdermal-Layer (rechts, rot) ist ein Linked-Duplicate des Skin-Mesh-Objekts (links in Hautfarbe) - d.h. das Mesh ist immer identisch! Die grün umrandeten Modifier gehören zum originalen Skin-Mesh, die beiden rot umrandeten Displace-Modifier sind nur beim Subdermal-Mesh-Duplikat zusätzlich hinzugefügt worden: Displacement nach einer Textur-Image und (weniger wichtig) Displacement nach einer Noise-Textur (das Textur-Image für den ersten Displace-Modifier ist übrigens dasselbe das hier auch auf dem Skin-Oberflächen-Objekt zu sehen ist). Probleme macht, dass an einigen Stellen der Subdermal-Layer die Hautoberfläche durchdringen kann (hier am Oberen Augenlid zu sehen)
Cycles Skin-Shader
                      (Nodes)Skin-Nodes: Hauptsächlich Translucent mit Umrechnung der Ray-Length in Hautton (je länger der Strahl desto röter). Dazu etwas Diffuse- und ein Glossy-Shader, wobei die "Glossyness" einzelner Bereiche über eine weitere Textur gesteuert wird.

Cycles Subdermal-Shader
                      (Nodes)
Subdermal-Nodes: Eigentlich überwiegend ein einfacher Glossy-Shader mit ein bisschen zusätzlichem Rauschen (Glossy brachte bessere Ergebnisse als ein Diffuse-Shader). Damit der Translucent-Shader ("Flesh") vernünftig arbeitet bräuchte man eine weitere noch tiefere und wirklich lichtundurchlässige Schicht. Dann kann man damit z.B. im Gegenlicht durchscheinende Ohren realisieren. Leider muss diese dritte Schicht wohl ein eigenes Mesh haben und kann kein linked Duplicate des Original-Meshs sein...

Mit dem neuen Subsurface-Scattering-Shader kann man es sich nun einfacher machen. Hier eine erste Abwandlung des oben gezeigten Setups unter Verwendung des Subsurface Scattering Shaders. Der Subdermal-Layer entfällt damit. Ähnlich dem oben gezeigten Ansatz wird die Eindringtiefe des Lichts in die Haut anhand der Farbe (Helligkeit) der Hauttextur an der jeweiligen Stelle variiert.

Cycles Skin-Shader using
                      SSS-NodeSkin-Nodes: Glossy und der neue Subsurface-Sacttering-Shader werden genutzt. Ähnlich dem Subdermal-Layer-Ansatz hängt die Tiefe (Scale) des Subsurface-Sactterings bei mir von der Farbe der Hauttextur an der jeweiligen Stelle ab (dunkler = tiefer). Der "alternative" Diffuse Shader wird nicht benutzt (Gewicht = 0 im Mix-Shader)

Vergleich
                      Subdermal-Layer vs. Subsurface Scattering
Vergleich Subdermal-Layer vs Subsurface Scattering: Irgendwas stimmt mit dem Glanz noch nicht, ansonsten ist natürlich insbesondere gut, dass die Hauttextur vom SSS-Shader direkt benutzt und wiedergegeben wird. Auch entfallen die kleinen Fehler, wo der Subdermal-Layer die Hautoberfläche durchdringt (obere Augenlider)

Die (mich) ohnehin nicht überzeugenden Workarounds für Haare/Fell entfallen seit man in Cycles auch regulär Haare/Fell rendern kann: z.B. konnte man das Haar in Curves umwandeln (apply Modifier) und diese dann im Edit-Mode zu Meshes "extruden" (im Edit-Mode alle Curves selektieren mit "A", dann "E" für extrude tippen und leicht in eine Richtung ziehen). Texturen auf den Haaren bekam man damit aber nicht konvertiert, auch variiert die dicke der Haare dann je nach ihrer Richtung, nimmt aber nicht zur Spitze hin ab...
Tipps und Tricks

Besondere Komplikationen, bzw. meine Erfahrungen damit:

  • Um eine Normal-Map (z.B. aus Sculptris importiert) auf ein Mesh zu legen, muss dieses zunächst eine UV-Map besitzen (ist bei aus Sculptris importierten Objekten bereits der Fall, sofern diese erst im Paint-Modus exportiert wurden).
    Wenn noch kein UV-Mapping erfolgt ist kann das im Edit-Mode angelegt werden (siehe Optionen, ggf. mit "T" öffnen). Für ein klassisches UV-Mapping müssen zuvor Seams (Trennkanten) definiert werden. Alternativ kann man aber auch ein "Smart UV-Mapping" ohne Seams erzeugen lassen - nur hat man da eben keine Kontrolle über die Trennstellen. Dann muss eine Textur vom Typ "Image or Movie" angelegt werden. Hier müssen nun unter "Mapping" die "Coordinates" auf "UV" (statt "Generated") die "Influence" statt "Color" auf "Normals" gelegt werden und außerdem (ganz wichtig, aber selten beschrieben) unter "Image Sampling" "Normal Map" angehakert werden (sonst wird die Textur als Bump-Map interpretiert, was manchmal nicht oder erst spät auffällt, einen aber in den Wahnsinn treibt, wenn man versucht ein ge-re-meshtes Low-Poly-Objekt mit einer Normal-Map, die von einem entsprechenden High-Poly-Objekt gebacken wurde zu texturieren)

  • Um eine Normal-Map von einem High-Poly-Objekt zu bekommen, die man über ein entsprechendes Low-Poly-Objekt legt müssen sich diese zunächst an derselben Position befinden (ggf. aber in verschiedenen Layern). Außerdem müssen beide Objekte sichtbar und renderbar sein! Für das Low-Poly-Objekt muss ein UV-Mapping existieren (s.o.) und ein Image muss als UV-Map zugeordnet sein. Dazu im Edit-Mode alles selektieren ("A") im zweiten Teilfenster "UV/Image Editor" (ganz links unten in der Ecke auswählen) anzeigen und ein Image auswählen oder ein neues erzeugen. Auf diesem Image sollte nun das UV-Mapping dargstellt sein.
    Nun im Object-Mode das High-Poly-Objekt mit der rechten Maustaste selektieren, dann mit Shift + rechter Maustaste auch das Low-Poly-Objekt selektieren (in dieser Reihenfolge!). Dann im Scene-Tab (kleines Kamera-Icon) ganz unten unter "Bake" den Bake-Mode "Normals" aktivieren und "Selekted to Active" anhakern, bevor mit Bake die Normal-Map erstellt wird. Bei Problemen, ggf. das Material des Low-Poly-Objekts vor dem Baken nochmals entfernen.

  • Sehr spannend ist die Möglichkeit über Array- und Curve-Modifiers z.B. einen Reißverschluss zu erzeugen. Dazu existieren gute Anleitungen im Netz (insbesondere für Ketten - Stichwort "Chain").
    Hier daher nur ein Hinweis dazu: Das Objekt und die Curve niemals rotieren, da man sonst niemals mehr vernünftig Änderungen am Objekt im Edit-Mode vornehmen kann! Daher Objekt+Curve nur ungefähr an die gewünschte Position schieben und dann die Curve-Punkte im Edit-Mode an die gewünschten Positionen setzen, bzw. neue Curve-Punkte erzeugen, indem man an den Endpunkten Extrude ("E") drückt, oder mit "W" "Subdivide" bestehende Segmente weiter unterteilt.
    Beim Ansatz über einen Array- und einen Curve-Modifier verformen sich allerdings die Objekte, also hier z.B. die einzelnen Zähne des Reißverschlusses. Das kann unangenehm auffallen. Für das Textilband auf dem die Zähne sitzen ist aber genau das extrem praktisch. Für die Zähne gibt es aber noch den alternativen Ansatz über "DupliFrames". In den Object-Einstellungen des zu vervielfältigenden Objekts stellt man unter Duplication "Frames" statt "None" ein und deaktiviert "Speed". Unter den Object-Data-Einstellungen des Curve-Objekts (Nurbs-Path) aktiviert man "Path Animation", stellt die Anzahl der Vervielfältigungen unter "Frames" ein und aktiviert "Follow". Nun macht man das zu vervielfältigende Objekt zum Kind der Curve (erst Rechtsklick auf das Objekt, dann mit Shift auch auf die Curve und dann Ctrl+P) und zieht das Objekt auf den Anfang der Curve.
    • Vorteil: die Objekte verformen sich nicht.
    • Nachteil 1: anders als beim Array-Modifier kann man den Abstand zwischen den Objekten nicht direkt einstellen (es wird einfach die Curve gefüllt)
    • Nachteil 2: nur anwendbar wenn man nicht animieren will bzw. das Objekt nicht in die Animation involviert ist.

      Zipper
      Reißverschluss mit Array- und Curve-Modifiers (beliebig verlängerbar)
      Zähne und das Textilband sind jeweils einzelne Objekte, die sich aber
      an derselben Curve ausrichten

  • Wenn man ein Objekt, insbesondere Kleidungsstüke, wie z.B. ein T-Shirt erzeugt, sollte man erst ein Mesh aus relativ wenigen Flächen im Edit-Mode anlegen. Dieses sollte auch symmetrisch sein - dazu am besten einen Mirror-Modifier benutzen. Wenn man damit fertig ist wendet man zunächst den ggf. benutzten Mirror-Modifier an, da sonst dieselben Teile der Texturen spiegelverkehrt auf beide Seiten gelegt würden. Jetzt erzeugt man das UV-Mapping (s.o.) und zuppelt es ggf. händisch noch etwas zurecht (und fasst das ab nun am besten nicht mehr an).
    Dieses Objekt-Template (z-B. T-Shirt) kann man nun relativ leicht (da es nur aus relativ wenigen Punkte besteht) im Edit-Mode in eine gewünschte Grundform bringen (d.h. an einen bestimmten Körper/eine Körperhaltung anpassen). Den Rest macht man indem man zunächst einen Multiresolution-Modifier zuweist und dann die Form mit zunehmendem Detaillierungsgrad sculpted bis es passt. Außerdem benutze ich noch gerne einen Solidify-Modifier, damit der Stoff eine bestimmte (wenn auch geringe) Dicke hat, sowie hinten drauf noch einen Subdivision-Modifier um die vom Solidify-Modifier erzeugten Stoff-Kanten etwas abzurunden. Bei keinem dieser Modifier benutzt man jemals "Apply Modifier", sonst wird man nie wieder vernünftig Änderungen vornehmen können! Anmerkung: Der Solidify-Modifier ist etwas problematisch wenn der Stoff teiltransparent sein soll

  • Um in Blender-Internal Alpha-Texturen zu verwenden, die transparente Bereiche des Meshes bestimmen muss man mehrere Dinge beachten, damit dann das Mesh entsprechend des Alpha-Werts der Textur transparent wird:
    • In den Material-Settings müssen Transparencies aktiviert sein
    • In den Textur-Settings setzt man Influences auf Alpha und den Wert dafür auf -1 (nicht 1) außerdem setzt man dort auch DVar auf 0 (Default ist 1)

  • Haare: Zunächst muss man sich für eine Anzahl Segmente entscheiden. Damit man diese im Particle Mode auch entsprechend frisieren kann muss man in den dortigen Optionen die "Path Steps" hochsetzen. Damit das dann auch "rund" gerendert wird muss im Particle-System-Tab unter "Render" die Anzahl "Steps" ebenfalls angepasst werden.
    Man kann die Anzahl der Haare verringern, indem man nur in den Rand- und Scheitelzonen viele (Kind-)Haare generiert. Das lässt sich über eine Vertex-Group für die Haardichte (Density) steuern.
    Bei Frisuren mit Scheitel ist es besser getrennte Partikelsystem für die Seiten links bzw. rechts des Scheitels anzulegen (bei einem Pony kommt noch ein weiteres Partikelsystem in Betracht). Andernfalls werden einige Kind-Haare zwischen linker und rechter Seite interpoliert und liegen damit an Stellen wo sie nicht sein sollen (gehen z.B. mitten durch den Kopf)
    Hair-Density-Weights
                    (Vertex-Group)
    Vertex-Group und Partikel-System für die Haare links
    des Scheitels - Randzonen mit höherer Haardichte (rot)
    in der Mitte kann man etwas Haare "sparen" (türkis)

Pures Blender-Modell
Momentan versuche ich eine Figur komplett in Blender zu erstellen. Mein Ansatz dabei: Verwendung eines Base-Meshs mit möglichst wenigen Knoten. Allerdings tauchen bei diesem Ansatz diverse Probleme auf, die ich nun mitsamt meiner Lösungsansätze beschreibe.
  • Das Base-Mesh wird durch einen Multires-Modifier weiter unterteilt. Darauf im Sculpt-Mode alle Details sculpten - bis hin zu Hautporen (dafür im Multires-Modifier entsprechend oft  auf Subdivide klicken).
  • Gerendert wird das Objekt aber in einem geringeren Subdivsion-Level. Für die feinen Details wird vorher eine Normal-Map erzeugt (Baken, s.o.). Eine solche Normal-Map kann man recht schnell erstellen, indem man eine temporäre Kopie des Objekts anlegt, dieser Kopie die zu erstellende Normal-Map als Textur zuweist und dann für das Baken den Render-Subdivision-Level des Multires-Modifiers des Original-Objekts auf den maximalen Wert setzt. Die erzeugte Normal-Map dann schnell abspeichern, das kopierte Objekt kann man nun schon wieder löschen und die Normal-Map dann für das Original-Objekt verwenden (nicht vergessen den Subdivision-Level wieder runterzusetzen) . Baken geht übrigens bisher nur in Blender-Internal (BI), wenn man also Cycles verwendet muss man dafür auf BI umstellen. Die erzeugten Normal-Maps sind aber mit Cycles kompatibel...
  • Das erste Problem liegt im Auftauchen unschöner Effekte in einigen Zonen beim Verformen eines Körpers durch eine Armature. Hier kann man mit dem Smooth-Modifier ein bisschen nachhelfen. Dafür ist es gut, dass wir die ganz feinen Details im vorigen Schritt schon in eine Normal-Map ausgelagert haben. Ich benutze zwei Smooth-Modifier: einen nach dem Armature- aber noch vor dem Multires-Modifier und einen nach dem Multires-Modifier. Beide arbeiten, gesteuert durch eine (dieselbe) Vertex-Group nur auf den Zonen, die anfällig für solche Artefakte sind (s. Grafiken unten).

    Smooth-Modifiers
    Smooth-Modifiers zum Ausgleichen von Artefakten beim "Verbiegen" durch Armatures

    Smooth-Modifiers
    Vergleich ohne (links) und mit Smooth-Modifiers (rechts) - die Artefakte unter den Achseln werden deutlich gemildert - wenn auch hier leider keine Wunder passieren :-)

  • Ein weiteres Problem, dass mir die Verwendung einer Armature immer wieder macht, ist dass manche Bereiche des zu verformenden Körpers dabei schrumpfen bzw. abflachen. Das mag zum Teil an einem sch...lechten "Edge-Flow" liegen und auch einer suboptimalen Armature. Allerdings möchte ich sowohl Base-Mesh als auch Armature nicht übermäßig verkomplizieren. Trotzdem habe ich einen Workaround gefunden, der relativ simpel ist und ganz gute Ergebnisse bringt:
  • Ich erzeuge eine Kopie (echtes Duplicate, kein linked Duplicate) des Original-Objekts (mit allen Modifiern, insbesondere dem Armature- und dem Multires-Modifier, sowie auch den zuvor besprochenen Smooth-Modifiern).
  • Dieser Kopie füge ich noch einen Smooth-Modifier hinzu und bringe diesen Smooth-Modifier in der Liste aller Modifier über den Armature-Modifier. Bei ausreichedem Smooth-Factor / Repeats bewirkt dieser Modifier, dass das Objekt deutlich schrumpft - insbesondere an den Armen, Schultern und Beinen. Ein ausreichender Schrumpf-Effekt tritt aber nur ein, wenn das Base-Mesh wirklich wenige Vertices hat! Fein strukturierte und von der Armature ohnehin nicht deformierte Bereiche - wie insbesondere den Kopf - nehme ich davon aus, indem ich eine Vertex-Group benutze, die ich diesem Smooth-Modifier mitgebe.
  • Nun selektiere ich erst das Original, dann die Kopie und klicke dann im Multires-Modifier der Kopie auf "Reshape", wodurch die Form des Originals wieder angenommen wird. Das war's! Anmerkung: Beide Objekte müssen dafür sichtbar sein - d.h. insbesondere in selektierten Layern liegen.
  • Ganz wichtig ist, dass die Armature dabei in der Rest-Pose ist, sonst kann es zu Artefakten kommen, die man nur beseitigt bekommt indem man den Multires-Modifier komplett entfernt, einen neuen anlegt und dann mit Reshape die Form wiederherstellt!
Der Trick liegt eigentlich im Schrumpfen bestimmter Bereiche, was sich natürlich auch anders als mit einem Smooth-Modifier erreichen ließe - z.B. indem man das Mesh von Hand entsprechend verändert. Kurz gesagt: ein dünnerer Arm wird durch die Armature-Deformation absolut gesehen weniger abgeflacht als ein normal dicker Arm. Dieser zwar noch vorhandene aber deutlich kleinere Abflach-Effekt fällt kaum noch auf, nachdem der Multires-Modifier den Arm (fast) wieder auf seinen normalen Umfang verdickt hat. Der Smooth-Modifier hat dabei den Vorteil, dass er den (berühmt-berüchtigten) "Edge-Flow" gleich noch etwas "gerade" rückt. Nicht so gute Resultate habe ich dagegen mit anderen prinzipiell in ähnlicher Richtung wirkenden Modifiern, wie dem Displace-, oder auch dem Laplacian-Smooth-Modifier erreicht.
Erwähnt werden muss hier noch, dass es sehr, sehr viel komplexere Ansätze gibt um diesen und anderen unerwünschten Effekten zu begegnen - diese Ansätze sind sicherlich z.T. auch noch deutlich besser, aber eben auch deutlich komplexer...

ACHTUNG: Dieser Trick funktionierte bis Version 2.67. In Version 2.68 funktioniert "Reshape" offenbar nicht mehr relativ zum darüberliegenden Smooth-Modifier, d.h. das Schrumpfen des Meshes wird nicht wie gewünscht ausgeglichen. Ich weiß noch nicht, ob es sich hier um einen Bug handelt, oder wie man dieses Problem evtl. umgehen könnte...
UPDATE: Sieht so aus, dass der Trick inzwischen (2.93.6) doch wieder funktioniert. Für nicht ganz so low-poly-ge Meshes eignet sich auch der Deform-Modifier gut - evtl. noch mit einem anschließenden Smooth. Auch bei aktiviertem "Preserve Volume" im ARMATURE-Modifier werden die Ergebnisse noch etwas besser.
Smooth-Modifiers
Smooth-Modifiers zum "Schrumpfen" des Base-Meshs, was durch ein Reshape vom Original-Mesh wieder korrigiert wird


Smooth-Modifiers
Vergleich ohne (links) und mit Smooth-Modifiers (rechts) zum verkleinern des Base-Meshs (Ausgeglichen durch den Multires-Modifier) - die Schulter rechts erscheint im Vergleich zur Version links nicht mehr unnatürlich geschrumpft. Mit der Armature-Modifier-Option "Preserve Volume" kann man den Effekt zusätzlich unterstützen; "Preserve Volume" alleine reicht hier jedoch nicht aus.
  • Besondere Probleme machen bei diesem Ansatz auch noch die Haare. Die lassen sich nicht vernünftig auf einem Multires-Objekt erzeugen, da zum einen bei mir das Base-Mesh so wenige Polygone hat, dass man die Vertex-Groups für die Haarzonen (Kopfhaare, Augenbrauen, Wimpern oben/unten) nicht genau genug bestimmen kann. Zum anderen hat Blender da aber scheinbar auch einen Bug (oder es ist schlicht nicht unterstützt) - jedenfalls kommen die Haare dann überall aus der Oberfläche, aber nicht da wo sie laut Vertex-Group-Zuordnung sollen... Daher benutze ich eine Kopie des normalen Meshes, bei dem ich den Multires-Modifier angewendet ("applied") habe und zwar mit einem Level, der ausreicht um die Haarzonen genau genug eingrenzen zu können (eben über entsprechende Vertex-Groups).
Base-Mesh
Base-Mesh mit wenigen Vertices (1804 Vertices)

Hair-Mesh
Hair-Mesh mit genug Vertices um Haarzonen (rot markiert sind
die Augenbrauen) genau genug definieren zu können (231490 Vertices)
  • Da ich auch Shape-Keys verwende (insbesondere für Gesichtsausdrücke) habe ich nun ein weiteres Problem: Selbst wenn ich alle Shape-Keys fertig hätte, bevor ich das Haar-Mesh erzeuge (als Kopie des Original-Meshs) kann ich dann den Multires-Modifier nicht anwenden, solange Shape-Keys existieren (Blender verweigert das Anwenden von Multires-Modifiern wenn Shape-Keys existieren).
    Ein weiteres Problem hatte ich kürzlich mit Shape-Keys die den Bezug zum Basis-ShapeKey verloren hatten. Reparturanleitung siehe hier: Repair Basis Shape Key.
Aramature
Eine Armature steuert die Gliedmaßen, die Gewichte der Vertex-Groups wurden überwiegend automatisch bestimmt (Skin-Objekt zum Kind der Armature machen). Einzelne Gewichte wurden händisch angepasst (z.B. Kopf, Finger und Zehen)

Gesichtsausdrücke
Mit Shape-Keys realisierte Gesichtsausdrücke
(Mund/Augenlider/Augenbrauen einzeln)

Um nun Shape-Keys einigermaßen elegant (wenn auch etwas langsam) übertragen zu können habe ich ein Python-Script mit dem Copy-Shape-Keys- und einigen weiteren Operatoren geschrieben.
Installation in Blender über Menü "File→User Preferences..." dort im Tab "Addons" unten auf den Button "Install from File..." klicken und das Python-Script auswählen. Danach noch mit der kleinen Check-Box aktivieren (ggf. nach "SKOP" für "Shape-Key-Operators" suchen). Die verfügbaren Operatoren sind:
    • SKOP: Copy Shape Keys - Kopiert alle Shape-Keys vom aktiven auf alle (anderen) selektierten Objekte. Zusätzlich können automatisch "Driver" erzeugt werden, so dass die Shape-Keys der Zielobjekte direkt von denen des Quellobjekts gesteuert werden. Multires- und Subsurf-Modifier auf dem Quell-Objekt können dabei virtuell angewendet werden (mit dem aktuell sichtbaren Subdivision-Level), damit das Mesh mit dem/den Zielobjekt(en) übereinstimmt.
      Achtung: das Skript prüft zwar lediglich ob die Anzahl der Knoten in den Meshes übereinstimmt, funktionieren kann die Übertragung aber nur wenn die Zielobjekte aus dem Quellobjekt erzeugt wurden (d.h. durch Kopieren + ggf. Anwenden von Multires-/Subsurf-Modifiern). Andernfalls wird das Zielobjekt total zerstört!
      Nachteil: Wenn im Quell-Objekt z.B. ein Armature-Modifier vor dem Multires-Modifier liegt wird das Haar-Mesh in Armature-gesteuerten Posen nicht ganz genau mit dem Quell-Objekt übeinstimmen (s.a. SKOP: Copy as Shape Key). Wenn man es wie ich für die Haare verwendet und die sich in Bereichen befinden die nicht durch einen Armature-Modifier, sondern nur durch Shape-Keys verformt werden (wie z.B. bei mir der Kopf)  kann man diesen Nachteil, aber vernachlässigen.
      Verfügbar: via Space-Menü im Object-Mode
    • SKOP: Copy as Shape Key - Kopiert die Form des aktiven Mesh-Objekts als neuen Shape-Key auf alle (anderen) selektierten Mesh-Objekte. Dabei werden vorab virtuell alle aktiven Modifier und/oder Shape-Keys des Quell-Objekts angewendet. Das heißt: es wird genau die momentan sichtbare Form übertragen.
      Achtung: Die Meshes müssen wiederum genau zueinander passen (d.h. Zielobjekte sollten aus dem Quellobjekt durch Kopieren enstanden sein,  wobei ggf. noch Multires-/Subsurf-Modifier angewendet wurden).
      Nachteil/Vorteil: Dies kann alternativ zu obiger Methode benutzt werden, indem für jede Pose ein entsprechender Shape-Key auf das Haar-Mesh übertragen wird. Das ist zwar umständlicher, erzeugt aber ein Haar-Mesh, dass mit dem Original-Mesh bestmöglich übereinstimmt. Dabei nicht vergessen, dass das Haar-Mesh dann nicht noch zusätzlich den Armature-Modifier benötigt, da es sonst ja doppelt "verbogen" würde...
      Verfügbar: via Space-Menü im Object-Mode
    • SKOP: Duplicate Shape Key - Dupliziert den aktivierten/selektierten Shape Key des aktiven Objekts. Dabei können die Shape-Keys (Original/Duplikat) gleich noch umbenannt bzw. mit einem Postfix versehen werden. Außerdem können Original- und dupliziertem Shape-Key Blend-Vertex-Groups zugewiesen werden. Die Funktion ist hilfreich um aus einem Shape-Key, der symmetrisch für beide Seiten des Objekts (rechts/links) erzeugt wurde zwei Shape-Keys zu erzeugen, die jeweils getrennt nur auf die rechte bzw. linke Seite des Objekts wirken (vorher müssen die Vertex-Groups für rechts/links erzeugt werden). Zusätzlich kann man den Orignal-Shape-Key erhalten - dann ist es eine "Triplicate Shape Key"-Funktion...
      Verfügbar: via Space-Menü im Object-Mode
    • SKOP: Apply Shape Key - Anwendung des aktiven/selektierten Shape Keys des aktiven Objekts. Das heißt, dass das Objekt hinterher fest die durch den Shape-Key bestimmte Form hat.
      Achtung: Alle Shape Keys werden gelöscht!
      Alternativ: Kann auch einfach zum Löschen aller Shape-Keys benutzt werden, indem der Basis-Shape-Key "angewendet" wird...
      Verfügbar: via Space-Menü im Object-Mode
    • SKOP: Drive Shape Keys by Bones - Erzeugt Driver, die die Shape-Keys der selektierten Mesh-Objekte durch die gleichnamigen Knochen (Bones bzw. richtiger Pose-Bones) des aktiven Armature-Objekts steuert. Im Edit-Mode werden nicht vorhandene Knochen erzuegt, indem der aktive Knochen dupliziert wird. Es kann ausgewählt werden durch welche Pose-Transformation der Knochen die Shape-Keys gesteuert werden.
      Verfügbar: via Space-Menü im Object-Mode, Pose-Mode und Edit-Mode (mit Zusatzfunktion "Create Bones" im Edit-Mode, s.o.)
ACHTUNG: Diese Operatoren wurden aktualisiert, da die alte Version in Blender 2.68 nicht mehr funktionierte. Umgekehrt funktioniert die neue Variante aber auch in älteren Versionen von Blender.

In dem Zusammenhang wäre auch eine Funktion zum Kopieren von Vertex-Groups von Objekt A nach Objekt B ohne Löschen aller anderen Vertex-Groups von B sehr hilfreich. Leider gibt's die Funktion in Blender nur mit Löschung aller bisherigen Vertex-Groups von B. Daher noch ein Python-Skript - leider sind die Funktionen bei nicht ganz kleinen Meshes aber sehr langsam. Ich benutze das, da ich nach einem Update der Gewichte auf meinem Low-Poly-Base-Mesh (z.B. durch autom. Generieren der Gewichte entspr. der Aramature), genau diese Gewichte auch gerne auf mein Haar-Mesh übetragen möchte - aber ohne dabei die Vertex-Groups zu verlieren, die die Haarzonen (Kopfhaare, Augenbrauen, Wimpern oben/unden) festlegen! Installation des Skripts, wie oben für die Shape-Key-Operatoren beschrieben (hier ggf. nach "VGOP" für "Vertex Group Operators" suchen). In diesem Python-Skript gibt es bisher diese Operatoren:
    • VGOP: Copy Vertex Groups - Kopiert alle oder nur die aktuell selektierte Vertex Group vom aktiven auf alle (anderen) selektierten Objekte.
      Bemerkung: Es sollte die Option "Use class BMesh" benutzt werden, da das deutlich schneller zu sein scheint...
      Achtung I: Sehr langsam!
      Achtung II: Die Meshes müssen, wie oben bei den Shape-Key-Operatoren beschrieben, kompatibel sein! Da das ganze ohnehin recht zeitaufwändig ist und ich noch hoffe eine schnellere Variante zu entdecken, habe ich auch noch keine Zusatzfunktionen zum autom. Anwenden von Modifiern (und ggf. dafür nötigen entfernen von Shape-Keys integriert) - das muss man also vorher von Hand machen (der Operator "SKOP: Apply Shape Key" ist dafür aber sehr hilfreich - s.o.)
      Verfügbar: via Space-Menü im Object-Mode und Weight-Paint-Mode
    • VGOP: Restore Vertex Groups - Stellt alle Vertex Groups für die eine Kopie mit einem bestimmten Postfix (Default: "_copy") angelegt wurde wieder her. Dafür wird die Kopie abermals kopiert und zurück in den Namen ohne Postfix benannt
      Achtung: Entsprechende bestehende Vertex-Groups gehen dabei verloren (werden "überschrieben")
      Anwendung: Wenn man Vertex-Group-Gewichte automatisch bestimmen lässt, indem man ein Mesh-Objekt zum Kind einer Armature mit automatischer Bestimmung der Gewichte macht, dabei aber bestimmte Vertex-Groups unverändert behalten will. In diesem Fall kopiert man ("händisch") die betreffenden Vertex-Groups und stellt sie mit diesem Operator nach der automatischen Bestimmung der Gewichte wieder her.
      Verfügbar: via Space-Menü im Object-Mode und Weight-Paint-Mode

Blender-Tastenkombitantionen

Meine persönliche Hit-Liste der wichtigsten Tastenkürzel:

Key
Funktion
Mode
Mittlere Maustaste Ansicht Drehen
Shift+Mittlere Maustaste Ansicht verschieben
Mausrad Ansicht Zoomen
Rechte Maustaste Selektieren (+Shift für Mehrfachselektion)
A
Alle/Nichts selektieren (Object Mode: Objekte; Edit-Mode: Punkte, Kanten, Flächen)
Object-Mode, Edit-Mode
Tab
Wechsel in den Edit-Mode und zurück

Z
Zwischen Gitter- und "solider" Ansicht toggeln

N
View-Options öffnen: z.B. kann man hier im Edit-Mode einstellen, dass man die Normalen-Vektoren an Flächen und/oder Kontrollpunkten angezeigt bekommen möchte (sowie auch deren angezeigte Länge einstellen)

Space
allgemeines Menü über das man auch nach Funktionen suche kann

W
Menü über das u.a. ein Fläche weiter Unterteilt werden kann
Edit-Mode
S
Skalieren (dazu entweder mit Maus ziehen, oder Faktor eintippen)
Object-Mode, Edit-Mode
S+{X,Y,Z}
Skalieren entlang einer der Hauptachsen (s.o.) Object-Mode, Edit-Mode
S+Shift+{X,Y,Z}
Skalieren entlang der anderen beiden Hauptachsen (s.o.) Object-Mode, Edit-Mode
Alt+S
Skalieren entlang der Normalen-Vektoren (sehr nützlich z.B. um eine Art "Skelett" zu erzeugen, s. auch oben) 
Edit-Mode
G
Grab: Objekt bzw. Punkt, Kante oder Fläche greifen und bewegen
Object-Mode, Edit-Mode,
UV-Map
G+{X,Y,Z}
Grab Bewegung nur entlang einer der Hauptachsen
Object-Mode, Edit-Mode,
UV-Map
R
Rotieren um die Sichtachse (dazu entweder mit Maus ziehen, oder Winkel in Grad eintippen)
Object-Mode, Edit-Mode,
UV-Map
2x R
Rotieren um den Schwerpunkt

R+{X,Y,Z}
Rotieren um eine der Hauptachsen Object-Mode, Edit-Mode,
UV-Map, Pose-Mode
Alt-G, Alt-R, Alt-S
Translation, Rotation, Skalierung selektierter Elemente zurücksetzen
Object-Mode, Edit-Mode,
Pose-Mode
Ctrl+R
Unterteilen angrenzender Flächen.
Achtung: UV-Mappings werden zwar auch unterteilt, jedoch einfach mittig, während man die Teilung im 3D-Mesh noch verschieben kann!
Edit-Mode
Ctrl+T
Verdrehen von Punkten in Curves
Edit-Mode
E
Extrude: Neue Punkte aus einer Curve bzw. Kanten oder Flächen aus einem Mesh herausziehen (aus selektierten Punkten, Kanten).
Beim Remeshing eines komplexen z.B. in Sculptris erzeugten Meshes intressant ist die Möglichkeit Snap-to-Surface zu aktivieren (Hufeisensymbol unten), so dass ein neuer Punkt auf die sichtbare Oberfläche eines anderen Objekts ausgerichtet wird.
Edit-Mode
F
Zwei selektierte Punkte zu einer neuen Kante, bzw. mehrere selektierte Kanten zu einer neuen Fläche verbinden
Edit-Mode
B
Box-Selektion: Achtung es werden nur sichtbare Punkte, Kanten und Flächen selektiert! Ggf. vorher den durchscheinenden Modus aktivieren, oder mit Z (s.o.) in die Gitterdarstellung wechseln.

C
Circle-Selektion (beenden mit ESC). Achtung die normalen Maus-Funktionen gehen dann nicht mehr, das das Maus-Rad die Kreis-Größe verändert und die rechte Maustaste Punkte/Kanten/Flächen deselektiert, während die linke Punkte/Kanten/Flächen selektiert

Ctrl+P
Selektierte Objekte zu Kindern des zuletzt selektierten (aktiven) Objekts machen

M
Objekte in einen anderen Layer verschieben

Shift-D
Kopieren von Objekten (Object-Mode), bzw. Mesh-Teilen (Edit-Mode)
Object-Mode, Edit-Mode, ...
Alt+B
Alles außerhalb eines rechteckigen Bereichs unsichtbar machen. Hilfreich insbesondere im Sculpt-Mode.
Achtung: Die unsichtbaren Bereiche werden trotzdem editiert, wenn man z.B. mit einem Sculpt-Brush darüberfährt!
Sculpt-Mode, ...
H
Hide: Selektierte Elemente unichtbar machen
Object-Mode, Edit-Mode
Alt+H
Alle Elemente (des aktuellen Layers) sichtbar machen
Object-Mode, Edit-Mode
L alle (auch indirekt) verbundenen Punkte auswählen
Edit-Mode, UV-Map-Ansicht
Ctrl++
Auswahl ausweiten
Edit-Mode
Ctrl+-
Auswahl verkleinern
Edit-Mode
F12
Rendern (mit F11 zurück zur 3D-Ansicht, allerdings ist es IMO besser gleich das Fenster so zu teilen, dass man eine 3D und eine Render-Sicht nebeneinander hat)
Galerien
Ganz alte Ergebnisse meiner ersten Versuche. Sculpting Texturieren (inkl. Normal-Maps) in Sculptris, alles weitere in Blender...

"Painted Head"

Der Kopf mit erhöhten Werten für Specular Intensity (1.0) und Hardness (ca. 350), was einen glänzenden (feuchten) Eindruck ergibt. Außerdem wurde eine Textur (Marble) gespiegelt (Mapping-Coordinates: "Reflection") darübergelegt, welche die Farbe (Color) und die Translucency beeinflusst (Influence). Das Partikelsystem für die Kopfhaare wurde deaktiviert. Das Ganze ist eine Spielerei, um ein neues Titelbild für meine Homepage zu kreieren.


"Unpainted Head"

...daselbe ganz ohne Texturen, aber weiterhin mit "Subsurface Scattering", was Haut (und vielen anderen Oberflächen) erst ein realistisches Aussehen gibt.


High Saturation

Untexturierter Kopf ohne Kopfhaare und hohen Specular-Intensity und -Hardness-Werten (glänzend-feucht). Die leichte Färbung der Haut kommt ausschließlich von der eingestellten Farbe für das Subsurface Scattering. Dieses Bild ist mit Gimp nachbearbeitet worden, indem der Sättigungswert (Saturation) extrem hochgezogen wurde, was die Hautfärbung erst deutlich werden lässt.

"Painted Head"
 
"Unpainted Head"
 
High Saturation
Portrait

Beleuchtung: flach stehende Sonne (Sun) leicht rötliches Licht und ein leicht bläuliches "Area Light" von links, um die Schatten etwas aufzuhellen. Es bietet sich an, die Haare an einem ggf. vorhandenen Scheitel besonders dicht zu machen, da zu wenige Haare dort extrem auffallen. Die Haare wurden mit einer Alpha-Blend-Textur versehen, die sowohl ein (schnelles) Fade-In als auch ein (langsames) Fade-Out realisiert. Ohne das Fade-In ist der Übergang zur Kopfhaut IMO zu hart. (Bild ist sehr groß - klicke rechts oben für 100%-Zoom)


Draufsicht

Man erkenn insbesondere, dass die Haare im Bereich des Scheitels noch dichter sein müssten. Ein paar Artefakte an den Haarrändern gehen dagegen auf das Konto des Tiefenunschärfefilters von Blender.

Portrait
Draufsicht
Reines Blender-Modell (Cycles-Render)

Komplett in Blender erstelltes Modell, gerendert mit Cycles. Für die Haut gibt es die Oberfläche, die aber lichtdurchlässig (translucent) ist. Darunter befindet sich ein reflektierender Layer (Linked Duplicate des Oberflächen-Meshs), dessen Abstand über eine Textur mit einem Displace-Modifier geregelt wird. Die Ray-Länge wird dann in einen Haut-Ton umgerechnet... (simuliert Subsurface Scattering, welches aber für Cycles für die nächste Blender-Version angekündigt ist). Gerendert in 1200x2400 mit 1500 Samples in 5'24h


Verfeinerung

...nach kleineren Anpassungen (Haardicken, Hauttöne, ...): Zwei Shape-Key-gesteuerte Gesichtsausdrücke

Blender-only
Very low-poly base mesh

Verfeinerung
Und nun noch ein paar deutlich neuere Sachen, bei denen das Base-Mesh in MakeHuman erstellt wurde und alles andere dann nur noch in Blender gemacht wurde...

Filmic Blender

Gerendert mit Filmic Blender und sehr hell - was einige Unzulänglichkeiten ganz hübsch kaschiert - genauso wie die Kapuze das nicht so überzeugende Haar ... was habe ich mir mit Haaren schon einen abgebrochen :-)
(Work in progress)

 
Filmic Blender
(und sehr hell)
 
Higher-poly base mesh

Base-Mesh nicht ganz so low-poly, aber über Armature und Shape-Keys steuerbar

Kleidung als "Schnittmuster" vor und hinter die Figuer gelegt, so dass die Stoffteile sich dann dank Sewing simuliert zusammenziehen. Das funktioniert recht gut, man braucht aber genug Nahtstellen. Es ist mir nicht gelungen welche durch Modifier zu erzeugen, aber da muss ich nochmal mit Geometry Nodes ran, die ich noch nicht kannte als ich das gemacht habe...

Rest: Haare - naja das übliche Disaster (mühsam durch eine "wilde" Frise kaschiert), aber mehr dazu s. nächstes Bild... (Work in progress)

 
Cloth Simulation mit Geometry Nodes

Sewing Edges und diverse spezielle Optimierungen mit Geometry Nodes (z.B. Reißverschluss, Hosenträger, Nähte).

 
Cloth Simulation mit Geometry Nodes ... einige Iterationen später

Der Pulli, die Nähte der Hose, sowie auch die Fransen und einzelnen Fäden der Löcher sind (wie jetzt auch alle Haare) mit Hair Curves gemacht. Die Löcher werden autom. erzeugt (weshalb im Moment auch noch der eine Flicken von den Fransen eines Risses durchdrungen wird). Der Pulli-"Stoff" liegt flach in der Z-Ebene und wird entspr. der UV-Map zugeschnitten und dann mit einer eigenen "Surface Deform" Geometry-Node-Group auf den Cloth-Simulierten Pulli gelegt. Dieselbe Group wird auch verwendet um die Flicken und Taschen auf die simulierte Hose zu applizieren (ersetzt den vorher verwendeten Surface Deform Modifier der leider manchmal spinnt und das zu deformierende Mesh komplett zerfetzt.

 
Cloth Simulation mit Geometry Nodes ... weitere Verbessurungen

Die Brusttasche sowie die Gürtelhalter-Laschen sind jetzt selbst Cloth-simuliert und mit Hilfe meiner Surface Deform Geometry Node Group auf den Hauptteil der Hose gepinnt (d.h. die Pinning Group wird per Surface Deform entspr. des selbst Cloth-simulierten Hauptteils bewegt).
Vorteil: die Tasche kann ausladender sein und die Gürtellaschen werden nicht mehr so wild verformt sondern fallen natürlicher.

Die Nähte (auf dem Hauptteil) waren vorher auf Kanten des Meshs gelegt. Der Nachteil ist, dass das Mesh entsprechende Randzonen definieren muss, was die Simulation versaut (da diese Faces bei mir sehr viel kleiner waren als die anderen), was ich dann mühsam mit allerlei GeoNode-Tricks versucht habe wieder auszugleichen. Nun habe ich ein zweites Mesh definiert, das nur die Nähte als Edges modelliert (keine Faces). Diese werden dann per Geometry Nodes in Curves konvertiert, diese dann in äqudistante Points auf die dann die Nahtelemente instanziiert werden (die Nahtelemente sind ürigens selbst kurze Curves. Das ursprügliche Mesh wird wieder mit der Surface Deform Geometry Node Group auf den Cloth-simulierten Haptteil projeziert (unfassbar hilfreiche GN Group :-))

MakeHuman Model
(Kleidung mit "Sewing")
 
Cloth Sim. mit Geometry Nodes
 
Cloth Simulation continued
 
Cloth Simulation continued
Prozedurale Haare, Poren (Hautstruktur) mit Geometry Nodes

Dasselbe Modell wie vorher, aber diesmal sind sowohl die Haare als auch Poren, Pickel und Flecken (Hautstruktur) prozedural mit Geometry Nodes erzeugt worden - die Hautstruktur ist vielleicht noch ein bisschen übertrieben, aber ich bin jetzt sowohl mit den Haaren als auch der den Hauteffekten relativ zufrieden ;-)

Die Haare werden zunächst über Geometry Nodes als Hair Curves erzeugt. Das Hair Curves Objekt wird dann von mir manuell erst dupliziert, dann der Geometry-Nodes-Modifier applied und dann in ein Particle System umgewandelt (ich war bisher nicht in der Lage mit Hair Curves genug Haare zu erzeugen, ohne dass mein Rechner in die Knie geht, außerdem sind die Effekte der Partikel-System-Haare schon immer noch recht nett, aber mal sehen wie such die Hair Curves weiterentwickeln)

Die Poren / Hautstruktur geht komplett über Geometry Nodes, braucht aber naturgemäß eine hohe Mesh-Auflösung! (Ich packe auf meinen Multi-Resolution Modifier dafür am Ende noch einen Subdivision Surface Modifier obendrauf, bevor der Geometry Nodes Modifier sein Werk verrichtet...

 
Mit und ohne Poren (Hautstruktur)

...zum Vergleich...

Die Geometry Nodes Groups, die die Poren etc. machen, geben auch Fields aus, u.a. bzgl. der Porentiefe, die dann von den Shader Nodes benutzt werden, um die Poren dunkler und weniger lichdurchlässig (reduziertes Subsurface Scattering) zu machen.

 
...im Profil...

Der Pferdeschwanz hat vor allem im obersten Teil noch erhebliche Schwächen - ansonsten bin ich mit den autom. generierten Haaren jedoch recht zufrieden - besser als alles was ich bisher handmodelliert habe und immer bestenfalls "wild" aussah...

Ansonsten noch diverse Baustellen, wie z.B. die Augen.
Den unschöne Übergang zwischen dem höher aufgelösten Kopf-/Halsbereich und dem restlichen Körper, der nur wegen des Subsurface Scattering sichtbar ist, hoffe ich jetzt mit Geometry Nodes (Merge by Distance) und/oder dem Weld Modifier beseitigen zu können.

 
Poren per Shader

Hab das ganze umgebaut und mache die Poren, Pickel, Flecken jetzt doch per Shader und nicht mit Geometry Nodes. Vorteil: Man kommt mit viel weniger Subdivisions aus und kann die Poren trotzdem beliebig klein machen.

Prozedurale Haare, Poren (Hautstruktur) mit Geometry Nodes
 
Mit vs. ohne Poren (Hautstruktur)
 
...im Profil...
 
Poren per Shader
Mit und ohne adaptive Hair-Density (etwa gleich viele Haare)

Mein Guide-Hair-Generator sollte immer auch solche Scheitelfrisuren abdecken. Das Problem war eben der Scheitel. Dort braucht man unfassbar viele Haare damit das gut aussieht. Nun ergibt sich die Position des Scheitels aber bei mir dynamisch. Die Lösung: Per Geometry-Nodes wird ein Dichte-Feld generiert, welches dafür sorgt, dass Haare der äußeren Layer wesentlich dichter sind. D.h. insbesondere auch solche die am Scheitel entspringen. Dadurch wirken die Haare am Scheitel wesentlich dichter (sind sie ja auch), ohne dass sich der restliche Eindruck wesentlich verändert und ohne dass deutlich mehr Haare erzeugt werden müssen (75.6K links, 75.8K rechts). Extrem hilfreich dabei der neue Points to Curves Node in Blender 4.0.0.

 
Unterschiedliches "Clumping" (und "Noise") in (48) Layern

Von vorne sah das vorher schon nicht schlecht aus (finde ich), aber am Hinterkopf z.B. klafften riesen Lücken im Haar - vor allem bei höheren Clumping-Werten (der Clumping-Wert beeinflusst bei mir wie stark Kantenlängen randomisiert werden wenn sie für Shortest Edge Paths als Kosten verwendet werden - hohe Werte führen dazu dass sich viele Curves vereinigen und dann am selben Zielpunkt enden). Mit der neuen Repeat Zone (Schleife) in Blender 4.0.0 ist es relativ einfach das Ausgangsmesh (Kopf) in mehrere Sektionen entsprechend des Abstands von jedem möglichen Startpunkt zum jeweils nächstgelegenen Endpunkt zu unterteilen und dann für dieses Sektionen einzeln Guide-Hair-Curves zu generieren, jeweils mit unterschiedlichen Random-Seeds für das Clumping. Das führt dazu dass es mehrere Layer (im Bild rechts 48) gibt in denen die Haare unterschiedlich "klumpen". Das vermeidet die Löcher auch für hohe Clumping-Werte wie hier.

Mit und ohne adaptive Hair-Density
 
Unterschiedliches "Clumping" (und "Noise") in (48) Layern
Feedback
Freue mich über eure Meinungen, Anregungen, usw.
Mail-Adresse.

Feedback-Formular

Patrick Rammelt, 04//2013