Skip to main content

VEX vs Expressões do AE

Tip

VEX é a linguagem de shading e dados do Houdini. Se você já escreve expressões no after, já tem a mentalidade certa: a sintaxe é parecida com C, e a lógica de “valor por ponto” é o que muda tudo.

o que é VEX

VEX (Vector Expression) é uma linguagem compilada criada pela SideFX para o Houdini. Ela roda em paralelo: em vez de processar um ponto por vez, processa todos os pontos simultaneamente na GPU/CPU.

Isso é o que torna o Houdini absurdamente rápido para geometria procedural.

VEX vs JavaScript (expressões do after)

expressões after (JS)VEX (Houdini)
paradigmauma propriedade por veztodos os pontos em paralelo
variável de tempotime@Time
frame atualtime * thisComp.frameRate@Frame
posiçãotransform.position@P
número aleatóriorandom()rand(@ptnum)
condicionalif (x) { } else { }idêntico
loopfor (var i...)idêntico (mas raro)

tipos de dados em VEX

float f = 1.5; // número decimal
int i = 10; // número inteiro
vector v = {1, 0, 0}; // vetor 3D (XYZ)
vector2 v2 = {0.5, 0.5}; // vetor 2D (UV)
vector4 v4 = {1,0,0,1}; // vetor 4D (RGBA)
string s = "hello"; // texto

o wrangle node, onde VEX acontece

No Houdini, você escreve VEX no nó Attribute Wrangle (SOP context). É o equivalente ao campo de expressão do after, mas para atributos de geometria.

O Wrangle roda o código em cada ponto (ou primitiva, ou vértice) da geometria de entrada.

variáveis automáticas

Dentro de um Attribute Wrangle, algumas variáveis já existem:

@P // posição do ponto atual (vector)
@N // normal do ponto atual (vector)
@Cd // cor do ponto atual (vector RGB)
@ptnum // índice do ponto atual (int), como o index do after
@numpt // total de pontos (int)
@Time // tempo atual em segundos (float)
@Frame // frame atual (float)
@id // id único do ponto (int, se existir)

sintaxe básica