Алгоритм генерации света для облаков на платформе iOS

Я хотел бы заполнить фон моего приложения анимированными облаками. Я провел небольшое исследование и наткнулся на алгоритм перлин-шума, который кажется подходящим. Однако даже в первом тесте было чрезвычайно дорого генерировать карту облака 512x512 (2D). Я пробовал симплексный шум, но это не помогло.

Согласно http://freespace.virgin.net/hugo.elias/models/m_clouds.htm генерация облаков выполняется путем добавления нескольких карт шума perlin/simplex. Невозможно сделать это на iPhone в моем приложении: мне нужна плавная графика (мои оптимистичные ожидания - 60 FPS на A4).

Итак, мой вопрос: существует ли более легкий алгоритм для создания анимированных облаков, который не слишком снижает частоту кадров?

Заранее спасибо!

Павел

2 ответа

Решение

Если все, что вы делаете, - это генерирование облаков, вы определенно захотите, чтобы они были предварительно вычислены. Шум Перлина может создавать приятные 2-мерные анимации, проходя через набор трехмерных данных, но вы можете просто прокрутить 2-мерное изображение некоторого шума, или алгоритм, подобный фракталу, генерируется алгоритмом алмазного квадрата. В любом случае, вы, вероятно, должны предварительно вычислить это.

Если вы хотите еще больше вариантов, я бы поэкспериментировал с наложением шумового фильтра на предварительно вычисленные облака.

Предварительно сгенерируйте облака и создайте 2D спрайты, используя базовую анимацию или иным способом. Вы можете тогда оживить это вокруг дешево. Вы можете не получить 60 кадров в секунду, но вы должны приблизиться в зависимости от того, какое сложное движение вы хотите или какие другие анимации происходят в данный момент. В любом случае, это будет быстрее, чем создавать облака самостоятельно.

Другие вопросы по тегам