# Blender Dokumentation/ Tutorials/ Special Effects/ Cutting Through Steel

* Diese Seite bezieht sich auf Blender v2.48a
Um einen Laserstrahl zu simulieren, der sich durch eine Stahlplatte schneidet, gibt es in Blender im Prinzip zwei Möglichkeiten:
* ein animiertes Mesh mit vielen Shape-Keys
* eine animierte Textur
Die (letztgenannte) Methode ist erheblich leichter umzusetzen, und das Ergebnis ist trotzdem überzeugend genug. Wir werden folgendermaßen vorgehen:
* Sie benötigen eine animierte Alpha-Maske für die Stellen, an denen sich das Metall verändert. Dafür verwenden Sie ein Textobjekt als Pfad, einen Würfel der dem Pfad folgt und ein Partikelsystem das von dem Würfel emittiert wird. Die Ergebnisse werden als Animation gerendert und die Bilder abgespeichert.
* Dann laden Sie diese Bildfolge und verwenden Sie als animierte Textur auf einer Ebene.
* Mit einem zweiten Partikelsystem werden die Funken simuliert.
* Mit einem dritten Partikelsystem erstellen Sie eine weitere animierte Bildfolge, die das Nachglühen der Schweißnaht simuliert. Auch diese Bildfolge wird als animierte Textur verwendet.
* Rauch wird mit einem vierten Partikelsystem erzeugt.
Das Ergebnis finden Sie in Abb. 1.
Diese Anleitung basiert auf dem wohlbekannten Tutorial Cutting Through Steel, dass aber um aktuelle Techniken erweitert ist. Sie benötigen dafür grundlegende Kenntnis in Blender.

## Erstellen der Alpha-Map

