Цифровой журнал «Компьютерра» 2011 № 31 (79) - [15]

Шрифт
Интервал

StructureSynth: сыграйте мне про архитектуру

Радий Фиш

Опубликовано 26 июля 2011 года

Ещё за школьной партой мы узнаём, что любое изображение можно представить в виде множества точек. Сегодня, право, никого не удивить уже фрактальными генераторами ландшафтов или растительности, которые автоматически «отрисовывают» фотографического уровня изображения, опираясь, по сути, на математические формулы, и не более.

Использование формальных грамматик в качестве метода описания изображений впервые появилось в конце 60-х в работах венгерского биолога Аристида Линдермайера, который исследовал микроскопические грибы и бактерии и позднее распространил этот метод и на описание макрообъектов, в частности растений и деревьев. Его метод получил название L-системы (сокращение от Lindermayer-system).

Вслед за его исследованиями последовало большое количество практических приложений и научных публикаций, часть из которых удачно совпала с бумом на фракталы, теорию хаоса и динамические системы в начале 90-х, благо генерация сложной графики стала доступна не только на специализированных мейнфреймах, а любому кодеру-энтузиасту с Amiga или PC. (Интересующимся можно посоветовать прочитать некоторые из его, весьма наглядных и интересных трудов, переводами которых занимаются, к примеру на Хабрахабре).

Основной интерес к L-системам вызван тем, что, как несложно уже догадаться, они представляют собой один из самых простых и наглядных вариантов фракталов (вместе с треугольником Серпинского и кривой Коха). Для понимания принципов подобных изображений не требуется погружаться в бездны комплексного анализа и топологии, достаточно разве что вспомнить школьную геометрию.

Методы L-систем нашли множество как художественных, так и практических применений. Например для создания высокореалистичных текстур, ландшафтов и растений, практически неотличимых на изображении от реальных.

Из числа арт-программ 2000-х одной из самых известных и канонических де-факто стал открытый проект ContextFreeArt:



Неудивительно, что после столь эффектных изображений в 2d, энтузиасты обратились к третьему измерению, благо современные мощности позволяют визуализировать сложнейшие сцены почти в реальном времени. Собственно проект Structure Synth и стал первой известной программой такого рода.

Единственный его автор — Микаель Хвидтфельд Кристенсен (Mikael Hvidtfeld Christensen) в одиночку развивает проект в течение нескольких последних лет (с 2007 г.).

Кликните по изображению чтобы перейти на галерею изображений, полученных с помощью Structure Synth.

Проект распространяется по GPL и написан на C++ под OpenGL и QT, что позволяет портировать приложение на любые платформы (кроме разве что мобильных, для которых поддержка этих фреймворков если и появилась, то совсем недавно).

В числе свежайших нововведений — поддержка javascript и встроенный рендерер, позволяющий обходиться без дополнительного экспорта в другую среду моделирования или рейтрейсинга.

Основы формальных грамматик

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

Для определения “языка” — то есть всех возможных цепочек символов — требуется задать:

1. Множество конечных символов

Множество самых базовых объектов, из которых строится структура или язык. Для естественного или машинного языка это символы, буквы, цифры, для двумерной фигуры это точки на плоскости, прямые, кривые, для трехмерной — соответственно точки в трехмерном пространстве, полигоны, векторы, поверхности.

2. Множество правил

Правило — это некая формальная запись, в которой определяется, как из одной структуры получается другая структура. Правила могут состоять из других правил.

Весьма условный пример правил для русского языка:

СЛОВО = “один или несколько слогов” СЛОГ = “согласная”+”гласный” СОГЛАСНАЯ = {б,в,г,д,ж, …, щ} ГЛАСНЫЙ = {a, е, о, .., я}

Для трехмерной структуры:

КУБ = “Полигон с координатами (0,0,0), (0,1,0), (0, 0, 1)”, “Полигон с координатами (0, 0, 0), (1, 0, 0), (1,1,0) и т.д.

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

3. Стартовое правило

порождение структуры не может начаться просто так, мы должны объявить базовый объект или базовое правило, с которого начнется построение, исходный шаг рекурсии.

Язык Structure Synth

Трехмерные фигуры как грамматики описываются в текстовых файлов специального формата .es (EisenScript).

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

Правила и трансформации оперируют с базовыми геометрическими фигурами (примитивами) в трехмерном пространстве. У фигур, помимо 3d-координат, есть только цвет (но, к сожалению, не текстура, не материал и т.п.).


Еще от автора Журнал «Компьютерра»
Компьютерра, 2008 № 01-02 (717-718)

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


Цифровой журнал «Компьютерра» 2013 № 18 (171)

ОглавлениеКолонкаПочему мы позволяем нас обманывать, или Грустные размышления об иррациональности политической жизни Автор: Дмитрий ШабановГолубятня: Samsung Galaxy S4 — цидули перебежчика (часть 1) Автор: Сергей ГолубицкийУроки любви к Родине: McAfee патентует технологию обнаружения и блокировки пиратского содержания Автор: Сергей ГолубицкийПодпадает ли астрономия под закон о митингах Автор: Дмитрий ВибеIT-рынокНасколько глупа шумиха вокруг «умных» часов? Автор: Андрей ПисьменныйПромзонаПосмотрите на свалку, которую китайцы превратили в парк Автор: Николай МаслухинЭтот сайт позволяет создать собственное световое шоу на точном макете Токио Автор: Николай МаслухинТехнологииДжипег, подвинься! Веппи как единственный необходимый графический формат Автор: Евгений ЗолотовИнновацииПочему менеджерам российских корпораций не нужны стартапы Автор: Елена КраузоваИнга Нахмансон (Fitting Reality): «Российскому e-commerce не до виртуальности» Автор: Елена КраузоваГидGoogle Now для iOS появился без лишнего шума и уже собирает сведения Автор: Андрей Васильков.


Компьютерра, 2007 № 15 (683)

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


Компьютерра, 2005 № 27-28 (599-600)

Документ создан на основе открытого контента, расположенного по адресуhttp://offline.computerra.ru/2005/599/Размер изображений не менялся, поэтому некоторые могут быть некорректно отображены на неVGA-моделях КПК (особенно скриншоты и таблицы).


Цифровой журнал «Компьютерра» 2010 № 10

ОглавлениеТерралабOpera 10.50: оперативный релиз Автор: Андрей КрупинАнтивирус со вкусом "Яндекса" Автор: Андрей КрупинБлоки питания на любой случай, часть 2. 600–700 Вт Автор: Константин ИвановОбзор Samsung i5700 Galaxy Spica Автор: Алексей СтародымовСвоя играМодель чугунного дирижабля, или Учитель Добреску — 2 Автор: Василий ЩепетневКафедра Ваннаха: Нано-блюз Автор: Ваннах МихаилВасилий Щепетнёв: Разбор полётов перед стартом Автор: Василий ЩепетневКивино гнездо: За что боролись Автор: БЕРД КИВИОткрытые системы Королевского Флота Автор: Ваннах МихаилИнтерактивCeBIT 2010: первые новинки Автор: Алексей СтародымовReaDitorialMovavi: история развития Автор: Наталья ХудяковаГолубятня-ОнлайнГолубятня: Хули Холи Автор: Сергей ГолубицкийГолубятня: Бабу Автор: Сергей ГолубицкийГолубятня: Агора № 20 Автор: Сергей ГолубицкийНаука и жизньМарсианский экспресс Автор: Олег Волошин.


Компьютерра, 2006 № 30 (650)

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


Рекомендуем почитать
Газета Завтра 1266 (09 2018)

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


Литературная Газета, 6627 (№ 01-02/2018)

"Литературная газета" общественно-политический еженедельник Главный редактор "Литературной газеты" Поляков Юрий Михайлович http://www.lgz.ru/.


Литературная Газета, 6626 (№ 51-52/2017)

"Литературная газета" общественно-политический еженедельник Главный редактор "Литературной газеты" Поляков Юрий Михайлович http://www.lgz.ru/.


Газета Завтра 1251 (46 2017)

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


10 мест корпения

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


10 казусов с коллегами

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


Цифровой журнал «Компьютерра» 2012 № 49 (149)

ОглавлениеИнтервьюВалерий Тельнов (ИЯФ СО РАН) о бозоне Хиггса Автор: Алла АршиноваТерралабНовое поколение нетбуков Acer и Packard Bell Автор: Ника ПарамоноваКолумнистыВасилий Щепетнёв: Освобождение Автор: Василий ЩепетневДмитрий Вибе: А вы уже закупили спички и соль? Автор: Дмитрий ВибеКафедра Ваннаха: Сланцевая передышка Автор: Михаил ВаннахДмитрий Шабанов: Вперёд, к эпигенетическому будущему! Автор: Дмитрий ШабановГолубятня-ОнлайнГолубятня: Хоть бы что-нибудь еще… всё не так, как надо! Автор: Сергей ГолубицкийГолубятня: Касталийский мираж истории Автор: Сергей Голубицкий.


Цифровой журнал «Компьютерра» 2013 № 11 (164)

ОглавлениеКолонкаПринуждение к альтруизму, или 451 градус политкорректности Автор: Василий ЩепетнёвМатематика как ресурс: На каком наследии работает отрасль информационных технологий Автор: Михаил ВаннахГолубятня: Праздник на нашей улице, или Фактура, столь редкая для софтверных обзоров Автор: Сергей ГолубицкийТень Рикардо: Чему биржевик и мыслитель былых времён может научить нас в информационную эру? Автор: Михаил ВаннахЗаказная мифология IT-прессы Автор: Сергей ГолубицкийЛожь навсегда: почему нас обманывают снова и снова Автор: Василий ЩепетнёвИгра в беспилотники: Как технологии боевых роботов соотносятся с классическим римским правом Автор: Михаил ВаннахСотая колонка: попытка перевести дух, осмотреться и понять, что и зачем я делаю Автор: Дмитрий ШабановВот и пришел Песочный Человек: о презентации Samsung своего нового флагмана и харакири Филла Шиллера Автор: Сергей ГолубицкийЧто общего между отключением Google Reader, заявлением Элиссы Финк и жалобой Дина Гарфилда? Автор: Сергей ГолубицкийОрганика в старом веществе Солнечной системы Автор: Дмитрий ВибеIT-рынокКак компьютеры, стоящие доллар, изменят привычные вещи и перевернут всё с ног на голову Автор: Андрей ПисьменныйАлександр Чачава: «Россия появилась на мировой технологической карте как полноценный инновационный рынок» Автор: Елена КраузоваGrowth Hackers: кто это и почему они нужны стартапам Автор: Игорь ТишкинКак смартфоны смогут демократизировать такси Автор: Андрей ПисьменныйПромзонаПосмотрите на серию плакатов, посвящённых выдающимся учёным и их открытиям Автор: Николай МаслухинДополненная реальность как способ обучения игре в бильярд Автор: Николай МаслухинПосмотрите на составные часы, складывающие время из сотен других часов Автор: Николай МаслухинMobileТестирование приложений для Android как инструмент выхода в ТОП на Google Play Автор: Дмитрий Куриленко, компания PromwadВосемь угроз вашему мобильному банку.


Цифровой журнал «Компьютерра» 2014 № 07 (212)

ОглавлениеКолонкаThe Narod, Iron Balls и удовольствие от унижения сильных мира сего Автор: Сергей ГолубицкийОлимпийская тоска по хакерам Автор: Лёха АндреевВирусы, управляющие миром, и чудесная история Fab.com Автор: Сергей ГолубицкийТайный клуб миллиардеров и механизмы частного фаворитизма Автор: Сергей ГолубицкийНевидимая революция Flow как ключ к пониманию проблем отечественной коммерции Автор: Сергей ГолубицкийКак отечественная интернет-экономика меняет рынок труда? Автор: Михаил ВаннахОт «Фитбита» до медкарты: как заставить персональные данные работать на себя Автор: Так зачем DARPA открывает всему свету закрома инноваций? Автор: Михаил ВаннахОкончательный диагноз биткойна, или Что общего между пиастром ЛГБТ и кольцом Саурона? Автор: Сергей ГолубицкийПредчувствие победоносной войны Автор: Василий ЩепетнёвIT-рынок8 самых странных компьютерных симуляторов Автор: Олег НечайSony прощается с персоналкой.


Цифровой журнал «Компьютерра» 2012 № 01 (101)

ОглавлениеСтатьиTertium datur: другие компьютеры Автор: Евгений Лебеденко, Mobi.ruИнтервьюПавел Фролов («ГНУ/Линуксцентр») о НПП Автор: Евгений КрестниковА. Самсонов о троичной логике и цифровой археологии Автор: Андрей ПисьменныйКолумнистыВасилий Щепетнёв: Месть индейских вождей Автор: Василий ЩепетневКивино гнездо: Беззаконие роботехники Автор: Киви БердКафедра Ваннаха: Подарки и конструкции Автор: Михаил ВаннахАлександр Амзин: Силой данного мне природой мозга Автор: Александр АмзинВасилий Щепетнёв: Гимн усталому караулу Автор: Василий ЩепетневКивино гнездо: Беззаконие роботехники (окончание) Автор: Киви БердДмитрий Шабанов: Марков и Эволюция человека Автор: Дмитрий ШабановКафедра Ваннаха: Пришельцы на Луне Автор: Михаил ВаннахГолубятня-ОнлайнГолубятня: Даже гоблин ходит в отпуск Автор: Сергей ГолубицкийГолубятня: Железный парад 2011 Автор: Сергей Голубицкий.