Blender Dokumentation/ Tutorials/ Partikel/ Gras

Aus Wikibooks
Diese Seite bezieht sich auf Blender v2.47

Dieses Tutorial ist eine überarbeitete und erweiterte Version von dem Tutorial Statische Partikel (Gras).

Gras[Bearbeiten]

Wenn in der Überschrift davon gesprochen wird, Gras in Blender zu erzeugen, so ist doch in den meisten Fällen die Absicht damit verbunden, nicht nur eine einzelnen Graspflanze, sondern einen Rasen oder eine Wiese zu erstellen. Im Folgenden werden die nötigen Techniken besprochen, mit Partikelsystemen Grasobjekte zu erstellen. Aus diesen Grundlagen heraus lassen sich dann sehr vielgestaltige Rasen- oder Wiesenszenarien erstellen.

Abbildung 1a: Graspflanze mit Wurzeln
Abbildung 1b: Gras
Abbildung 1c: Hochland-Wiese
Abbildung 1d: Animiertes Partikelgras

Blender kann bis zu 100.000 * 10.000 Partikel mit einem Emitter und einem Partikelsystem erstellen. Das sollte für jeden normalen Anwendungszweck reichen. Unter Umständen verwendet man allerdings besser mehrere Partikelsysteme, um z.B. eine größere Variabilität zu erreichen. Das werden wir im Verlauf dieses Tutorials hier auch tun, außerdem werden wir versuchen, das System sowohl animierbar zu gestalten als auch die Renderzeiten möglichst klein zu halten. Das Ergebnis wird dann so aussehen wie in Abb. 1d.


1. Partikelsystem erzeugen[Bearbeiten]

Abbildung 2a Teil 1 der Partikelsystemeinstellungen
  • Fügen Sie eine Plane ein.
  • Skalieren Sie die Plane im Edit-Modus auf das fünffache ihrer ursprünglichen Größe. Der Edit-Modus ist deswegen wichtig, damit später die ganzen Einstellungen für die Partikelphysik nicht skaliert werden müssen.
  • Wechseln Sie in die Particle-Buttons (F7->F7->F7). Klicken Sie auf dem Particle System-Panel auf Add New (siehe den Abschnitt Partikel).
  • Stellen Sie den Systemtyp auf Hair. Damit wird der Weg der Partikel in ihrer gesamten Lebenszeit auf einmal dargestellt.
  • Nehmen Sie folgende Einstellungen an dem System vor:
    • Amount: 6000. Diese Zahl ist einigermaßen willkürlich, da die Gesamtzahl der Partikel später über die Anzahl der Children festgelegt wird. Allerdings benötigt man eine gewisse Anzahl von Partikeln, um eine gute Verteilung auf dem Objekt zu erreichen.
    • Segments: 3. Da Gras in der Regel kurz ist, brauchen wir nur wenige Kontrollpunkte. Je weniger Kontrollpunkte, desto geringer ist der Speicherbedarf und desto höher die Rendergeschwindigkeit.
    • Emit From: Random/Even. Damit erhalten wir eine gleichmäßige Verteilung der Partikel auf dem Objekt. Um die Verteilung wirklich gleichmäßig zu gestalten, müssten wir auch noch die Verteilung Random anstelle von Jittered wählen, bei einer einzigen Fläche spielt das allerdings keine Rolle.

Die Partikel müssen nun bewegt werden. Dazu geben wir ihnen eine gewisse Anfangsgeschwindigkeit in Richtung der Flächennormalen mit.

  • Stellen Sie auf dem Phyics-Panel ein:
    • Normal: 0.080. Das Gras wird recht kurz.
    • Random: 0.016. Eine ganz kleine, zufällige Variation.
    • AccZ: -0.01. Eine kleine Kraft, die die "Halme" nach unten ziehen soll.
Abbildung 2b: Teil 2 der Partikeleinstellungen

Nun zur Ansicht der Partikel:

  • Auf dem Visualization-Panel stellen Sie ein:
    • Emitter. Damit wird auch das emittierende Mesh gerendert, damit die Partikel nicht in der Luft hängen.
    • Strand render. Der Strand render ist eine sehr schnelle Möglichkeit auch eine große Anzahl von Partikeln zu rendern, ohne ihn sind einige 100.000 Partikel nicht mehr in einer vernünftigen Zeit zu beherrschen. Für Wiesen also ein Muss! Aber diese Partikel werden vom Raytracing ignoriert, man muss also einen Shadow-Buffer Spot benützen, um das Gras Schatten werfen zu lassen.

Die Materialnummer steht auf 1, diesen Wert lassen wir stehen und kommen gleich auf die Materialzuweisung zurück.

Die Partikelanzahl wird nun mit Children erhöht:

  • Aktivieren Sie Children from Faces.
  • Ich habe nur 1 Children im 3D-Fenster angestellt, 28 Children pro Partikel beim Rendern. Insgesamt verwende ich also 6000x28 Partikel in diesem Partikelsystem.
  • Die Children bekommen eine ganz kleine Unregelmäßigkeit:
    • Rough2: 0.025
    • Size2: 0.010

Nachdem Children from Faces aktiviert wurde, ist ein weiteres Panel erschienen, das Simplification-Panel. Damit werden Partikel unterhalb einer bestimmten Größe nicht mehr vollständig berechnet, sondern nach und nach vereinfacht dargestellt.

  • Stellen Sie die Child Simplification an.
  • Stellen Sie Viewport an.

Strand render und Child Simplification haben in dem hier gezeigten Bild eine Zeitersparnis von mindestens einem Faktor 3 zur Folge.

1. Grasmaterial[Bearbeiten]

Bisher sieht das Gras noch vollständig grau aus.

  • Wechseln Sie in die Materialbuttons.
  • Erzeugen Sie ein neues Material.
  • Nennen Sie das Material Gras1.
  • Setzen Sie die Materialfarbe auf Grün (RGB 0/0.775/0).
  • Fügen Sie eine neue Textur hinzu.
    • Nennen Sie die Textur GrasColor.
    • Auf dem Map To-Panel stellen Sie den Col-Wert auf 0.75, die Textur soll die Farbe also nur zu 75% beeinflussen, und immer mit der grünen Grundfarbe mischen.
    • Laden Sie die Image-Textur einer grünen Wiese.

Damit bekommen wir eine farbliche Variation des Grüns, ohne uns besonders anstrengen zu müssen.

Abbildung 3a: Strands-Einstellungen für das erste Partikelsystemmaterial

Im Material wird ebenfalls die Form eines Grashalms eingestellt.

  • Klicken Sie auf dem Links and Pipeline-Panel auf den Button Strands.
  • In dem erscheinenden Feld tragen Sie ein:
    • Start: 2.5 - die Dicke der Grashalme an ihrem unteren Ende.
    • End: 0.7 - die Dicke der Grashalme an ihrem oberen Ende.
    • Shape: 0.75 - der Verlauf der Zuspitzung (siehe auch den Abschnitt Strands).

Verändern der Partikeldichte mit einer Textur[Bearbeiten]

Abbildung 3b: Partikelattribute mit einer Textur einstellen

Mit einer weiteren Textur wird nun die Verteilung der Grashalme verändert. Hier könnten Sie auch eine selbstgemalte Imagetextur benützen, wenn Sie z.B. den Verlauf eines Weges grasfrei halten möchten.

  • Fügen Sie eine weitere Textur hinzu.
  • Nennen Sie diese GrasDistribution.
  • Auf dem Map To- Panel stellen Sie Col aus, die Textur soll nicht die Farbe der Partikel ändern, sondern ihre Verteilung.
  • Stellen Sie DVar auf die gewünschte, maximale Einflussstärke, aber auf jeden Fall auf einen Wert kleiner 1.

Mit einer Textur kann bei den gewählten Einstellungen die Dichte von Haaren nur verringert werden, aber nicht erhöht (sehen Sie dazu auch den Abschnitt Kontrolle_der_Emission_und_Interaktion). Ich habe hier die Verteilung der Partikel nur ganz geringfügig geändert, eigentlich nur, um zu zeigen wie es geht.

  • PAttr aktivieren, Dens ist die Dichte der Partikel, DVar auf 0.9.
  • Als Textur habe ich eine Clouds-Textur verwendet.

Verändern der Partikeldichte mit Vertexgruppen und Weight-Painting[Bearbeiten]

Statt die Partikeldichte mit einer Textur einzustellen, kann man auch Vertexgruppen und WeightPaint verwenden (allerdings ist Texture-Painting u.U. genauer, dafür geht Weight-Painting schneller und ist interaktiv). Vertexgruppen bieten sich dann an, wenn man bestimmte Abschnitte des Meshes sowieso als Haaremitter nutzen will, z.B. die Kopfhaut. Neben der Verteilung und der Länge der Partikel, lassen sich eine Reihe weiterer Attribute über eine Vertexgruppe beeinflussen (siehe den Abschnitt Kontrolle der Emission und Interaktion). Hier zeigen wir also eine alternative Methode zu der Verwendung einer Textur auf.

Abbildung 3c: Anlegen der Vertexgoup
  • Zunächst müssen Sie die Fläche in kleinere Einzelsegmente durch Subdivide zerlegen. Zwei- bis dreimaliges Unterteilen reicht in der Regel aus.
  • Klicken Sie in den Editing Buttons auf dem Link and Materials-Panel unter Vertex Groups auf New (Abb. 3c Nr. 2), ändern den gewünschten Namen (Abb. 3c Nr. 1) und drücken Assign (Abb. 3c Nr. 3).
  • Den unter Vertex Group gewählten Namen wählen Sie auf dem Extras-Panel für den Parameter Density und den Parameter Velocity ein.

