Обзор решений для генерации изображений на базе фракталов и аттракторов
Apophysis 2.02 Stable/2.09 Beta
Фракталы (рис. 1) и весьма близкие к ним аттракторы (рис. 2) завораживают и притягивают своей таинственностью. Рассматривая подобные рисунки, можно увидеть переплетающиеся водоросли в толще воды, фантас-тические цветы, заморских птиц, причудливые языки пламени и даже всю Вселенную, хотя иногда вообще сложно понять, на что похоже фрактальное изображение. Большинству людей подобные рисунки нравятся — действует известная магия фракталов.
Рис. 1. Примеры фрактальных изображений, полученных в ChaosPro
Рис. 2. Аттракторы, сгенерированные в среде Chaoscope
Однако популярность фракталов объясняется не только их загадочностью. У фрактальной графики есть вполне практическое применение: компьютерные художники нередко используют такие изображения при создании рекламных проспектов (например, в виде фонового слоя), достигают с их помощью интересных эффектов освещения снимков, накладывая фракталы в качестве одного из слоев в нужном режиме смешивания и с желаемой прозрачностью, и т.п. С применением фракталов можно строить и вполне реалистичные изображения, например облака, снег, деревья и другую растительность, горные ландшафты, поверхность морей и океанов и т.д. Поэтому фрактальные изображения используются в самых разных сферах, начиная от создания обычных текстур для вебстраниц, фонов рабочего стола, заставок, фантастических фоновых изображений для рекламной графики и заканчивая фантастическими ландшафтами для компьютерных игр и книжных иллюстраций.
Желающие попрактиковаться в создании фракталов могут воспользоваться онлайновым генератором фракталов, например Fractalposter (http://www.fractalposter.com/fractal_generator.php; рис. 3), либо специальной программой для формирования фрактальных изображений. Первый вариант проще, но не лучше, поскольку возможности корректировки фрактальных изображений в онлайновых генераторах более чем скромные, да и разрешение получаемых изображений оставляет желать лучшего. Гораздо больше простора для творчества предоставляют программные генераторы фракталов, часть из которых позволяет визуализировать изображения в высоком разрешении, пригодном для полиграфии.
Рис. 3. Генерация фрактального изображения на Fractalposter
Отметим, что фрактальные шедевры создаются путем математических расчетов — на основе параметрических уравнений, но знать подобные уравнения чаще всего необязательно, поскольку они заложены в генераторы фракталов и фигурируют там под именами, вполне доступными для понимания простым смертным, а не только заядлым математикам.
Программ для генерации фрактальных изображений на рынке не очень много. Некоторые из них развиваются энтузиастами (естественно, весьма нестабильно, особенно в период кризиса), хотя есть и солидные коммерческие продукты. Рассмотрим наиболее интересные из них.
Ultra Fractal 5.04
Разработчик: Frederik Slijkerman
Сайт программы: http://www.ultrafractal.com/
Размер дистрибутива: 6,26 Мбайт
Работа под управлением: Windows XP/Vista/7
Способ распространения: shareware (30-дневная демо-версия, включающая водяные знаки на изображениях, — http://www.ultrafractal.com/download/index.php)
Цена: Express Edition — 37 долл.; Creative Edition — 74 долл.; Extended Edition — 129 долл.
Ultra Fractal — лучшее решение для создания уникальных двумерных фрактальных изображений профессионального качества. Программа представлена в трех редакциях: базовой Express Edition и расширенных Creative Edition и Extended Edition Возможности базовой редакции ограничены генерацией фрактальных изображений. Редакция Creative Edition дополнительно поддерживает слои, маски и геометрические трансформации, а Extended Edition, помимо этого, позволяет создавать анимацию на базе фрактальных изображений.
Фрактальное изображение строится на основе выбранной заготовки, определяемой системой параметрических уравнений, в которых параметры несложно изменить по своему желанию. Сориентироваться относительно возможного вида генерируемого по выбранной формуле изображения несложно благодаря наличию встроенного браузера. Базовый набор готовых фрактальных формул входит в поставку программы, дополнительные формулы несложно скачать из онлайновой базы с сайта разработчика. Предусмотрена возможность построения фракталов по пользовательским формулам, введенным во встроенном текстовом редакторе.
Возможностей для преобразования фрактального изображения к уникальному виду предостаточно. Так, любой выделенный в основном окне прямоугольный фрагмент изображения может быть масштабирован в режиме Select Mode, а настройки исходных формул изменены на панели Tool Windows. Часть базовых фрактальных изображений (тех, у которых каждая точка создаваемого по уравнениям фрактального рисунка является указателем на новое множество функций другого типа) может быть трансформирована через режим Switch Mode, приводящий к переключению на формы «подчиненного» изображения. Фильтры трансформации позволяют выполнять в отношении выделенных фрагментов изображения разнообразные преобразования: масштабировать, зеркально отражать, обрезать по шаблону, искажать посредством завихрения или ряби, размножать по принципу калейдоскопа и т.д. Цветовая гамма изображения (рис. 4) регулируется через набор настраиваемых градиентов (включая полупрозрачные), у которых через опорные точки корректируются составляющие цветов и резкость перехода между ними. Цвет у любой из опорных точек несложно задать вручную, можно также воспользоваться генерацией случайных сочетаний оттенков. Разрешается корректировать цвета и иные параметры граничной и внутренней областей изображений. При желании можно даже создавать многослойные фракталы путем наложения фрактальных изображений друг на друга, добиваясь в итоге уникальных эффектов, — это реализуется благодаря поддержке слоев с возможностью изменения режимов их смешивания и корректировкой полупрозрачности. Использование масок непрозрачности обеспечивает маскирование определенных областей изображения.
Рис. 4. Настройка цветовой гаммы изображения в Ultra Fractal
Созданные изображения сохраняются в виде проектов в собственном формате программы и могут быть визуализированы с последующим экспортом результатов в один из растровых графических форматов (JPG, BMP, PNG, PSD, TGA, TIFF) с сохранением прозрачности и в нужном разрешении. Фрактальные анимации сохраняются в AVI-формате.
ChaosPro 4.0.228
Разработчик: Martin Pfingstl
Сайт программы: http://www.chaospro.de/
Размер дистрибутива: 7,23 Мбайт
Работа под управлением: Windows 95/2000/XP/Vista/7
Способ распространения: freeware (http://www.chaospro.de/download.php)
Цена: бесплатно
ChaosPro — один из лучших бесплатных генераторов двумерных фрактальных изображений, на базе которых можно создавать трехмерные представления фракталов и полноценные фрактальные анимации. Программа отличается высокой скоростью расчетов, обеспечивает полный контроль процесса построения изображений и позволяет генерировать сразу несколько фракталов в разных окнах.
Фрактальные изображения создаются на базе предустановленных рекурсивных фрактальных типов на основе формул, загруженных из файлов (поддерживаются формулы фрактальных генераторов FractInt и UltraFractal), либо формул, написанных самостоятельно в редакторе. Самое простое — воспользоваться заготовкой, определяемой одной из встроенных систем параметрических уравнений, для чего достаточно выбрать ее из меню Fractal —> New Defaultype.
Точно таким же образом генерируются аттракторы.
Есть и более незамысловатый вариант создания фрактального шедевра — открыть дерево интересных фракталов (рис. 5) и поэкспериментировать с уже полностью готовыми изображениями, изменив их по своему вкусу. С полученными заготовками можно производить всевозможные изменения: перемещать и масштабировать на них отдельные фрагменты мышью, изменять настройки на управляющей панели Parameters (особенности проецирования, параметры формул, настройки внутренней и внешней областей фрактала). Цветовая гамма фрактального изображения регулируется через набор предустановленных градиентов (Presets), которых около 50, либо в редакторе палитр, допускающем редактирование любого из предустановленных градиентов вручную. Через альфаканал можно управлять степенью сглаживания и непрозрачности. Для аттракторов дополнительно предусмотрена корректировка положения в пространстве, а также изменение параметров освещенности и метода окрашивания. Возможно построение многослойных фракталов, при этом разрешается изменять непрозрачность слоев, режим смешивания и положение однослойных изображений друг относительно друга.
Рис. 5. Загрузка готового фрактала из дерева в ChaosPro
Для преобразования двумерных фрактальных изображений в трехмерный вид (это возможно не для всех рекурсивных типов) используются 3D-транформации: настройки такой трансформации определяются на управляющей панели, а сам процесс построения запускается командой Fractal —> 3D Transform. Технология генерации подобных 3D-изображений напоминает построение ландшафтов по картам высот. Есть возможность создания анимации на основе фрактальных изображений с определением ключевых анимационных фаз, которые могут отличаться по любому изменяемому параметру: углу поворота и вращения, цветовым параметрам и пр.
Созданные фракталы сохраняются в виде проектов в собственном формате программы либо экспортируются в растровые изображения (JPG, BMP, PNG). 3D-транформации сохраняются в виде 3D-объектов в формате POV, а анимации — в формате AVI.
XenoDream 2.3
Разработчик: XenoDream Software, LLC
Сайт программы: http://xenodream.com/
Размер дистрибутива: 6,68 Мбайт
Работа под управлением: Windows 95/98/Me/NT 4/2K/XP/Vista/7
Способ распространения: shareware (функционально ограниченная демо-версия, включающая водяные знаки на изображениях, — http://xenodream.com/downloads.htm)
Цена: 119 долл.
XenoDream — среда для создания разнообразных фантастических объемных структур путем комбинирования простых форм и фрактальных изображений, полученных с применением IFS-фрактальных методов. Сгенерированные таким способом объекты сохраняются в виде изображений либо экспортируются в mesh-объекты для дальнейшей обработки в 3D-редакторах.
Для создания трехмерных структур не требуется знание фрактальных формул — достаточно создать новый документ и на вкладке File щелкнуть на кнопке Random sample Parameter file, что приведет к формированию случайной фрактальной структуры (разумеется, этот процесс может повторяться до тех пор, пока не будет сгенерирована подходящая заготовка), — рис. 6. Возможностей настройки параметров такой заготовки множество. Можно через вкладку Shape управлять лежащими в основе структуры формамипараллелепипедами (изменять их положение, размер по каждой из осей, вращать, клонировать и т.д.), а к самим структурам применять разнообразные трансформации (здесь они называются метаморфозами). Для подбора нужной цветовой гаммы (вкладка Color) разрешается изменять метод окраски на вариант Holon Sequence или Metamorph — первый метод используется для окраски фрактальных изображений, а второй — для окраски форм с применением текстур. Кроме того, выбранный метод сопоставляется с градиентом (настраиваемым параметрическим или пользовательским) либо изображением. Помимо этого предусмотрено управление камерой (вкладка View), для которой можно менять положение, наклон и фокус, управлять плоскостями отсечения и т.п., а также настройками освещения на вкладке Rendering, где регулируется положение источников света и наличие/отсутствие теней, причем даже для отдельных форм. На этой же вкладке производится управление степенью непрозрачности отдельных форм и определение размеров и разрешения получаемого изображения. Возможно создание анимации структуры с генерацией до 30 ключевых кадров, которые сохраняются в виде отдельных изображений.
Рис. 6. Создание и рендеринг случайной фрактальной структуры в XenoDream
Готовые фантастические структуры запоминаются на диске в виде проектов в собственном формате программы либо экспортируются в популярные графические форматы (BMP, JPG, TGA и PSD). Возможен также экспорт полученных структур в трехмерные mesh-объекты (OBJ, POVRay INC) и карт глубины (Depth Maps) для других программ рендеринга.
Fractracer 1.1
Разработчик: Fractracer Lab
Сайт программы: http://fractracer.com/
Размер дистрибутива: 32-битная версия — 3,5 Мбайт; 64-битная версия — 4 Мбайт
Работа под управлением: Windows XP/Vista/7
Способ распространения: shareware (функционально ограниченная демо-версия, включающая водяные знаки на изображениях, — http://fractracer.com/downloads.php)
Цена: 120 долл.
Fractracer — инструмент для создания трехмерных изображений на базе фрактальной геометрии, представляющий собой чтото среднее между генератором фракталов и 3D-редактором. Полученные в этой программе формы сохраняются в виде изображений либо преобразуются в трехмерные mesh-объекты, которые в дальнейшем могут быть использованы в популярных пакетах 3D-графики.
Для создания изображений предусмотрены два варианта: использование предустановленных примеров фрактальных объектов, которые затем несложно видоизменить желаемым образом, и создание проектов с нуля — на базе программного кода. Масштабирование, вращение и перемещение полученного фрактального изображения производятся мышью, а все остальные настройки — через многочисленные панели. Самыми важными панелями являются панель объектов (Objects) и панель параметров (Parameters). Все внедряемые в изображения элементы — это отдельные независимые объекты, а само изображение представляет собой наполненную ими сцену. Поэтому любой из добавленных объектов, независимо от того, на каком этапе он был внедрен в сцену, в дальнейшем может быть без проблем удален. Объекты расположены в иерархической структуре, и от их положения по отношению друг к другу зависит вид изображения. Набор объектов регулируется на панели Objects (дополнительные объекты вставляются из встроенной библиотеки), а свойства объектов — на панели Parameters. Здесь, помимо изменения параметров фрактальных формул и цветовых настроек, возможна корректировка положения камеры (рис. 7), источников света, трансформаций и многого другого. Рендеринг в программе также напоминает визуализацию в 3D-решениях, поскольку при этом учитываются установленные параметры освещения, наличие/отсутствие теней и необходимость размывания краев. Возможно создание анимации на основе фрактальных изображений с учетом определения ключевых кадров и желаемой длительности.
Рис. 7. Настройка параметров камеры в Fractracer
Созданные изображения сохраняются в виде проектов в собственном формате программы и экспортируются в PNG-файлы с нужным разрешением. Предусмотрены также генерация и сохранение трехмерных mesh-объектов (OBJ) и сохранение фрактальных анимаций в формате AVI.
Apophysis 2.02 Stable/2.09 Beta
Разработчик: Peter Sdobnov, Piotr Borys, Ronald Hordijk
Сайт программы: http://www.apophysis.org/
Размер дистрибутива: 2,58 Мбайт
Работа под управлением: Windows 95/98/NT/2000/XP
Способ распространения: GPL/freeware (http://www.apophysis.org/downloads.html)
Цена: бесплатно
Apophysis — простая программа для генерации двумерных фракталов на базе сотни встроенных фрактальных формул. Результирующее изображение, которое получится при выборе конкретной формулы, тут же отображается в окне предварительного просмотра. Вариант изображения для любой из формул неоднозначен и выводится путем случайной генерации — можно воспользоваться командой File —> Random Batch и получить следующий набор из ста изображений на основе тех же самых параметрических уравнений и т.д.
Изменение внешнего вида изображения производится через меню View, открывающее доступ к редактору формул, модулю мутаций и другим функциям программы. Так, во встроенном редакторе формул Editor (рис. 8) можно управлять лежащими в основе фрактала треугольниками (изменять их положение, форму и размеры), а также вручную корректировать ряд параметров, в частности несложно выбрать другой метод преобразования (Jula, Swirl, Polar и т.д.), подвергнуть изображение нужной трансформации и пр. С помощью модуля мутаций (Mutation) можно на базе текущего изображения получить его различные случайные мутации, а через меню Variation вручную изменить форму понравившегося фрактала. Регулирование цветовой гаммы осуществляется через меню View —> Gradient — путем выбора одного из предустановленных вариантов градиентных заливок (их порядка 700) либо любого графического файла с произвольным изображением. В последнем случае цвета картинки будут преобразованы в градиент, которым и окрасится фрактал. Окончательный вид фрактального изображения регулируется в окне Adjust (меню View) — здесь выбирается положение воображаемой камеры, через которую виден фрактал, его цветовая насыщенность и фон. В этом окне также несложно масштабировать фрактальный объект, уточнить его расположение на фоне и задать размеры итогового фрактального изображения. При желании можно дополнительно полюбоваться на анимацию фрактала с помощью сценариев — чисто визуально, поскольку сохранение анимации не предусмотрено.
Рис. 8. Управление лежащими в основе фрактала треугольниками
во встроенном редакторе программы Apophysis
Сгенерированные фрактальные изображения сохраняются в собственном формате и визуализируются с требуемым качеством с сохранением результатов рендеринга в виде графического файла (JPG, BMP, PNG).
Fractal Extreme 2.04
Разработчик: Cygnus Software
Сайт программы: http://www.cygnus-software.com/
Размер дистрибутива: 32-битная версия — 12 Мбайт; 64-битная версия — 10,63 Мбайт
Работа под управлением: Windows XP/Vista/7
Способ распространения: shareware (15-дневная демо-версия — http://www.cygnus-software.com/downloads/downloads.htm)
Цена: 34,95 долл.
Fractal Extreme — несложная программа для генерации двумерных фрактальных изображений. В ее базе заложено около 20 фрактальных формул, по которым и строятся изображения. Принцип работы предельно прост: выбирается фрактальная структура (полученное по ней изображение отображается в окне просмотра) и затем фрактал преобразуется к желаемому виду путем нехитрых манипуляций. По замыслу разработчиков предполагалось, что список базовых фрактальных структур окажется расширяемым за счет скачиваемых плагинов, однако разработкой последних компания давно не занимается.
Возможности настройки параметров фрактального изображения ограничены — можно мышью переместить и/или масштабировать нужную область изображения. Также через меню Options производятся контроль количества итераций, настройка цветовой палитры (здесь из скромного списка шаблонов выбирается нужная цветовая гамма (рис. 9) и при необходимости корректируется цвет у опорных точек) и вариант проецирования. Кроме того, имеются расширенные настройки, рассчитанные на подготовленных пользователей и позволяющие вмешаться в процесс построения фрактала — например повысить точность итераций, выбрать либо, наоборот, отказаться от ускоренного варианта заполнения подобных областей и др. Очень неудобно, что при большинстве настроек заранее увидеть результат в окне предварительного просмотра невозможно.
Рис. 9. Подбор цветовой гаммы во Fractal Extreme
Для готового фрактального изображения устанавливают требуемый размер (Options —> Fractal Size), и оно сохраняется в виде проекта в собственном формате либо после визуализации экспортируется в BMP-формат. Предусмотрен функционал для создания на базе фрактальных изображений заставок на рабочий стол и постеров нужного размера, а также простых zoom-анимаций.
Chaoscope 0.3.1
Разработчик: Chaoscope Team
Сайт программы: http://www.chaoscope.org/
Размер дистрибутива: 2,5 Мбайт
Работа под управлением: Windows 98/2000/XP
Способ распространения: freeware (http://www.chaoscope.org/download.htm)
Цена: бесплатно
Chaoscope — программа для генерирования странных аттракторов. Принцип генерации следующий: вначале создается фрактальное множество, которое затем визуализируется в аттрактор. При генерации фрактала можно пойти двумя путями: открыть один из встроенных библиотечных проектов фрактальных изображений и доработать его задуманным образом либо создать новое фрактальное множество (File —> New), запустить процесс поиска параметров для возможного фрактального изображения (Attractor —> Search), а затем вручную настроить его параметры, подобрать цветовую палитру и выбрать метод рендеринга. Перечень настроек весьма скромен (рис. 10), но, тем не менее, после серии экспериментов он всё же позволяет получить интересные результаты. По окончании можно вручную (то есть мышью) повернуть фрактал желаемым образом и через командное меню расположить его в центре изображения.
Рис. 10. Настройка параметров изображения в Chaoscope
Готовое фрактальное изображение путем визуализации (Attractor —> Render) превращается в аттрактор, который можно сохранить в виде проекта в собственном формате программы либо экспортировать в BMP-файл. Процесс рендеринга зачастую оказывается довольно длительным.
XaoS 3.5
Разработчик: GNU XaoS Contributors
Сайт программы: http://wmi.math.u-szeged.hu/xaos/doku.php
Размер дистрибутива: 1,46 Мбайт
Работа под управлением: Windows (все версии), Mac OS X, Linux
Способ распространения: GPL/freeware (http://wmi.math.u-szeged.hu/xaos/doku.php?id=downloads:main)
Цена: бесплатно
XaoS — многоплатформенный генератор фракталов, позволяющий генерировать фрактальные изображения для базовых типов фрактальных множеств. Как и в других решениях, в нем можно получить интересные варианты изображений, однако возможности настройки в генераторе минимальны. Зато освоить программу несложно, поэтому, на наш взгляд, она вполне подходит для изучения фрактальной графики в учебных заведениях.
Вариантов генерации фрактальных изображений в XaoS два: их можно создавать на базе встроенных примеров (File —> Load) либо базовых фрактальных множеств (Fractal —> Formula). Кроме того, допускается введение пользовательских формул в простеньком редакторе. Полученные изображения масштабируются, перемещаются и вращаются мышью, а цветовые переходы в них настраиваются через серию встроенных палитр (последнее реализовано неудобно, но рано или поздно позволяет добиться эффектного результата) — рис. 11. Помимо этого предусмотрены возможности изменения режима позиционирования фрактала, регулирования числа итераций и наложения ряда фильтров.
Рис. 11. Выбор случайной цветовой палитры в XaoS
Сгенерированные фрактальные изображения сохраняются в виде проектов в собственном формате либо экспортируются в формат PNG.
***
В данной публикации мы рассмотрели несколько известных решений, позволяющих генерировать фантастические фракталы и аттракторы. Назвать из них лучшее довольно сложно, поскольку продукты разноплановы. Одни представляют собой генераторы фракталов в чистом виде, другие, помимо построения фракталов, обеспечивают более широкие возможности построения и визуализации изображений, включая внедрение трехмерных объектов, расширенный контроль настроек освещения, внедрение теней, размытие краев и пр. Вместе с тем среди генераторов фракталов наибольший интерес представляет коммерческий пакет Ultra Fractal и бесплатные программы ChaosPro и Apophysis, позволяющие воплотить в жизнь самые смелые и интересные художественные проекты. Наше отношение к новым продуктам XenoDream и Fractracer двойственное — разумеется, они интересны (по большей части для специалистов в сфере 3D-графики), но вместе с тем дороги. Кроме того, в отличие от остальных рассмотренных программ, они не интуитивно понятны в применении и не снабжены достойной документацией.