`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Ultra Fractal 3: эволюция продолжается

0 
 
За минувшее десятилетие эйфорический подъем в отношении художественной ценности "фрактальных картинок" (некогда выставлявшихся в солидных галереях) сменился глубоким разочарованием. Но ведь истина, как правило, лежит где-то между крайностями. И если вы, уважаемый читатель, поддались настроениям большинства и причислили себя к скептикам, полагающим, будто фрактальные множества сегодня являются анахронизмом, непригодным даже для оформления обоев, то ознакомление с программой Ultra Fractal может вызвать у вас настоящий культурный шок. Оказывается, приверженцы "фрактальной живописи" не вымерли! Просто они ушли в подполье, где продолжили приумножать свои сокровища, открывая новые формулы и подбирая параметры к уже известным. Посетители виртуальной галереи, размещенной на официальном сайте www.ultrafractal.com (откуда взяты иллюстрации к данной статье), могут убедиться, что эта кропотливая работа, скрытая от жадного внимания толпы, принесла щедрые плоды.

Ultra Fractal 3 эволюция продолжается
Ultra Fractal -- прямая наследница Fractint, значительно расширяющая возможности и без того мощного пакета
Ultra Fractal -- не просто "одна из множества утилит для синтеза фрактальных множеств". Она является прямой наследницей Fractint, наиболее масштабного проекта, объединившего усилия сотен "энтузиастов-фрактальщиков" во всем мире. Говоря о программе Ultra Fractal, невозможно обойти вниманием ее предшественницу, а также координационный совет Fractint, известный как The Stone Soup Group (идиома stone soup буквально означает "суп с камнями", что удачно отражает суть open source-программирования, ее приблизительный русскоязычный аналог -- "суп из топора").

Первая версия Fractint, созданная Бертом Тайлером (Bert Tyler) в 1989 г., обладала единственным, но действительно революционным достоинством: на современных ей компьютерах она обсчитывала множество Мандельброта не в течение нескольких томительных часов, а за несколько секунд. Добиться этого удалось за счет использования высокооптимизированного ассемблерного кода, а также сверхбыстрой (быстрее FPU) целочисленной арифметики для выполнения операций над действительными числами с фиксированной точкой.

Ultra Fractal 3 эволюция продолжается
Главное меню пакета Fractint, сочетавшего неохватное богатство возможностей с крайним минимализмом интерфейса
Дальнейшее развитие сделало Fractint не только самым интерактивным, но и наиболее функционально богатым инструментом исследования фрактальных множеств (ФМ).

Полный перечень возможностей текущей версии Fractint (v.20.0) невозможно привести в рамках одной журнальной статьи. Достаточно сказать, что она способна:
  • визуализовать 53 "основных типа" (!) фрактальных множеств;
  • интерпретировать особый язык описания ФМ на комплексной плоскости, значительно расширяющий творческие возможности пользователей, а также позволяющий создавать внешние утилиты, совместимые с Fractint на уровне этого языка;
  • "растягивать" ФМ на комплексной плоскости в 101600 раз (позволю себе напомнить, что количество атомов во Вселенной выражается относительно скромным числом 1042);
  • отображать трехмерные фрактальные объекты (в действительности являющиеся трехмерными сечениями множеств, принадлежащих четырехмерному пространству кватернионов);
  • применять массу хитроумных методов оптимизации обсчета (как эвристических, так и основанных на теоретических изысканиях);
  • обмениваться данными с программами трассировки лучей типа BMRT;
  • "сочинять фрактальную музыку" и проигрывать ее с помощью звуковых карт;
  • генерировать стереоскопические изображения для просмотра через очки с разноцветными стеклами и т. д.
Особое место в ряду достоинств Fractint занимает поддержка работы со 115 разнообразными моделями видеоадаптеров, выпускавшимися на протяжении 90-х годов. Нужда в этом обусловливается принципиальной Windows-несовместимостью. То, что поначалу было неоспоримым плюсом, позволявшим наиболее полно использовать ресурсы ПК, на рубеже веков обернулось недостатком, и с ним невозможно смириться. И именно данное обстоятельство -- а отнюдь не общий спад интереса к фракталам -- следует признать причиной, из-за которой текущая версия Fractint, датированная роковыми цифрами 9/9/99, скорее всего, окажется последней.

Ultra Fractal 3 эволюция продолжается
Melt-O-Waves (© Damien M. Jones)
Ultra Fractal 3 эволюция продолжается
Rose Curve String Art (© Kerry Mitchell)
Ultra Fractal 3 эволюция продолжается
Mandel Plaque (© Paul Carlsson)
Чтобы спасти колоссальный объем DOS-ориентированного исходного кода Fractint от исчезновения, необходимо было хотя бы частично привести его в соответствие современным требованиям. Кропотливый труд, результатом которого стало появление программы Ultra Fractal, взял на себя голландский программист Фредерик Слийкерман (Frederik Slijkerman). Ultra Fractal, отнесенная автором к категории условно бесплатных программ, распространяется через Internet (установочный файл занимает чуть менее 4 MB; лицензионное соглашение обязывает пользователя по истечении 30-дневного срока уплатить $49 либо удалить ПО).

Следующие преимущества отличают UF от ее предшественницы:

Великолепный интерфейс. Слийкерман справедливо рассудил, что программа для создания изображений, претендующих на эстетическую ценность, и сама должна быть привлекательной. Работать с UF3 очень приятно: пользователю кажется, что все, чего бы он ни пожелал, тотчас оказывается у него под рукой. Тут и графический броузер для просмотра установленных на локальном диске библиотек фрактальных формул, и связь через Internet с центральной библиотекой, содержащей многие тысячи формул. Кстати, регулярные обновления из нее можно получать еженедельно либо ежемесячно в автоматическом режиме. К сильным сторонам пакета относятся и емкий стек отката с графическим представлением изображения на каждом очередном этапе, и возможность переопределения назначения клавиш мышки и клавиатуры, и встроенный текстовый редактор с поддержкой шаблонов, основанных на стандартных конструкциях языка программирования фрактальных формул... Даже если вы совершенно равнодушны к фракталам, вам стоит взглянуть на UF3 -- этот шедевр тщательной продуманности интерфейса.

Здесь же следует отметить наглядность документации, которая достигается за счет включения графических иллюстраций (документация Fractint была оформлена в виде 192-страничного текстового файла).

Кстати, UF3 в качестве IDE для программирования на языке описания фрактальных формул вполне может быть использована преподавателями информатики: ведь этот язык поддерживает все основные конструкции, присущие распространенным языкам программирования, он занимателен, поскольку результаты его применения предназначены для отображения в графическом виде, и к тому же воспитывает у учащихся уважение к авторскому праву (приобретение легальной копии UF3 по карману любому компьютерному классу).

В прошлом всем этим условиям удовлетворяли DOS-версии BASIC и TurboPascal. Но можно ли то же самое сказать и о пришедших им на смену дорогих и неповоротливых VisualBasic и Delphi?

Наконец, язык описания фрактальных формул имеет достаточно простой синтаксис, чтобы не отпугнуть новичка, доказательством чего может служить следующая программа:

MyFirstProgram
$define DEBUG; разрешить вывод текстовых сообщений
print("Hello, World!")

Полноцветность. Наконец-то фрактальные множества стали полноцветными! (Fractint была традиционно ограничена 256-цветной палитрой).

Ultra Fractal 3 эволюция продолжается
Симметричное изображение (© Kerry Mitchell)
Ultra Fractal 3 эволюция продолжается
Graveyard Moon (Bill Decker)
Ultra Fractal 3 эволюция продолжается
Astroid String Art (© Kerry Mitchell)
Ultra Fractal 3 эволюция продолжается
Плитка Трюше (© Kerry Mitchell)
Ultra Fractal 3 эволюция продолжается
Circle Color Sample (© Kerry Mitchell)
Многозадачность. Обсчет множества Мандельброта не требует многозадачности: ведь современные процессоры тратят на выполнение этой операции доли секунды. Однако существуют гораздо более ресурсоемкие фрактальные алгоритмы, исследование которых в однозадачном режиме сопряжено с томительным ожиданием (например, обсчет нескольких из приведенных здесь иллюстраций длился на ПК класса P-4/1,5 GHz несколько десятков минут). В этой ситуации весьма уместной оказывается многозадачность, предоставляющая возможность редактировать одну формулу, не дожидаясь завершения визуализации нескольких других. "Уживаемость" UF3 с другими программами также заслуживает всяческих похвал: мне не удалось заметить снижения быстродействия ни в одном из графических или офисных приложений при обсчете фрактальных множеств в фоновом режиме (иными словами, UF3 безропотно уступает системные ресурсы любому претенденту).

Интерактивность. UF3 услужливо перерисовывает активное изображение после ввода всякой очередной цифры в окне задания параметров (соответствующая временная задержка зависит от пользовательских предпочтений). Это разительно отличает UF от Fractint, интерфейс которой предполагал обязательное переключение из графического видеорежима в алфавитно-цифровой для редактирования параметров.

Сетевой рендеринг. Подобная функция позволяет задействовать ресурс вашей офисной сети (либо компьютеров, подключенных к Internet) для организации распределенных вычислений. В зависимости от установок UF3 может поддерживать режим клиента или сервера.

Слои (layers) и фильтры (transformations). Данные установки, заимствованные из графических редакторов, реализованы в UF на качественно ином уровне. Представьте, что результатом применения некоторого фильтра в Photoshop стало 100-кратное увеличение определенной области редактируемого изображения, что непременно обернется утратой деталей и появлением ступенчатости. UF3 избавляет от таких досадных проблем: в этом случае при работе с фильтрами каждый экранный пиксел по-прежнему вычисляется индивидуально (а не за счет интерполяции между соседними с ним пикселами).

Обновление UF происходит примерно раз в год (если не считать промежуточных версий с дробными номерами, отличающихся незначительными усовершенствованиями). По словам автора программы, общее направление ее развития определяется пожеланиями участников официального пользовательского форума. Вот о чем чаще всего мечтают последние:

Встроенный традиционный язык программирования. Отличительной чертой С-подобного языка описания фрактальных формул, унаследованного UF от Fractint, является принципиальная невозможность обеспечения взаимодействия между уникальными экземплярами программ, вызываемыми для каждого пиксела. Это накладывает ограничение на программирование многих известных фрактальных алгоритмов, например, тех, что основаны на теории клеточных автоматов (для пользователей Fractint данная проблема была смягчена за счет доступности исходного кода).

Поддержка анимации. Таковую Слийкерман обещает встроить в четвертую версию UF, ожидаемую в 2004 году. В настоящее же время любителям анимации приходится довольствоваться внешними утилитами вроде Apophysis или UF-Movie. Они генерируют файлы со списком параметров, предназначенные для пакетного обсчета в UF3 (последующая конвертация отдельных кадров в один из видеоформатов возлагается на пользователя).

Совместимость с программируемыми графическими акселераторами. Собственно, это не пожелание, а предвкушение неизбежного этапа в разработке фрактального ПО, который ждет нас в ближайшие годы. По мнению экспертов, развитие графических акселераторов, характеризуемых высоким параллелизмом архитектуры и стремительным наращиванием возможностей, связанных с программированием, в скором времени сделает их своего рода дополнительным процессором для параллельных вычислений (уместных при решении задач по генетическому программированию, моделированию нейронных сетей и т. п.). Многие фрактальные алгоритмы служат хрестоматийным примером "распараллеливаемости" и компактности. Полагаем, что именно их реализация в виде пиксельных шейдеров станет первым примером использования 3D-акселераторов "не по прямому назначению". Сегодня основным препятствием здесь является запрет на организацию циклов в коде, поддерживаемом современными программируемыми видеоакселераторами. Вероятно, Ultra Fractal рано или поздно приобретет сходство с ПО типа RenderMonkey (см. itc.ua/12765): пользователи UF смогут наблюдать анимацию фрактальных множеств в реальном времени (например, плавно "смещая" их в параметрическом пространстве с помощью мыши), а также мгновенно контролировать изменения, происходящие с множествами в ходе редактирования их формул.
0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT