Шум Перлина: реализация отражения в воде в реальном времени
Однажды я побывала повелительницей водной стихии. Была готова анимированная картинка ночного города с мерцающими неоновыми огнями и блуждающими светом прожекторов. В реальном времени нужно было сделать отражение этой анимации в воде.
На помощь пришёл шум Перлина (алгоритм псевдослучайной генерации чисел). Обычно он используется для создания облаков, дыма, тумана, огня и многого другого.
Чтобы сделать движение воды более естественным, я решила разбить пространство, предполагавшееся для воды, на 3 условные полоски: ближнюю (относительно зрителя), среднюю и дальнюю, которая находится у самого берега. Это создало эффект того, что около пользователя вода колышется более интенсивно, нежели чем у берега вдалеке. Причём свет при движении был актуальным как на самой анимированной картинке, так и в отражении в воде.
P. S. К сожалению, видео не прикрепляется.