“Компьютерре” уже доводилось писать про генераторы ландшафтов, генераторы растений а также генераторы городов в компьютерной графике. Имеется ещё одна область визуализации, где время от времени не редкость крайне полезно применение вычислительных методов, – облака.
В компьютерных играх многие годы употреблялись плоские и далеко не всегда кроме того анимированные изображения небосвода. В старом шутере Heretic, к примеру, очевидно употреблялась фотография:
В Quake I-III употреблялись анимированные текстуры, в каковые был одет скайбокс (skybox). В ставшем уже давно классикой The Elder Scrolls III: Morrowind небо потрясало всех своим реализмом, притом что в том месте очевидно употреблялся весьма ограниченный комплект анимированных текстур (как минимум кое-какие из которых представляли собой фотографии большого разрешения). Ну и без того потом.
Сейчас требования к реализму в играх уже совсем другие; а вдруг речь заходит о CG-сценах в кино и на телевидении, то они в том месте были вторыми неизменно. Возможно применять готовые фото- и материалы с обработкой в Adobe After Effects, к примеру (и значительно чаще так и делают), но данный метод не годится, в случае если требуется тотальный контроль над тем, как должны смотреться облака (с какой стороны освещены, какого именно оттенка быть и без того потом). Ну и, наконец, нужных фотографий может элементарно не появляться под рукой.
Самый несложный и распространённый метод визуализации туч без особенных ухищрений – это применение шума Перлина – математического метода по генерированию процедурной текстуры псевдо-случайным способом. Именно на нём основаны “облачные” эффекты – в Photoshop, GIMP, Paint.NET и других – и процедурные текстуры, применяемые, думается, во всех мыслимых графических редакторах, включая трёхмерные.
Шум Перлина, либо процедурные тучи (пакет Paint.NET). В Photoshop и GIMP употребляется тот же метод, так что всё выглядит весьма похоже.
Шум Перлина употребляется, помимо этого, для визуализации ландшафтов, давая очень реалистичные результаты. Вот два несложных примера применения процедурной “облачной” текстуры на сфере в Blender 2.49: во втором случае на базе данной текстуры рассчитывается ещё и карта нормалей, чем имитируется её рельефность.
Процедурная облачная текстура Та же текстура с нормалями
На том же шуме Перлина всё держалось и в незабвенном Terragen 0.9, что сейчас именуется Terragen Classic. В общедоступной версии облака, но, смотрелись довольно плоскими, даже в том случае, если был выставлен флажок 3D, вдобавок был доступен лишь один слой. В своё время Terragen имел возможность давать очень фотореалистичные изображения, в особенности в случае если к нему доходить умело:
Облака в Terragen Classic. Создатель изображения — Люк Бьянко. Ссылка с изображения ведёт на галерею на сайте разработчиков на данный момент. Создатель изображения — Фрэнк Басински (Frank Basinski). Полноразмерный оригинал — по ссылке.
Но это не идёт ни в какое сравнение с тем, что разрешает с тучами делать Terragen 2:
Облака в Terragen 2. Создатель — Люк Бьянко. Облака в Terragen 2 (создатель — Ральф Виллетто)
Terragen 2, но, – коммерческий продукт, стоит 299 долларов.
Коммерческим есть и применяемый в самом важном кинематографе пакет Vue (более 700 долларов за лицензию), что разрешает делать вот такие вот штуки:
Создатель ролика показывает, что рендерил он на компьютере с четырёхъядерным процессором Core i7-920 2,67 ГГц, с 4 Гбайтами памяти, и целый рендер занял приблизительно 14 часов (900 кадров). В общем, мало не покажется.
Отжирают все такие расчёты очень и очень большое количество. Но, как посоветовали в ЖЖ-сообществе ru-vfx.livejournal.com, Vue интегрируется с Autodesk Maya и 3ds Max.
В Maya и Max, не смотря ни на что, имеются и собственные средства. Ниже представлен видеоурок создания туч в Maх (действительно, весьма продолжительный).
(Снова же, благодарю за ссылку участникам сообщества ru-vfx.)
А вот что разрешает делать сногсшибательный модуль пакета Maya – Fluids. Не обращая внимания на его наименование, этот модуль рекомендован не только для имитации жидкостей, но и для визуализации газов, дыма, снега, пара, тумана, огня и всего другого – зыбкого, текучего и заполняющего целый предоставленный количество. Вот какие конкретно получаются в том месте облака:
Для пакета Blender предположений 2.4х и 2.5х (со всеми их большими различиями) кроме этого существовали скрипты называющиеся Cloud Generator – действительно, радикально меж собой различающиеся. Потому, что лишь в Blender 2.5 показалась помощь “объёмного” материала, благодаря которому возможно “честно” визуализировать всякие дымно-газовые среды, визуализировать волюметрические тучи до этого было (фактически) нереально. Скрипт Alan’s Cloud Generator разрешал достаточно лихо имитировать облачную среду посредством бильбордов (плоских затекстурированных поверхностей, неизменно обращённых к зрителю, правильнее, к камере), и надувательство получалось очень убедительным, а также при анимации:
C помощью Blender 2.58 (в который зашит генератор туч) возможно делать вот такие вот вещи, но с ним, как говорится, без поллитры не разобраться: трудится он с эпичной неторопливостью, и нужно будет потратить часы, в противном случае и недели и дни, дабы добиться какое количество-нибудь вменяемых результатов. Таких, к примеру:
Cloud Generator в Blender 2.58
И, как и везде в компьютерной графике, ключевую роль в реалистичности играется освещение.