← Zurück zu Software & Tools
VEX (Vector Expression Language) ist Houdinis native, C-ähnliche Skriptsprache, die parallel auf Punkt-, Vertex-, Primitive- oder Voxel-Ebene ausgeführt wird und sowohl Geometrieverarbeitung als auch Shader und Simulationsverhalten steuert.

Rubrik: Software & Tools · Unterrubrik: SideFX Houdini · Niveau: Fortgeschritten


Was ist VEX?

VEX wurde von SideFX als Hochleistungssprache für datenparallele Operationen entwickelt. Die Syntax lehnt sich stark an C an, ist aber auf Vektormathematik und den Zugriff auf Houdinis Geometriedatenmodell spezialisiert. Im Gegensatz zu Python, das für Houdini-Scripting auf Anwendungsebene genutzt wird, läuft VEX direkt im Compute-Thread und ist deutlich performanter.

VEX wird in verschiedenen Kontexten eingesetzt:

KontextAnwendung
SOP (Attribute Wrangle)Geometrie-Attribut-Manipulation
VOP (Volume Wrangle)Volume-Shading und VDB-Bearbeitung
DOP (Microsolver)Simulations-Verhalten anpassen
Shader (CVEX)Oberflächen-, Displacement- und Volume-Shader
ParticlePartikelverhalten in Partikelsystemen

Erklärung

Grundsyntax

```vex // Einfaches VEX-Snippet im Attribute Wrangle (SOP-Kontext) // Bewegt jeden Punkt auf Basis seiner Y-Position

float amp = 0.5; float freq = 2.0; v@P.y += sin(v@P.x freq + @Time) amp; ```

Wichtige Syntaxelemente:

  • @P, @N, @Cd → Zugriff auf built-in Attribute (Position, Normal, Farbe)
  • v@myAttr → Zugriff auf selbst erstellte Vector-Attribute
  • i@group_name → Group-Membership als Integer-Attribut
  • f@, v@, i@, s@ → Typ-Präfixe für Float, Vector, Integer, String

Kontextvariablen

Im SOP-Kontext (Point Wrangle) sind folgende Variablen automatisch verfügbar:

  • @ptnum – Index des aktuellen Punktes
  • @numpt – Gesamtanzahl der Punkte
  • @Time – Aktuelle Zeit in Sekunden
  • @Frame – Aktuelles Frame
  • @opinput0 – Erster Input-Geometrie-Stream

Wichtige Built-in-Funktionen

FunktionBeschreibung
noise(v)Perlin-Noise für Vektor
fit(val, a, b, c, d)Remapping-Funktion
rand(seed)Pseudozufallswert
length(v)Betrag eines Vektors
cross(a, b)Kreuzprodukt
dot(a, b)Skalarprodukt
normalize(v)Normierter Vektor
addpoint(geohandle, pos)Neuen Punkt erstellen
setpointattrib(...)Attributwert setzen
nearpoints(geohandle, pos, rad)Nachbarpunkte suchen

Wrangle-Nodes

Der Attribute Wrangle (SOP) und sein Verwandter, der Volume Wrangle (SOP), sind die primären Nodes für VEX-Code in SOP-Netzwerken. Daneben gibt es:

  • Point Wrangle – läuft über alle Punkte
  • Primitive Wrangle – läuft über alle Primitives
  • Vertex Wrangle – läuft über alle Vertices
  • Detail Wrangle – läuft einmal über die gesamte Geometrie

VEX vs. Python in Houdini

KriteriumVEXPython
GeschwindigkeitSehr hoch (parallelisiert)Mittel
AnwendungsbereichGeometrie, Shader, SimulationUI, Pipeline, Asset-Management
LernkurveMittelGering
DebuggingEingeschränktGut (Python Shell)

Beispiele

Beispiel 1 – Zufällige Skalierung: ``vex // Jedem Punkt eine zufällige pscale zuweisen f@pscale = fit01(rand(@ptnum), 0.5, 2.0); ``

Beispiel 2 – Gradient-Farbe: ``vex // Farbgradient basierend auf Y-Position float minY = -2.0; float maxY = 2.0; float t = fit(@P.y, minY, maxY, 0.0, 1.0); v@Cd = lerp({1,0,0}, {0,0,1}, t); ``

Beispiel 3 – Wave-Deformation: ``vex // Sinusförmige Wellendeformation float freq = chf("frequency"); float amp = chf("amplitude"); v@P.y += sin(v@P.x * freq + @Time * 2.0) * amp; ` Die chf()`-Funktion erstellt automatisch einen Float-Parameter-Slider im Parameter-Panel.


In der Praxis

VEX ist in professionellen Houdini-Pipelines unverzichtbar. Häufige Anwendungsfälle:

  • Attribut-Erstellung für Simulationssteuerung (z. B. Flammen-Intensität aus Geometrie-Curvature)
  • Custom Solver in DOP-Netzwerken für FLIP- oder Pyro-Simulationen
  • Prozedurale Shader im CVEX-Kontext für Karma
  • Partikel-Verhalten in POP-Netzwerken

Vergleich & Abgrenzung

VEX ist am ehesten mit GLSL (OpenGL Shading Language) oder HLSL (DirectX) vergleichbar: eine Sprache, die datenparallel auf Arrays von Elementen (Punkte, Voxel, Pixel) läuft. Im Gegensatz zu allgemeinen Programmiersprachen wie Python fehlt VEX Konzepte wie Klassen oder Datei-I/O – dafür ist es erheblich schneller in der Ausführung.


Häufige Fragen (FAQ)

Muss ich VEX lernen, um Houdini effizient zu nutzen? Für einfache Setups nicht zwingend. Sobald jedoch individuelle Simulationssteuerung, komplexe Geometrieverarbeitung oder Shader-Anpassungen nötig sind, ist VEX-Wissen unverzichtbar.

Gibt es eine IDE oder Debugging-Unterstützung für VEX? Houdini bietet einen integrierten VEX-Editor mit Syntax-Highlighting. Debugging erfolgt primär über printf()-Ausgaben in der Houdini-Konsole und das Spreadsheet zur Attribut-Inspektion.

Ist VEX mit C++ kompatibel? Syntaktisch ähnlich, aber nicht identisch. VEX hat keine Pointer, kein Speichermanagement und spezialisierte Built-ins. HDK (Houdini Development Kit) hingegen nutzt echtes C++.


Verwandte Einträge


Weiterführend

  • SideFX (2024): VEX Language Reference. URL:
  • Pal, J. (2022): VEX for Houdini Artists. Independently Published.
  • Rebelway (2023): Houdini VEX and Python Programming. Online-Kurs.
  • SideFX (2024): CVEX Shaders. URL:
← Zurück zu Software & Tools
Infotag · 13. Mai · 15:00 Uhr · Vor Ort

Sei am Mittwoch dabei.
Bring Eltern oder Freunde mit.

Ein halber Nachmittag, der dir drei Jahre Klarheit bringen kann. Kostenlos, unverbindlich, ehrlich.

  • Rundgang durch Studios, Schnitträume und Tonstudio
  • Echte Absolventenfilme sehen
  • 1:1-Beratung zu Bewerbung & BAföG
  • Studierende direkt fragen
  • Kaffee, kein Sales-Pitch
  • Auch online möglich

Platz beim Infotag reservieren

Dauert 30 Sekunden. Bestätigung per E-Mail.
100 % kostenlos · keine Verpflichtung · jederzeit absagbar