Verwendung von Shadern

TL;DR

Shader sind kleine Grafikprogramme, die auf Ihrer GPU laufen und generative visuelle Effekte in Echtzeit erzeugen. Beim projection mapping sorgen sie für unendlich viele, dynamische Texturen, ohne dass umfangreiche Videodateien erforderlich sind. Mit Software wie HeavyM können Sie Standardformate wie ISF ganz einfach importieren und generative Visuals bearbeiten, ohne dass dafür Programmierkenntnisse erforderlich sind.

Was ist ein Shader?

Ein Shader ist eine Art von Computerprogramm, das speziell für die Ausführung auf einer Grafikprozessoreinheit (GPU) entwickelt wurde. Der Begriff ‘Shader’ leitet sich von ‘shade’ (Schatten) ab, da Shader ursprünglich vor allem dazu dienten, Schatten und Reflexionen in der 3D-Grafik zu simulieren. Heutzutage jedoch, Shader werden für eine Vielzahl von Aufgaben der Grafikverarbeitung eingesetzt, vom Anwenden von Texturen und Farben bis hin zur Erzeugung komplexer Spezialeffekte.

Shader auf einem sehr niedrigen Niveau arbeiten, Das bedeutet, dass sie direkte und präzise Kontrolle über die einzelnen Pixel haben, aus denen ein Bild oder Video besteht. Sie können Bilddaten sehr schnell und mit minimalem Ressourcenaufwand bearbeiten, was sie besonders nützlich für Echtzeit-Grafikanwendungen, wie beispielsweise Videospiele, Virtual Reality und Video-Mapping.

Die verschiedenen Arten von Shadern

Es gibt verschiedene Arten von Shadern, darunter Vertex-Shader, die 3D-Datenpunkte (Vertex) bearbeiten, Geometrie-Shader, die aus diesen Punkten neue Formen erzeugen, und Fragment-Shader (auch Pixel-Shader genannt), die die endgültige Farbe jedes Pixels auf dem Bildschirm bestimmen. Shader werden in der Regel in speziellen Programmiersprachen geschrieben, wie zum Beispiel GLSL (OpenGL Shading Language) oder HLSL (High-Level Shading Language) für DirectX.

Pixel-Shader oder Fragment-Shader

Der Fragment-Shader oder Pixel-Shader ist ein Shader, der dazu dient, die Farbe jedes einzelnen Pixels zu berechnen. Die Funktion nimmt die Daten jedes Pixels im Bild (Position, Texturkoordinaten, Farbe) als Eingabe entgegen und gibt dessen Farbe zurück.

Diese Shader werden für Sie bei der Verwendung mit HeavyM am interessantesten sein. Sie werden in der Regel .FRAG-Dateien oder .FS-Dateien im Falle des ISF-Formats. Das ISF-Format bietet einen Standard für GLSL-Fragmente Shader, wodurch sie von interaktiven Anwendungen leichter ausgewertet werden können.

Vertex-Shader

Vertex-Shader dienen dazu, Scheitelpunkte in Pixel umzuwandeln.

Das sind .VS-Dateien die manchmal zum Pixel-Shader gehören, denselben Namen tragen und sich im selben Ordner befinden müssen.

HeavyM-Shape-Effekt-Shader

Wenn Sie auf die roten Symbole auf der rechten Seite der HeavyM-Benutzeroberfläche klicken, erhalten Sie Zugriff auf Effektkategorien, die sich automatisch an die gezeichneten Formen anpassen. Diese Effekte sind mit den Gruppen im Ebenenbedienfeld auf der linken Seite verknüpft. Alle Formen innerhalb einer Gruppe haben das gleiche Aussehen. Um unterschiedliche Effekte auf verschiedene Formen anzuwenden, müssen Sie zusätzliche Gruppen erstellen und diesen Formen hinzufügen.

Derzeit ist es nicht möglich, den Code bestehender Effekt-Shader in dieser Kategorie hinzuzufügen oder zu ändern.

Shader zur Bildgenerierung

Sie können Shader zur Bilderzeugung als Quellen in dem Fenster hinzufügen, das über das weiße Symbol in der vertikalen Symbolleiste auf der rechten Seite aufgerufen werden kann. Diese Shader erfordern die Erstellung eines Players, um angezeigt zu werden. Verknüpfen Sie anschließend die Quelle mit dem Player, indem Sie auf das zielförmige Symbol klicken. Shader zur Bilderzeugung haben keine Standarddauer, da es sich um Programme handelt, die in einer Schleife ausgeführt werden. Sie können jedoch die Anzeigedauer der Quelle anpassen.

Derzeit ist es nicht möglich, den Code bestehender Effekt-Shader in dieser Kategorie hinzuzufügen oder zu ändern.

Shader zur Bildgenerierung

Sie können Shader zur Bilderzeugung als Quellen in dem Fenster hinzufügen, das über das weiße Symbol in der vertikalen Symbolleiste auf der rechten Seite aufgerufen werden kann. Diese Shader erfordern die Erstellung eines Players, um angezeigt zu werden. Verknüpfen Sie anschließend die Quelle mit dem Player, indem Sie auf das zielförmige Symbol klicken. Shader zur Bilderzeugung haben keine Standarddauer, da es sich um Programme handelt, die in einer Schleife ausgeführt werden. Sie können jedoch die Anzeigedauer der Quelle anpassen.

Verarbeitung von Shadern auf den Playern