* Starten Sie Blender. Speichern Sie Ihre Datei. Löschen Sie den Würfel.
Das Speichern sollte hier bereits erfolgen, da wir die animierten Texturen in Unterverzeichnisse des aktuellen Verzeichnisses rendern werden, außerdem werden Partikel-Caches dann ebenfalls als Unterverzeichnisse angelegt.
* Stellen Sie in den Render Buttons auf dem Anim-Panel den End-Wert auf 150. Damit legen Sie die Gesamtlänge der Animation fest.
* Auf dem Output-Panel stellen Sie das Verzeichnis "//AlphaMap/" als Ausgabeverzeichnis ein. Bei der Berechnung werden die Bilder der Animation dann im Unterverzeichnis "AlphaMap" zum aktuellen Verzeichnis gespeichert.
Die animierte Alpha-Map besteht aus Graustufenbildern, deren Helligkeitsinformationen vom Programm zur Berechnung einer Maske verwendet werden. Helle Pixel erzeugen durchsichtige Stellen, dunkle Pixel undurchsichtige.
* Als Ausgabeformat stellen Sie bitte PNG ein. Dadurch vermeiden Sie Kompressionsartefakte, bei beim JPEG-Format auftreten können.
Die Bildgröße müssen Sie nach der gewünschten Auflösung auswählen, ich habe es bei 800x600 belassen.
* Erstellen Sie die Form, die Sie ausschneiden möchten, als Curve-Objekt, oder benutzen Sie ein Text-Objekt und konvertieren dieses zu einem Pfad. Ich habe letzteres getan, ein Text-Objekt eingefügt (ein "W"), und dieses zu einem Curve-Objekt konvertiert (Object->Convert Object Type...->Curve).
* Mit der Funktion Center auf dem Curve and Surface-Panel habe ich das Objekt in die Mitte des 3D-Koordinatenraums gebracht.
* Weil die Füllung des Kurvenobjektes in dieser Anwendung stört, wird 3D auf dem gleichen Panel aktiviert, auch wenn das Objekt zweidimensional bleiben soll.
Nun wird ein Würfel benötigt. Der Würfel folgt der Kurve und das ihm zugeordnete Paritikelsystem erzeugt eine leuchtende Spur. Diese Spur ist es später, die als Alpha-Map verwendet wird.
* Fügen Sie einen Würfel ein.
* Skalieren Sie diesen Würfel so klein, wie später die Spur des Lasers breit werden soll.
* Wählen Sie zunächst den Würfel aus, dann mit Shift-RMT das Kurvenobjekt. Mit Strg-P->Path Constraint erzeugen Sie einen Follow Path-Constraint.
* Wählen Sie nur den Würfel aus, und aktivieren auf dem Constraints-Panel in den Object-Buttons den Button CurveFollow.
Drückt man nun Alt-A und lässt die Animation ablaufen, folgt der Würfel der Form des Kurvenobjektes, allerdings nicht unbedingt in der gewünschten Richtung, und nicht von der gewünschten Stelle aus. Deswegen erfolgen einige Nacharbeiten:
* Wechseln Sie in den Edit-Modus des Kurvenobjektes.
* Curve->Toggle Cyclic öffnet das Kurvenobjekt, durch Hinzufügen (Subdivide) eines oder mehrerer zusätzlicher Kontrollpunkte erreicht man die gewünschte Bewegung. W->Switch Direction im Edit-Modus der Kurve kehrt die Bewegungsrichtung des Würfels um.
Durch Hinzufügen einer Time-Ipokurve zu dem Pfad können Sie die Animationsdauer und Geschwindigkeit einstellen, ich habe es aber bei der voreingestellten Dauer von 100 Frames belassen. Die letzten 50 Frames der Gesamtanimation glüht der Pfad noch etwas nach, und der Rauch verzieht sich.
* Der Würfel bekommt ein Partikelsystem, nennen Sie dieses Alpha.
* Setzen Sie die Lebenszeit der Partikel auf 150 (oder höher) (Abb. 2b). Die Partikel sollen die gesamte Animationsdauer über leben.
Partikel werden nur berechnet, wenn Sie die Animation vom ersten Frame an laufen lassen. Wenn das Partikelsystem fertig ist, und man sich in der Zeitleiste frei bewegen möchte, kann man das Partikelsystem baken, also permanent berechnen lassen. Das können Sie hier tun.
* Klicken Sie auf den Bake Button im Bake-Panel. Die Partikelanimation wird berechnet.
* Der Würfel bekommt ein Material:
** Halo
** RGB 1/1/1, also ganz weiß
** XAlpha
** HaloSize: 0.03
** Hardness: 40
Mit diesen Einstellungen soll erreicht werden, das ein Graustufenbild entsteht, dass an den Stellen ganz weiß ist, wo das Material später durchsichtig werden soll. Teiltransparenzen sind in diesem Fall unerwünscht, da eine relativ scharfe Schnittkante entstehen soll. Leichte Unregelmäßigkeiten im Randbereich sind gewollt.
Um die Animation zu rendern, wird die Kamera direkt mittig über das Objekt gesetzt.
* View->Top
* Strg-Alt-Num0 setzt die Kamera auf die aktuelle Ansicht. Wählen Sie die Kamera aus.
* Mit dem Transform Properties-Panel im 3D-Fenster (Object->Transform Properties) setzt man die Koordinaten der Kamera genau senkrecht über die Mitte des 3D-Fensters (X/Y=0).
* In den Editing-Buttons der Kamera stellt man auf dem Camera-Panel die Option Orthografic ein. Passen Sie mit dem Scale-Wert die Größe der Animation an.
* Setzen Sie in den World-Buttons die Farbe der Welt auf schwarz.
* Lassen Sie die Animation berechnen.
Blender erzeugt nun eine Bildfolge von 1 bis 150 im Unterordner AlphaMap (Abb. 2c).

## Schweißfunken

