Несмотря на прискорбный эксцесс, продолжающийся в комментариях к прошлому постингу, продолжим «архитектурную» тематику. Дело в том, что Pixel City, при всех его достоинствах, не то чтобы уникальное явление. Ниже приводится небольшая подборка аналогичных разработок — как коммерческих, так и некоммерческих.
В принципе, процедурные генераторы, во всяком случае процедурные генераторы природных ландшафтов, — вещь отнюдь не новая. Первое применение — 1980-й год:
Тогда это было технологическим чудом, очень быстро, кстати, нашедшим применение в кино. Сейчас такие пакеты, как Terragen, Bryce, Vue и прочие Mojoworld’ы, известны, пожалуй, всем, кто так или иначе интересовался данной темой.
Городские пейзажи — совсем другого рода явление. «Природного хаоса» в них гораздо меньше, более того, большую часть объектов в условном городе можно представить с помощью комбинаций примитивов (так в трёхмерных редакторах называются правильные геометрические фигуры), в основном, естественно, прямоугольных параллелепипедов, кубов и, реже, цилиндров. Видеоролик о создании Pixel City, кстати, это очень хорошо демонстрирует.
Впрочем, убедительно «город», состоящий из затекстуренных боксов, будет выглядеть только на общем плане. На ближнем — если речь идёт о фотореализме — уже потребуются высокодетализированные модели с большим количеством полигонов (и картами высот — height maps или bump maps — для совсем уж мелких деталей). И это тоже вполне достижимо с помощью процедурного подхода.
Вопрос, зачем это вообще нужно? Ну, например, для игр и кинематографа. Самый «близкий» пример: московская VFX-студия MainRoad|Post в лице своего технического директора Михаила Лёсина написала целый «городской движок» для фильма «Обитаемый остров» (в виде модулей для пакета Houdini).
Как рассказывал в интервью на сайте «Мир 3D» сам Лёсин, сделать это пришлось, поскольку изначальная задача по визуализации имперского города стояла очень неконкретно (в традициях, так скажем, российского кинематографа). Поэтому на всякий случай было решено сделать что-то достаточно гибкое, дабы структуру и модели зданий можно было менять на ходу. Результаты, судя по фильму, оказались весьма убедительными.
Ещё пример: коммерческий пакет City Engine компании Procedural, предлагаемый, как следует из описания, «профессионалам в таких областях, как сфера развлечений, архитектура, городское планирование, ГИС (географическая информационная система) и общее производство 3D-контента».
Пакет (во всяком случае, его профессиональные версии) поддерживает все стандартные форматы трёхмерных моделей, позволяет изменять городскую разметку на лету (вплоть до того, чтобы мышью двигать целые кварталы без разрушения общей структуры города), задавать правила расположения и этажности зданий на общегородском уровне и многое другое.
City Engine начинался как концептуальная разработка. Основной автор пакета — Паскаль Мюллер, в начале 2000-х работавший техническим директором компании Central Pictures и занимавшийся компьютерным видением в Швейцарском федеральном технологическом институте в Цюрихе. Возникшая в итоге компания Procedural — дочернее предприятие этого института.
Сейчас пакет продаётся в шести версиях, самая дешёвая из которых (студенческая) стоит 195 долларов, а самая дорогая (профессиональная) — 4950. Свежайшая версия вышла в 2010 году:
Вот ещё одна разработка, неизбежно приковывающая внимание:
Building Generator Plus. В отличие от City Engine — бесплатная. Правда, это не самостоятельный пакет, а скрипт для Autodesk 3ds Max. В ролике детализация потрясающая, а насколько с ним удобно работать — это могут сказать только пользователи 3ds Max и этого плагина.
В любом случае, как и многие творения энтузиастов, разрабатывается он довольно медленно.
Любопытный скрипт сделан для открытого 3D-редактора Blender: написанный на Python скрипт Suicidator City Engine (он же Blender City Generator) — разработка французского программиста Арно Кутюрье (Arnaud Couturier).
«На лету» моделирует город в соответствии с заданными параметрами; можно застроить свою столицу мира затекстуренными боксами, можно — весьма детализированными конструкциями со множеством полигонов. Естественно, если полигонов много, потребуется солидное количество оперативной памяти. К сожалению, пакет не обновлялся с конца 2009 года, так что его нынешний статус неясен.
Данный обзор, естественно, ни в коем случае не следует считать чем-то исчерпывающим; буду очень признателен, если уважаемые читатели подскажут что-то из этой же области.