» it.Tutorial Effects - Mr. Wiggle
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

it.Tutorial Effects - Mr. Wiggle

English | Spanish | Mandarin | Japanese

INDICE: it.Of Effects and Shaders
Precedente: Vertexshader, i Preparativi
Prossimo: Disegnare con le Funzioni


Cominciamo con il celebre MrWiggle, un effetto che distorce una mesh secondo una sinusoide:

Il vertexshader viene richiamato per ogni vertice della mesh. Come hai imparato qui, l'input di un vertexshader sono i dati contenuti nel vertice della mesh che ora viene processata:

vs2ps VS(
    float4 PosO  : POSITION,
    float4 TexCd : TEXCOORD0)
{
...
}

Per il momento ci interessa il vettore PosO, che è la posizione del vertice in questione. Aggiungeremo un offset alla coordinata x del vertice a seconda della posizione verticale (coordinata y):

PosO.x += sin(PosO.y);

Per controllare la sinusoide aggiungiamo qualche parametro:

PosO.x += sin(PosO.y * Frequency + Phase) * Amplitude;

Quindi il vertexshader con gli input sarà così:

float Frequency = 10;
float Phase = 0;
float Amplitude = 0.01;
 
vs2ps VS(
    float4 PosO  : POSITION,
    float4 TexCd : TEXCOORD0)
{
    //dichiara la struttura dell'output
    vs2ps Out;
 
    //offset della coordinata x
    PosO.x += sin(PosO.y * Frequency + Phase) * Amplitude;
 
    //trasforma la posizione
    Out.Pos = mul(PosO, tWVP);
 
    //trasforma le coordinate della texture
    Out.TexCd = mul(TexCd, tTex);
 
    return Out;
}

E di conseguenza la patch sarà simile a questa:

mr wiggle patch

Prossimo: Disegnare con le Funzioni
Precedente: Vertexshader, i Preparativi
INDICE: it.Of Effects and Shaders

anonymous user login

Shoutbox

~10d ago

~19d ago

joreg: Webinar on October 2nd: Rhino meets Realtime with vvvv https://visualprogramming.net/blog/2024/webinar-rhino-meets-realtime-with-vvvv/

~19d ago

joreg: 12-session online vvvv beginner course starting October 7th: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-class/

~24d ago

joreg: Introducing: Support for latest Ultraleap hand-tracking devices: https://visualprogramming.net/blog/2024/introducing-support-for-new-ultraleap-devices/

~27d ago

joreg: 2 day vvvv/fuse workshop in Vienna as part of NOISE festival on Sept. 13 and 14: https://www.noise.ist/vienna

~1mth ago

joreg: New beginner video tutorial: World Cities https://youtu.be/ymzrK7tZLBI

~1mth ago

catweasel: https://colour-burst.com/2023/01/26/macroscopic/ yeah, ' is there anyone who cares about slides anymore...' Well me for a start! :D

~2mth ago

ventolinmono: The ELMO TRV-35 slides into your video feed > https://youtu.be/pcIM9mh1c9k?si=iB4FOfI2D6y0iETy

~2mth ago

joreg: The summer season of vvvv workshops is now complete, but you can still get access to all the recordings: https://thenodeinstitute.org/ss24-vvvv-intermediates/

~2mth ago