Jetzt werden wir eine neue Szene erzeugen, in der später die verschiedenen Effekte zusammengefügt werden.
* Benennen Sie die aktuelle Szene in AlphaMap um.
* Erzeugen Sie eine neue Szene als FullCopy (Abb. 3a). Nennen Sie die neue Szene Cutter.
Nun werden die Schweißfunken mittels eines Partikelsystems erstellt.
* Fügen Sie eine UVSphere mit 16 Segmenten und 16 Ringen ein.
* Löschen Sie die untere Hälfte der UVSphere im Edit-Modus und skalieren Sie sie etwa auf die gleiche Größe wie den Würfel.
* Wechseln Sie in den Objekt-Modus.
* Wählen Sie zusätzlich zur UVSphere den Würfel aus, und kopieren Sie den Follow-Path-Constraint vom Würfel auf die UVSphere. Object->Copy Attributes->Object Constraints
Beachten Sie, dass Sie Attribute immer vom aktiven Objekt auf die anderen ausgewählten Objekte kopieren. Das aktive Objekt ist immer das zuletzt ausgewählte.
* Erzeugen Sie ein Partikelsystem auf der UVSphere.
** Name Sparks
** Amount: 4200
** Life: 5
** Emit From: Random/Verts
** Normal: 0.757
** Random: 0.397
** Rotation Random: 0.116
** AccZ: -1.37
Bis auf die Lebensdauer sind die Werte relativ willkürlich, ich habe einfach solange probiert, bis ich mit dem Ergebnis zufrieden war. Die Funken sinken leicht nacht unten (wegen der negativen Beschleunigung in Z-Richtung).
* Visualization:
** Line (das entspricht der Vect-Einstellung im Partikelsystem vor 2.46)
** Speed
** Back: 0.04
** Front: 0.0
Damit erzielen Sie einen langgezogenen Funken.
* Baken Sie die Partikel. Wechseln Sie dazu auf das Bake-Panel der Partikel, und klicken auf Bake. Die Partikelanimation ist jetzt dauerhaft gespeichert.
Der Bake-Endwert ist übrigens der Endwert auch für die normale Partikelanimation wenn Sie nicht baken. Wenn Sie mehr als 250 Frames benötigen, müssen Sie diesen Wert erhöhen.

## Anwenden der Alpha-Map auf ein Objekt

