Жил на свете хороший программист, который, похоже, развлечения ради написал программу — процедурный генератор городских ландшафтов (почти, кстати сказать, фотореалистичных). Процедурный означает, что вручную там ничего не моделировалось и не рисовалось, всё сделано с помощью алгоритмов. Автор — Шеймус Янг — не придумал своей разработке лучшего применения, кроме как выпустить её в качестве скринсейвера. Правда, он успел ещё и выложить на Youtube ролик, в котором рассказывается, как это всё делалось.

UPD: Автор блога «Архиальтернатива» (http://archialternative.ru/) в резких выражениях потребовал признания того факта, что первым про Pixel City написал он. Признаю это. Внимание! Первичным источником ссылок является:

http://archialternative.ru/

Ну, и вернёмся к видеоролику.

Для людей, которые не разумеют по-английски, переведём:

«Цель: Создать ночной городской пейзаж, не используя ничего, кроме процедурно сгенерированного контента.

Шаг 1: Генерируем серию текстур, которые выглядят как освещённые окна.

Шаг 2: Генерируем здания в нескольких различных стилях (Типовые здания, классические строения, современные офисные башни).

Шаг 3: Разместим ряды простых точек, изображающих «уличные фонари».

Шаг 4: Заполним пространство между улицами зданиями, более высокими в центре и более низкими по краям.

Шаг 5: Добавим синий градиент у горизонта, чтобы сымитировать небо. Добавим несколько тёмных пятен в качестве облаков.

Шаг 6: Заспамим улицы маленькими красными и белыми точками, которые будут вести себя как «автомобили».

Шаг 7: Выпустим это как… Чёрт. Я на самом деле понятия не имею, зачем эта штука нужна. Скринсейвер? Может быть. Не знаю.

[В общей сложности:]
*Около 1700 случайно сгенерированных зданий.
*43 тысячи полигонов.
*50 часов работы.
*Типа мило смотрится.

Стоит, наверное, сделать несколько пояснений. Во-первых, тут явно видные некоторые простые спецэффекты — цветные halo, например, которые окружают светлые участки. Поэтому всё это и выглядит почти реалистично — как будто каждое окошко и уличный фонарь действительно являются источниками света.

Процедурные текстуры, изображающие освещённые окна, прекрасны: там не только случайно (или не очень) выбирается, какие «окна» затемняются целиком, но и какие участки отдельных освещённых окон следует затемнить. Монолитный светлый прямоугольник на настоящее освещённое окно будет походить мало. А тут мы как будто даже видим людей, стоящих у окон. Хотя только за счёт движения камеры это выглядит приемлемо.

Pixel City: процедурный генератор городских ландшафтов
Pixel City: процедурный генератор городских ландшафтов

Автор — сугубый программист, не имеющий никакого отношения к архитектуре. Pixel City он, по его собственному признанию, разрабатывал исключительно «по приколу».

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

Когда я делал Pixel City, меня особенно интересовал вопрос: что подумает настоящий архитектор об этом. Должен сказать, что вот это — лучший ответ, на который я мог надеяться.

Прочтите этот постинг (здесь ссылка на русский перевод. — Ю.И.). Я даже представления не имел, что люди пытались с помощью процедурных генераторов воспроизводить реальное пространство. Я не уверен, что знаю, зачем это нужно. Я даже представить не мог, что людям могло понадобиться конструировать какие-то общераспространённые вещи в оптовых количествах, а именно для этого автоматизация и хороша. Если бы я занимался заполнением контентом игрового мира FUEL, я бы использовал процедурную генерацию. Но на то, чтобы распланировать свой собственный сад и подъездную дорожку к гаражу, я не поленился потратить время и разместил бы всё именно так, как мне нужно».

А вот зачем такие штуки могут понадобиться (в том числе и дядям с Очень Большими Деньгами), будет рассказано в отдельном постинге.