Making Of "Цеппелины её Величества"
Всем привет! Меня зовут Глеб Александров или Spelle, мне 25 лет. Фанатею от компьютерной графики и разработки компьютерных игр. Воздушный флот её Величества стал первым конкурсом на Render.ru, в котором я дерзнул поучаствовать, а также первым проектом, для которого использовал Блендер — быстро развивающийся бесплатный софт. Конкурс послужил реальным стимулом для освоения тонкостей этой программы. Теперь, когда конкурсный кранч преодолел свой пик, мне хочется рассказать о процессе создания «Цеппелинов её Величества».
Идея
В 1880-м году молодой Никола Тесла совершил эпохальное открытие, доказав существование эфира и возможности с минимальными затратами электроэнергии использовать вращающееся магнитное поле для создания подъёмной силы, направленной обратно относительно вектора гравитации.
Считая эту технологию достоянием человечества, он отослал пакеты с подробным описанием технологии и всеми инструкциями по изготовлению "эфирного подъёмного двигателя" правительствам всех ведущих мировых держав. Британская Империя, желая обрести статус не только величайшей морской, но и величайшей воздушной державы, при огромных потраченных средствах первая сумела построить верфи и заложить на них флот бронированных воздушных кораблей.
Практически неуязвимые для зенитного огня, несущие мощный броневой пояс, отлично вооружённые и маневренные, воздушные корабли Флота её Величества одним своим видом внушали ужас противникам Империи.
Примерно так можно описать идею картинки. Однако, начиналось всё с поиска композиции для смутного образа, возникшего в голове: громадные цеппелины влетают в порт. Сразу попытался формализовать этот образ: открытое пространство, игра света и тени, силуэты паровых машин, готический собор с нервюрами на сводах и стрельчатыми окнами, тёмные пятна кораблей на светлом фоне неба.
Наброски и референсы
Отправной точкой для скетча послужил собор св.Вита в Праге.
На быструю руку оформив тональное решение, приступил к моделингу.
Рабочий процесс
Вкратце расскажу об организации рабочего процесса. Проекты стараюсь структурировать, чтобы не потерять контроль над происходящим, когда проект разрастётся. Для себя выработал такую схему именования папок:
Download — практически всё, что качается из интернета и может понадобится для работы, попадает в эту папку. В ней располагаются подпапки — steampunk, trains, zeppelins и т.д.
Export — обмен моделями между программами
Feedback — черновые рендеры для отслеживания прогресса и, в данном случае, для выкладывания на форуме
Output — сюда попадают слои, пассы для композа
Ref – референсы
Saves (blender) — исходники сцен в формате .blend
Saves (ps) – аналогично для фотошопа. Обычно, исходные псд-шки, из которых экспортируется текстура
Test — эксперименты, альтернативные версии сцен, полигон для тестирования вещей, которые могут сломать сцену или блендер, или вообще систему
Textures — текстуры в таком виде, как они используются в сцене
Файлы стараюсь именовать описательно: scene_zeppelins__01, tex_metal_rusty_02, ps_compose_final и т.д. Быстрые идеи реализую в отдельном файле в папке test, потом сливаю с основной сценой.
Последовательно двигаться от скетча к моделингу, от моделинга к текстурированию получается не всегда. Если сцена насыщена объектами, в ней наступает момент, когда разделение на стадии теряет смысл. Становится проще мыслить группами объектов, или слоями, чем разделять процесс на моделинг-материалы-рендеринг.
Отчасти это связано с тем, что все составляющие сцены взаимодействуют друг с другом: передвинул свет — изменился блик на материале, добавил модель — появилось большое и тяжёлое пятно тени, твикнул цвет текстуры на колоннах — перекрасился корабль за счёт вторичных отскоков освещения. В свою очередь, всё вышеперечисленное влияет на то, как надо настраивать рендер.
Часто возвращаюсь к стадии скетчевания, чтобы толкнуть забуксовавшую сцену, по-быстрому посмотреть, что можно улучшить и поменять.
Ещё возвращаюсь к скетчу, когда чувствую, что начинаю уходить в моделинг мелких деталей и теряю импульс, изначально заложенный в композиции. Тогда передвигаю объекты на плоскости, тонально отделяю планы друг от друга, в общем — возвращаюсь к рисованию.
Блендер — полезные дополнения и настройки
В качестве основного инструмента использовал Blender, рендерил с помощью Cycles. Несколько дополнений, которые позволяют улучшить взаимодействие с Блендером и ускорить его вьюпорт:
Quick tools - в отдельную менюшку, всплывающую при нажатии Q, вынесены функции для работы с симметрией, модификаторами, шейдингом, что позволяет экономить клики. Вместе с Add Mirror удобно сразу же применять Add Target – по координатам 3d курсора создаётся Empty, который автоматически становится Mirror Object для модификатора Mirror.
http://cgcookie.com/blender/2013/05/14/using-the-quick-tools-add-on/
Material Utils – позволяет массово назначать материалы.
Display Tools – набор утилит для настройки вьюпорта. Перечислю самые, на мой взгляд, полезные функции. Fast Navigate — во время навигации вьюпорт уходит в bounding box режим, похожая функция есть в Максе.
Wire On – аналог клавиши F4 в Максе, отображает сетку поверх модели на выделенных объектах.
Double Sided off – массово отключает отображение бэк-фэйсов для выделенных объектов. Данная настройка радикально ускоряет вьюпорт. Без неё на миллионе полигонов уже вполне ощущается торможение. С включённой опцией такая же производительность на моей видеокарте наблюдается на 5-7 миллионах.
Ключевые настройки для ускорения вьюпорта - включённый VBO (Vertex Buffer Objects), а также пустой модификатор (к примеру, Simple Deform с нулевым влиянием) после Subsurf модификатора. По неизвестной причине, Subsurf наверху стэка игнорирует VBO.
Хоткеи. Поставил переключение вьюпорта в rendered режим на клавишу ctrl-shift-alt-z. По умолчанию, горячей клавиши на эту функцию нет, пришлось покопаться в настройках ввода.
Окружение
Аркаду моделил, используя group instance. Другими словами, изменения, которые я вносил в исходную группу, передавались всем инстансам. Арка представляет собой кривую с профилем bevel object. По ходу действия добавлял к исходной арке механизмы, детали и прочие украшательства — эти изменения также передавались инстансам. Вся аркада впоследствии отзеркалена, чтобы образовать купол.
Изначально камера витала на приличной высоте — за счёт этого съедался масштаб. Чтобы храм смотрелся фундаментально, камера была перемещена на высоту человеческого роста.
Для определения масштаба — как напоминалка о том, что мы делаем нечто огромное — по платформе были раскиданы человечки.
Механизмы делал, отталкиваясь от паровых двигателей, локомотивов, часовых механизмов, кранов.
Копипастил детали время от времени, располагая в разных местах и поворачивая под разными углами. К примеру, локомотив впаян в самый ближний из домов, а также расположен на колонне.
Для придания техногенности решил добавить обрыв на передний план. К тому времени проскочила идея подвесить весь храм в воздухе, на антиграве, но в итоге решил не уходить от реалий лондонской улицы. Опять же, использовал уже замоделенные элементы сцены.
Чтобы в картинке прочитывалась логика городской жизни, решено было сделать дорогу с машинами, заменить дома на менее фэнтезийные.
Детали
Когда костяк сцены был готов, приступил к деталированию. Разрушил колонну, чтобы добавить разнообразия в аркаду. Затем начал прорабатывать детали городского быта — фонари, прожектора, лампы. Лифты для подъёма на «верфи».
Ограду, леса, трубы, часы, провода, дамбу, набережную.
Затем просимулировал флаги, переделал материал свода, чтобы усилить ощущение масштаба за счёт тайлинга кирпичей, а также чтобы убрать сходство со штукатуркой.
Цеппелины — поиск концепта
Концепт кораблей пересматривался несколько раз. Однако, все три версии по форме напоминают цеппелин — мысль упорно не хотела отходить от стимпанковского мотива.
Первая версия кораблей — забавные рыбы с гарпуном и матерчатым пузом.
Потом пришла идея сделать что-то наподобие воздушного локомотива, собранного из частей «земных» поездов. Но эта задумка не работала.
Третья версия оказалась финальной,- эдакий led zeppelin с крутящимся магнитным полем (также можно пофантазировать о хроно-двигателях и о том, как они искажают время и гравитацию).
Плавники на передней части корабля были добавлены, чтобы разбить фаллическую форму и сделать силуэт интереснее. Позже они пригодились, когда искал место для маркировки. Ещё было прикольно представлять цеппелины рыбами или подводными лодками — получался сюрреалистический воздушно-водный мир.
В процессе добавлял деталей, чтобы определить функцию корабля и его принадлежность к флоту Её Величества. Флагману достались бомболюки, пушки, цельная броня (шестерни защищает магнитное поле), дополнительные антиграв-двигатели для маневрирования, прожектора. Тактический номер — HMA – расшифровывается как Her Majesty's Air Fleet. Такая маркировка существовала в действительности. Также использовался крылатый значок Royal Flying Corp.
Моделировались цеппелины из простых фигур — сферы, цилиндра, с последующим экструдом граней. В окно фронтальной проекции вставлялся скетч — при моделинге я ориентировался на его изгибы.
Текстура флагманского цеппелина рисовалась по uv-развёртке.
Остальные цеппелины были текстурированы, преимущественно, через smart uv project, box mapping и project from view. Uv-островки, полученные в ходе анврапа этими методами, располагались на текстуре флагмана.
Освещение
Освещение выставил в самом начале работы, и с тех пор не менял основу. Из источников света - солнце и hdr-ка. Когда обрабатывал hdr-ку, старался сделать так, чтобы с одной стороны «сферы» находились холодные оттенки, а с противоположной к ней стороны — тёплые.
Свод подсвечен отдельно, чтобы свет ритмически чередовался с тенью. Постоянно добавлял омники для подсветки и для цветового акцента. Все дополнительные источники света сгрузил на отдельный слой, чтобы не мешали во вьюпорте и при черновых рендерах. В целом, стоило бы рациональнее расставить свет. Но, поскольку такая схема работала, решил не трогать.
Слои для рендера
В процессе работы разбил сцену по слоям примерно вот так:
1. храм — аркада, передний план с обрывом
2. флаги, фонари
3. дома (ближние)
4. дома (фоновые), леса
5. цеппелин — флагман
6. цеппелин — погрузчик-транспортёр
7. цеппелины — рабочие порта
8. краны, люди, ограда
9. дополнительные источники света
12. провода, дальняя набережная, декоративные элементы аркады
13. дальние дамбы, сплайновая основа для«магнитного поля» кораблей
Пассы
К слоям, то есть, к группам объектов, рендерил и пассы. Чаще всего ambient occlusion, z-depth (или блендеровский mist), diffuse direct.
Для автоматического экспорта всего этого добра использовал аддон Save Layers and Passes. Очень удобная штука, не пришлось вручную в композере расставлять ноды, указывать имена и папки.
Настройки рендера
Рендерил на процессоре, видеокарта отказывалась обрабатывать 10 млн. треугольников. В среднем, уровень шума в картинке становился удовлетворительным после 500-1000 сэмплов. Слой с аркадой потребовал 4000 сэмплов.
Cимуляция дыма
Для композа просимулировал дым в Блендере. На эмиттере плотность дыма (density) анимирована с нуля до единицы — (0-80 кадр), чтобы не создавался дымовой выхлоп. Дым сдувался ветром в сторону.
Также пробовал зарендерить тучу для фона, используя аддон cloud generator. Из тестов понял, что годится только на подмешивание при композе, в малых дозах. На будущее отметил, что в мультяшную стилистику такие тучки могут вписаться.
Композ и постобработка
К кораблям, зданиям, аркаде через multiply подмешивал пасс ambient occlusion. Через z-depth пасс увёл всё в воздушную перспективу.
Нарисовал/собрал из фотографий задник, по настроению хотелось сделать грозовую тучу и туманный Альбион. Город с непременным атрибутом английскости, Биг-Беном, должен был служить привязкой к Лондону.
Заменил людей, добавил фоновые корабли. Засветились мелкие фонарики, бортовые огни, маячки. Проявился объёмный свет.
Пришла идея сделать акцент на кораблях, визуализировать магнитное поле, создаваемое антиграв-двигателями. Основу для поля смоделил и при постобработке придал ей свечение.
Клеем для композиции послужила виньетка и цветокоррекция (согнал цветовой диапазон в комплиментарные цвета — оттенки холодного синего и тёплого оранжево-коричневого). В таком виде картинка стала достаточно цельной для того, чтобы её финализировать.
Из того, что можно было бы сделать лучше: некоторые детали не подчиняются логике, к примеру, шестерни парят в воздухе безо всякого антиграва (Michael Black, спасибо за коммент). Людей и машинки можно допиливать, есть косячки. Возможно, переборщил с дымом (хотя мне нравится, как дым играет в стимпанк-сеттинге). В целом, я приятно удивлён и обрадован положительными отзывами, которые получила работа при обсуждении на Render.ru. Это действительно мотивирует.
Хочу выразить сердечную благодарность моей жене Лене, которая помогала мне дельным советом и вкусным кофе во время работы над цеппелинами. Без её художественного чутья картинка не состоялась бы — многие композиционные и стилевые решения были приняты с её подачи.
Благодарю за внимание. Всем удачи и творческих успехов!