Sie haben die Möglichkeit, Bildbearbeitungseffekte auf den Player anzuwenden. Wählen Sie dazu den Player aus und fügen Sie im Eigenschaftenfenster unten links über die Schaltfläche „+“ Effekte hinzu. Die Effekte werden nacheinander hinzugefügt. Jeder Player ist unabhängig, sodass sich die Quell- und Bearbeitungseffekte zwischen den Playern unterscheiden, selbst wenn sich die Player in derselben Gruppe befinden.

Shader importieren oder erstellen

Wo findet man Shader?

Man muss nicht programmieren können, um Shader mit HeavyM zu nutzen. Zusätzlich zu der bereits in der Software enthaltenen Bibliothek, Es gibt Plattformen, auf denen man neue Shader finden kann. ohne sie selbst erstellen zu müssen. Die Community der Shader-Entwickler wächst rasant, und Oftmals kannst du die von ihnen geteilten Werke für nichtkommerzielle Projekte nutzen.

So finden Sie .FS-Shader: https://www.interactiveshaderformat.com/

So finden Sie .FRAG-Shader: http://glslsandbox.com/ und https://www.shadertoy.com/

Hinweis: .FRAG-Dateien werden in HeavyM nicht erkannt. Sie müssen in das .ISF-Format konvertiert werden; eine Anleitung dazu finden Sie weiter unten.

Bitte überprüfen Sie unbedingt die Nutzungsrechte in der Lizenz, die in der Regel am Anfang des Shader-Codes angegeben sind. Sofern keine besonderen Hinweise vorliegen, gilt standardmäßig das Urheberrecht. Wir empfehlen daher dringend, sich mit dem Autor abzustimmen, wenn Sie beabsichtigen, den Shader für kommerzielle Zwecke zu nutzen.

Shader importieren

Wie bereits erwähnt, In HeavyM gibt es zwei Hauptkategorien von Shadern: Generierungs-Shader und Verarbeitungs-Shader. Mit HeavyM können Sie Shader aus diesen beiden Kategorien ganz einfach kombinieren. HeavyM bietet Standard-Shader in den Registerkarten „Bibliothek“ der einzelnen Shader-Auswahlfenster an. Alle diese Shader liegen im .FS-Format vor und entsprechen somit dem ISF-Standard. Um Ihre eigenen Shader in die Registerkarte „Meine Shader“ zu importieren, Sie müssen diesem Standard entsprechen. Auf diese Weise lassen sich die Parameter Ihrer Shader ganz einfach über die Benutzeroberfläche von HeavyM anpassen.

Möchten Sie andere Shader-Formate in HeavyM importieren? Mit diesen Tools lassen sich Shader ganz einfach konvertieren:

Eigene Shader entwickeln

So erstellen Sie Ihre eigenen Shader, empfehlen wir, das ISF-Format direkt zu verwenden, um die Kompatibilität mit möglichst vielen Anwendungen zu gewährleisten. Der Zweck dieses Artikels besteht nicht darin, die Programmierung in GLSL – der vom ISF-Format verwendeten Sprache – zu vermitteln. Hierfür empfehlen wir die Lektüre der folgenden, sehr umfassenden Websites:

Zunächst einmal jedoch, Sie können gerne die ISF-Website besuchen und vorhandene Shader anpassen. Auf dieser interaktiven Website können Sie die am Shader vorgenommenen Änderungen in Echtzeit verfolgen. Es ist auch möglich, mit einer Basisvorlage zu beginnen.

Der größte Nachteil beim Erstellen und Anpassen von Shadern ist, dass es keine Fehlermeldung gibt. Bei einem Designfehler wird der Shader möglicherweise nicht ausgeführt oder zeigt gar nichts an, was es schwierig macht, die Fehlerquelle zu identifizieren. Daher ist es entscheidend, beim Programmieren äußerst sorgfältig vorzugehen.

Weiter

Umgang mit Reaktionen auf Geräusche und Musik

Dieser Leitfaden wurde verfasst von HeavyM, ein Unternehmen, das sich seit 2013 auf video mapping spezialisiert hat.

Bei Fragen, Anmerkungen, Vorschlägen usw. nutzen Sie bitte dieses Kontaktformular: https://help.heavym.net/hc/requests/new. Eine Antwort wird innerhalb von 24 Stunden garantiert.

Häufig gestellte Fragen (FAQ)

Was ist ein Shader beim video mapping?

Ein Shader ist ein Computerprogramm, mit dem sich Rendering-Effekte auf Grafikhardware mit einem hohen Maß an Flexibilität berechnen lassen. Beim video mapping werden Shader eingesetzt, um dynamische Echtzeit-Texturen und audio-reaktive Visuals direkt auf der GPU zu erzeugen, anstatt vorgerenderte Videoloops abzuspielen.

Was ist das ISF-Format?

ISF steht für „Interactive Shader Format“. Es handelt sich um einen auf GLSL (OpenGL Shading Language) basierenden Standard, der es ermöglicht, generative Visuals problemlos zwischen verschiedenen VJing- und projection mapping software auszutauschen und zu nutzen, wodurch plattformübergreifende Kompatibilität gewährleistet wird.

Muss ich programmieren können, um Shader zu verwenden?

Nein, Sie müssen kein Programmierer sein. Shader werden zwar in einer Programmiersprache (GLSL) geschrieben, aber moderne projection mapping software wie HeavyM ermöglicht es Ihnen, vorgefertigte ISF-Dateien zu importieren oder integrierte Shader-Effekte zu verwenden, indem Sie diese einfach per Drag & Drop auf Ihre Formen ziehen.