I am trying to make a 'sine wave' shader and I would like to know how to convert VERTEX from local space to world space. I have tried to do that with this piece of code:
void vertex() {
world_pos = (WORLD_MATRIX * vec4(VERTEX, 0.0, 1.0)).xy;
VERTEX.y += sin(TIME * speed + world_pos.x * amp) * amount;
}
However the 'wave' is affected when I move the viewport.

I would like to know what I'm doing wrong and how to fix this.
Thanks in advance.