Der Eintrag bei Density bewirkt, dass die Stellen, wo später Weight Paint einen niedrigen Wert annimmt, wenige Pflanzen wachsen. Der Eintrag bei Velocity bestimmt die Pflanzenhöhe. Es ist immer nur ein Eintrag gleichzeitig sichtbar, sie können aber jeden Parameter mit einer eigenen Vertexgruppe einstellen.


Abbildung 3d: Mit Weight Paint zeichnen



Boden[Bearbeiten]

Da der Boden auch ein Material bekommen muss, brauchen wir ein neues Material, und müssen es dem Boden zuweisen.

  • Wechseln Sie in die Editing-Buttons.
  • Wechseln Sie in den Edit-Modus des Meshes.
  • Auf dem Link and Materials-Panel klicken Sie unter Material Index auf New und anschließend auf Assign (nicht bei den Vertexgruppen klicken!).

Dadurch wurde ein neues Material angelegt und der Fläche zugewiesen. Die Partikel behalten Material Nr. 1, die Fläche bekommt also Material Nr. 2. Sehen Sie dazu auch den Abschnitt Multimaterial.

  • Wechseln Sie wieder in den Object-Modus und in die Material Buttons.
  • Nennen Sie das neue Material Earth.
  • Wenn Sie die Farbe des Materials ändern, sollte sich die Farbe des Meshes im 3D-Fenster ändern.
  • Löschen Sie die beiden Texturen, die das Earth-Material noch vom Grasmaterial trägt.

Ich kann hier für fertige Materialien durchaus das Blender Open Materials Repository empfehlen.

Partikelbewegung[Bearbeiten]

Die Partikel können direkt auf Kraftfelder reagieren. Man könnte Hair-Partikel auch als Softbodys animieren, das ist aber viel zu rechenaufwändig für eine Animation. Ich habe in Abb. 1d eine Textur verwendet, um ein Kraftfeld zu erzeugen, man könnte aber auch Wind oder einen der anderen Feldtypen verwenden. Ein Problem ist immer, dass der Effekt schwer natürlich wirkend hinzubekkommen ist, er wird schnell zu stark.

Die Textur wird dann an ein Empty gebunden, und das Empty skaliert und bewegt. Man kann schließlich bei den Partikeln einstellen, wie steif sie sein sollen, also wie stark sie auf Kraftfelder reagieren sollen.

Abbildung 4a: Textur für das Kraftfeld
  • Fügen Sie zu dem Grasmaterial eine weitere Textur hinzu, deaktivieren Sie diese aber.

Man kann zur Zeit immer noch keine Textur ohne Material erzeugen, obwohl die Textur nur irgendwo definiert sein muss. Man könnte die Textur also bspw. auch für eine Lampe definieren, oder für die Welt, oder für ein unsichtbares Objekt, ....

  • Nennen Sie die Textur GrasMovement.
  • Als Texturtyp habe ich eine angepasste Wood-Textur verwendet (Abb. 4a).
  • Fügen Sie ein Empty ein.
  • Skalieren Sie das Empty auf eine Größe von 0.1.

Damit wird die Textur skaliert.

Abbildung 4b: Texturkraftfeld
  • Stellen Sie in den Physics-Buttons folgendes ein:
    • Field Type: Texture
    • Strength: 0.037 - die Stärke der Kraft
    • Texture: GrasMovement
    • Use Object Co: Damit bewegt sich die Textur mit dem Empty mit, wenn das Empty bewegt wird.
    • 2D: Von Texturen definierte Kraftfelder können echt dreidimensional sein, allerdings kommt beim Gras zuviel Unruhe in die Bewegung.

Die Auswirkungen der Textur werden im 3D-Fenster sofort sichtbar.

  • Für das Partikelsystem wird auf dem Extras-Panel unter Stiff die Steifigkeit der Partikel eingestellt, ich habe die Stiffness auf 0.001 eingestellt.

Zu guter Letzt animiert man die Bewegung des Emptys.


Weitere Arbeiten[Bearbeiten]

  • Unser Gras wirft noch keine Schatten, verwenden Sie einen Spot mit Buffer Shadow damit es Schatten wirft.
  • Fügen Sie ein weiteres Partikelsystem hinzu, um eine größere Variation der Partikel zu erreichen. Wenn Sie den Parameter Seed auf dem Extras-Panel auf einen anderen Wert stellen, werden die Partikel der Partikelsystem nicht von der gleichen Stelle emittiert.
  • Das zweite Partikelsystem kann ein eigenes Material erhalten, wenn Sie auf dem Visualization-Panel den Parameter Material auf den entsprechenden Materialindex stellen.
  • Unterteilen Sie das Mesh, und skalieren es etwas unregelmäßig.

Wenn Sie schönere Ergebnisse erhalten als ich, verbessern Sie dieses Tutorial ruhig, oder schreiben Sie Tips und Hinweise auf die Diskussionsseite.