Вектор положения отображает положение вершины в локальном пространстве, что означает, что центр четырехугольника находится в положении (0,0).
Поэтому, если вы хотите применить эти изменения только к вершинам на левой стороне, вам необходимо проверить, является ли координата x вершины отрицательным x-пробелом.
void main() {
vUv = uv;
vec3 pos = position.xyz;
if ( pos.x < 0.0 ) {
pos.x += noiseFunction(vec2(pos.y, time));
}
// to avoid conditional branching, remove the entire if-block
// and replace it with the line below
// pos.x += noiseFunction(vec2(pos.y, time)) * max(sign(-pos.x), 0.0);
gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);
}
IЯ использовал выражение if, чтобы прояснить, что я имел в виду, но на самом деле вы должны избегать этого.Таким образом вы предотвратите условное ветвление на GPU.