Arvores no balanço do vento pt1

Arvore balançando com shader
Tive esta ideia quando vi um gameplay de The Last of Us e reparei no movimento das árvores.
O shader é bastante simples, um movimento senoide controlado por uma variável de escala.

Arvore balançando com shader GIF
Para garantir que o shader mude apenas a porção certa da malha usei as cores dos vértices, onde o canal R varia de 0 a 255 (0 = nenhuma influência até 255 = total influência).

Vertex Painting

Bom, o shader ainda precisa de alguns ajustes, mas é por este caminho. Aos interessados, segue o shader até agora:


[VERTEX SHADER]
uniform float displace = 1.0;

float s = sin(clamp(TIME, 0.0, 1000.0));
float d = COLOR.r*displace*s;
VERTEX.x += d;
VERTEX.z += d;

[FRAGMENT SHADER]
uniform texture imagem;

DIFFUSE = tex(imagem,UV).rgb;
// folhas
//DIFFUSE_ALPHA = tex(imagem,UV).rgba;

Comentários