Если вы посмотрите в вершинный шейдер, нормализуется sun_pos
.
sun_norm = normalize(sun_pos);
Это означает, что независимо от того, насколько вы увеличиваете позицию Y, это один и тот же вектор.
В этом случае имеет больше смысла регулировать направление солнца, используя пару углов Эйлера (курс, шаг).
Вы можете преобразовать два угла Эйлера в вектор направления, используя следующую формулу.
x = cos(pitch) * cos(heading)
y = sin(pitch)
z = cos(pitch) * sin(heading)