Die Alpha-Map wird nun als Textur auf eine Ebene angewendet. Dabei muss die Textur genau so auf der Ebene positioniert sein, wie die Animation vorher abgelaufen ist, damit später die Funken synchron mit dem Ausblenden der Ebene laufen.
* Fügen Sie in die neue Szene eine Ebene ein (Add->Mesh->Plane).
* Skalieren Sie die Ebene etwa auf die doppelte Größe - so groß wie sie Sie eben für die endgültige Einstellung benötigen.
Das Hauptproblem ist nun, die Textur genau passend auf die Ebene zu bringen. Wir werden die Ebene mit UV-Koordinaten versehen, die Ebene dann dem Seitenverhältnis der Textur anpassen, und schließlich mit den UV-Koordinaten die genaue Positionierung vornehmen.
* Wechseln Sie in den Draw Type Textured (Abb. 4a).
* Splitten Sie das 3D-Fenster, und öffnen Sie in einem Bereich den UV-Image Editor (siehe auch das UV-Tutorial.
* Wechseln Sie in den Edit-Modus der Ebene.
* Unwrappen Sie die Ebene (Mesh->UV Unwrap).
* Laden Sie im UV-Image Editor ein Bild der Alpha-Map (nicht das erste, damit man erkennen kann, wie die Alpha-Map verläuft).
Normalerweise passiert es mir immer, dass die Textur nicht so orientiert ist, wie ich das eigentlich möchte.
* Aktivieren Sie das Schloss-Icon in der Werkzeugleiste des UV-Image Editors (Update other windows in real time).
* Rotieren Sie die UV-Vertices im UV-Editor so lange, bis die Textur passt (z.B. bei gehaltener Strg-Taste um 180°).
    Alternatives Vorgehen: Drücken Sie mit dem Cursor im 3d View Strg - F und wählen im Menü den Eintrag «UV Rotate». Das Bild rotiert in der 3d Ansicht um 90 Grad. Möchten Sie in die Gegenrichtung rotieren, halten Sie beim Klicken auf UV Rotate die Umsch Taste gedrückt. Wiederholen Sie diese Aktion so oft, bis das Bild seine richtige Position erreicht hat. Bei dieser Aktion werden nicht die Vertices verschoben, sondern nur die UV-Textkoordinaten in Bezug auf das Bild.
* Wechseln Sie in den Objekt Modus der Ebene.
* Geben Sie der Ebene ein neues Material und nennen dieses Rust.
* Wählen Sie den fünften Textureslot aus und fügen eine neue Textur hinzu. Nennen Sie diese AlphaMap mit den Parametern:
** Map Input: UV
** Map To:
*** Alpha
*** Spec
*** Nor
*** NoRGB
*** DVar: 0
Damit (Abb. 4b) erreichen wir, dass die weißen Pixel der Textur den Alpha-Wert und den Spec-Wert des Materials auf Null setzen (DVar). Da die Textur RGB-Farben liefert, wir aber einen Intensitätswert brauchen, muss NoRGB aktiviert werden. Wir brauchen keine RayTransp, da der Welthintergrund sowieso schwarz ist. Mit ZTransp geht es nicht, da die Halos vor Materialien mit ZTransp nicht gerendert werden (wohl ein Bug in der Version 2.48a von Blender). Mit Nor erzeugen wir gleich einen 3D-Effekt.
* Wechseln Sie in die Texture-Buttons.
* Typ: Image Texture
* Laden Sie das erste Bild der Alpha-Map Folge.
** Image: Sequence
** Frames: 150
** Map Image: Extend (Abb. 4c)
Nun passen wir die UV-Koordinaten an.
* Object->Transform->Scale to Image Aspect Ratio. Dies skaliert die Seitenlängen der Ebene automatisch auf das Seitenverhältnis der verwendeten Bilder (siehe auch UV-Tipps und Tricks).
* Lassen Sie die Animation im 3D-Fenster von Frame 1 bis Frame 100 noch einmal ablaufen, damit Partikel emittiert werden. Brechen Sie in Frame 100 mit Leertaste ab.
* Wechseln Sie in den Edit-Modus der Ebene. Skalieren Sie die UV-Koordinaten im UV-Editor bis die Textur zur Partikelspur genau passt.
* Wechseln Sie schließlich wieder in den Objekt-Modus.

## Material für die Ebene

Die Ebene sollte nun mit einem Material versehen werden. Um das Material beurteilen zu können, werden wir zunächst die Kamera neu ausrichten, anschließend auf die Ebene eine Textur aufbringen und einige Materialeinstellungen vornehmen. Wenn Sie bereits ein gutes Metall-Material besitzen, können Sie dieses natürlich direkt auf die Ebene anwenden, und müssen anschließend nur noch die Alpha-Textur von oben anwenden.
* Wählen Sie die Kamera aus.
* Schalten Sie Orthografic in den Camera-Buttons aus.
* Positionieren Sie die Kamera nach Wunsch.
* Wählen Sie die Ebene aus.
** Im ersten Textureslot habe ich die unten verlinkte Rost-Textur als Image-Textur verwendet.
*** Map Input: Orco, SizeX/Y je 0.5. Die Größenänderung dient dazu, einen größeren Teil der Textur auf das Bild zu bringen. Das hängt aber natürlich von der Größe des Kameraausschnitts und der Textur ab.
*** Map To: Col/Nor
** Im zweiten Textureslot habe ich eine Stucci Textur auf Spec gemappt.
*** Diese verkürzte Sprechweise bedeutet: Textureslot auswählen. Map To Spec anstellen, Col ausstellen, in die Texture-Buttons wechseln, dort Textur-Typ Stucci auswählen.
** Die Specularity wird also von einer Textur bestimmt, und zwar hochgesetzt (DVar=1). Auf dem Shaders-Panel sollte daher die Specularity auf den kleinsten Wert gestellt werden, den das Material aufweisen soll (z.B. 0.08).
Sollten Sie zwischendurch einen Proberender gemacht haben, sehen Sie natürlich, dass die Partikelspur des Würfels noch da ist.
* Den Würfel brauchen wir nicht mehr, den dürfen Sie löschen. In der Scene Cutter verwenden wir ja die bereits erzeugte AlphaMap.
Texturen werden mit OSA (Antialiasing) leicht unscharf, für unseren Zweck verwenden wir statt der voreingestellten Gauss-Methode besser Mitch oder CatRom (siehe Anti-Aliasing).
* Stellen Sie auf dem Render-Panel als AntiAliasing-Filter CatRom ein.
Wir brauchen für die Animation ein neues Ausgabeverzeichnis, um nicht die vorher erzeugte AlphaMap zu überschreiben.
* Stellen Sie auf dem Ouput-Panel als Ausgabeverzeichnis "//Render/" ein.

## Beleuchtung durch den Schweißbrenner

Um den Schweißbrenner selbst leuchten zu lassen, parenten wir eine Lampe an die Sphere, und animieren die Energie der Lampe.
* Wechseln Sie in Frame 1.
* Wählen Sie die Sphere aus.
* Setzen Sie den 3D-Cursor auf die Sphere. Object->Snap->Cursor to Selection
* Add->Lamp->Lamp
* Wählen Sie zusätzlich zur Lampe die Sphere aus.
* Object->Parent->Make Parent->OK
* Wählen Sie die Lampe aus, und bewegen Sie sie etwas nach oben (also in positive Z-Richtung). Die Beleuchtung soll von den Funken ausgehen, nicht von der Mitte des Lochs.
Ich finde es umständlich, die Energie der Lampe durch setzen von Ipo-Keys in den Lamp-Buttons einzustellen, sondern mache das lieber direkt im Ipo-Fenster.
* Wechseln Sie in einem Fenster in den Ipo Curve Editor.
* Wechseln Sie den Ipo-Typ auf Lamp.
* Aktivieren Sie mit Links-Klick den Energ-Kanal rechts in der Palette des Ipo-Fensters.
* Mit gehaltener Strg-Taste erzeugen Sie durch Links-Klick im Ipo-Fenster Punkte auf der Ipo-Kurve.
Diese Werte dürfen gerne auch größer als 1 sein. Allerdings sollte der letzte Maximalwert in Frame 100 erreicht sein, und bis Frame 105 deutlich abnehmen. Die Funken werden nur noch in Frame 100 emittiert, und leben bis Frame 105. Dann glüht das Metall noch etwas nach.
Ihr Ergebnis könnte so ähnlich aussehen wie meins in Abb. 6. Wenn die Ausschläge nicht groß genug sein sollten, kann man die gesamte Ipo-Kurve noch an der Y-Achse skalieren.

## Realistischere Funken

Die Line Visualisierung kann im Verlauf der Partikellebensdauer animiert werden, wenn man Halo für das Material aktiviert. Man könnte noch die Farbe von weiss zu rot animieren. Dies zeige ich an dieser Stelle aber nicht, die Vorgehensweise ist genauso wie für den Rauch wenn Sie das tun möchten.
Wir werden aber trotzdem ein besseres Material verwenden (Abb. 7):
* Geben Sie der Sphere ein Material, nennen Sie dieses Sparks.
* Aktivieren Sie Halo auf dem Links and Pipelines-Panel.
* Setzen Sie die RGB-Farbe für Halo auf weiß.
* Aktivieren Sie auf dem Shaders-Panel Lines/X Alpha/Shaded.
* Halo Size: 0.1
* Add: 0.8

## Rauch

Wir verwenden Partikel mit einer einfachen Textur, und blenden diese Textur im Laufe der Lebensdauer der Partikel (also für jedes Partikel einzeln in seiner eigenen Lebensdauer) aus. Man könnte zwar ein zweites Partikelsystem auf der Sphere erzeugen, aber die Material-Ipos sind für Multimaterial leider nicht unabhängig voneinander. Daher duplizieren wir die Sphere und geben ihr ein neues Partikelsystem.
* Duplizieren Sie die Sphere mit Object->Duplicate. Den Path-Constraint hat unsere neue Sphere bereits.
* Löschen Sie das Sparks-System auf der neuen Sphere.
* Erzeugen Sie ein neues Partikelsystem. Nennen Sie dieses Smoke.
* Amount: 300
* Emit from: Random/Verts
* Initial velocity:
** Object: 0.02
** Normal: 0.1
** Random: 0.01
* AccZ: 0.05
* Diese Partikelsystem wir wieder gebakt.
* Wechseln Sie in die Material-Buttons.
* Erzeugen Sie ein neues Material und nennen dieses Smoke.
* Alpha: 0.034 Diese Einstellung macht den Rauch schön durchsichtig.
* Fügen Sie in Frame 1 einen Ipo-Key für Alpha ein. Wechseln Sie in Frame 100. Stellen Sie Alpha auf 0.0, und fügen den zweiten Ipo-Key ein.
Nun wird der Rauch in der Animation für jedes Partikel innerhalb der Lebenszeit der Partikel ausgeblendet.
* Halo
** Halo Size: 0.224
** Hard: 12
** Add: 0.014
** Halo Tex Dies ist die entscheidende Einstellung, damit verwenden wir eine Textur für die Form des Halos.
** X Alpha
* Erzeugen Sie eine neue Textur, auch diese können Sie Smoke nennen.
* Texture Type: Image
* Laden Sie ein Bild mit zufälligen, rauchähnlichen Strukturen, wie das aus Abb. 8b.
Geht das Ausblenden zu schnell, oder ist die Textur zu durchsichtig / undurchsichtig, ändern Sie die Alpha-Animation.
Sie sehen, auch wenn wir nur einige wenige Objekte und Materialien verwenden, ist es extrem hilfreich, wenn man alle Objekte usw. vernünftig benennt.

## Nachglühen

Zum Abschluss erzeugen wir eine weitere animierte Textur, die das Nachglühen der Stahlplatte nach dem Schneiden simulieren soll.
* Wechseln Sie zur Szene AlphaMap.
* Fügen Sie eine neue Szene wieder als Full Copy hinzu.
* Nennen Sie diese Szene Glow.
* Tragen Sie im Output-Panel in den Render-Buttons das Ausgabeverzeichnis "//Glow/" ein.
Die hier erstellte Textur soll schöne Teiltransparenzen haben.
* Daher wählen wir ein anderes Ausgabeformat auf dem Format-Panel, nämlich RGBA. Dann wird in der PNG-Datei auch der Alpha-Kanal gespeichert (also die Transparenz).
Mit der Einstellung Premul auf dem Render-Panel wird der Welthintergrund volltransparent, und die Partikelspur teiltransparent gespeichert.
Wir verwenden das vorhandene Partikelsystem, ändern aber die Materialeinstellungen.
* Nennen Sie das Material des Würfels Glow.
* Erhöhen Sie die HaloSize auf 0.04. Unsere neue Textur soll etwas größer als der Ausschnitt der Platte sein, sonst ist es gar nicht sichtbar.
Jetzt animieren wir das Material des Halos. Auch dies funktioniert wieder nur, weil die Partikel Point-Visualisierung haben.
* Wechseln Sie in Frame 1.
* Setzen Sie einen Ipo-Key für die RGB-Farbe (hier weiß).
* Wechseln Sie in Frame 3.
* Ändern Sie die Halo-Farbe zu 1/1/0.42 (hellgelb). Setzen Sie den nächsten Ipo-Key.
* Wechseln Sie in Frame 6. Ändern Sie die Halo-Farbe zu 1/0/0 (dunkelrot). Setzen Sie den nächsten Ipo-Key.
* Wechseln Sie in Frame 11. Ändern Sie die Halo-Farbe zu 0/0/0 (schwarz). Setzen Sie den nächsten Ipo-Key.
Die Partikelspur wird also innerhalb von 11 Frames ausgeblendet.
* Rendern Sie die Animation.
* Wechseln Sie zurück zur Szene Cutter.
* Wählen Sie die Ebene aus.
* In den dritten Textur-Slot der Ebene wird nun die gerade erstellte animierte Textur geladen.
** Add New. Nennen Sie die Textur Glow.
** Map Input: UV
** Map To: Col/Emit
* Texture Type: Image
** Laden Sie das erste Bild aus dem Unterverzeichnis Glow.
** Aktivieren Sie Sequence.
** Frames: 150
** Extend
Die Einstellungen sind also für die Textur identisch mit denen der AlphaMap ('Abb. 4c), außer natürlich dem Verzeichnis in dem sich die Bilder befinden.
In Abb. 9b finden Sie einen fertigen Frame der Animation. Für das Video in Abb. 1 habe ich die Animation leicht verändert noch einmal gemacht, insbesondere habe ich die Alpha-Map mit etwas regelmäßigeren Rändern versehen, den Funken-Emitter etwas kleiner skaliert, die Farbe leicht geändert und eine andere Kameraperspektive verwendet.
Anregungen, Kritik und Lob schreiben Sie bitte auf die Kommentarseite des Artikels, Korrekturen können Sie auch gerne direkt im Artikel vornehmen.

## Links

* Rost-Textur