[Секреты Взертоса] Настройка рендера для Blender-а.

Товарищи, привет!


Была у меня мысль сделать какой-либо материал по Взертосу, возможно, с нотками обучения или из ряда «как это было, но я не помню, но постараюсь повторить». Так уж вышло, что я человек больше графической направленности и поэтому хотелось рассказать либо про комиксы (что кстати я мельком сделал), либо про 3Д рендер, моделирование и около того. Делал 3Д\рендеры я в Blender3D, а уроков и статей по этому инструменту примерно овердофига. Т.е. смысла делать именно «урок» я не видел, но хотел было поделиться как делалось, вдруг кому будет интересно или кто-то захочет повторить или даже подсказать как можно было иначе сделать это-вот.

Думал сделать видео для наглядности. В силу того, что гласа у меня нет, то было бы очень нудно. Ещё нуднее, чем 3 подземелья во Взертосе!
Потом было подумал, что вариант со пробной статьёй был бы не так уж и плох, учитывая, что в чате Гамина мне посоветовали тоже самое.


Сразу в бой

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

Т.к. это тест-статья, то я сначала покажу небольшую часть, потом, возможно, обновлю этот пост. Часть эта собственно и называется ...

Настройка сцены

Стандартная сцена Блендера выглядит примерно вот так:

screen_1.png

Обычно я всегда удаляю сразу всё т.к. в самом начале оно всё мешает. Особенно эта лампа, которая светит прямо в глаза! (нет)

Для Взертоса словно пришёл кинооператор со всеми инструментами и начал настраивать съёмочную площадку.
Особенностью является то, что мне необходимо было получить рендер модели в 8 направлениях. По большей части это дело анимации, но для удобства был добавлен объект «окружность» ( Add — Mesh — Circle ) и затем для удобства был удалён полигон(но не вершины), была добавлена форма стрелки из вершин и граней.

screen_2.png

Зачем же этот объект нужен? Он выполняет роль подставки, которую можно крутить, примерно как у скульпторов. Перед этим конечно нужно будет привязать объект к этой «подставке», но об этом немного позже.

Камерамэн

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

Камера установлена в положении (XYZ) = (0.0, -26.0, 15.0). Почему именно это положение? Ну во-первых цифры более-менее «круглые», а это мне нравится. А во-вторых (но на самом деле более важная часть) — угол в 60 градусов. Но важно отметить, что 60 градусов здесь относительно оси Z, которая вертикальная и идёт вверх. Т.е. если рассчитывать угол от «пола», то он будет равен 30 градусам.

У камеры так же есть своя «пустышка» или же «центр взгляда», который действительно помогал мне в некоторые моменты. По сути с её помощью просто удобнее делать сдвиг камеры по Z (для итогового изображения получается по оси Y).

Вот так это выглядит.

screen_3.png

Так же очень важен момент, что камера должна иметь ортогональную проекцию и верный ортогональный размер. Вот мои настройки:

screen_cam.png

Они могут меняться в зависимости от нужд. Например, при рендере локации Медитастоун параметр Scale был больше 100, чтобы вся локация влезла в «объектив».

Для удобства оперирования объектами, рендером и вообще порядка в сцене используются (мной) слои.

screen_layers.png

Можно выделить объекты, нажать на [M] и выбрать на какой слой отправить объект. Это не те же самые слои, что и в Фотошопе, Гимпе или Крите. Тут они скорее играют роль «слотов», нежели слоёв. Жаль нельзя добавить больше, чем доступно с самого начала.
Таким образом я разделяю часть «камера», «подставка» и собственно сами модели на других слоях.

Но есть ещё один слой ...

Солнце светит. Или не солнце. Или не светит.

Третий «системный» слой это 2 источника направленных света. Один из них основной свет «солнца», а второй вспомогательный, чтобы модель не была засвечена только с одной стороны.

По сути установки всё готово.
Свет, камера ... осталось только прокричать «мотор», да вот только снимать нечего — нет модели, а у неё нет анимации. Но даже если бы и были, то это ещё не конец. Далее не менее важный момент ...

Установки рендера

В этом проекте я использовал так называемый «old-school style» т.е. намеренный понижение размера итогового изображения, никакого сглаживания и даже было думал ограничить цвет.

Собственно в этом и заключается часть настроек: снижаем размер итогового изображения (конкретно в этом примере это 38% от 256х256), убираем сглаживание anti-aliasing, во вкладке Shading ставим Alpha: Transparent (по стандарту там Sky).

screen_4.png

Можно рендерить! Но .. постойте! Где же «секрет рендера»?

screen_5.png

«Секрет рендера»

(на самом деле не очень)

То, к чему я пришёл уже почти после первых версий игры. Когда-то эта идея забылась, но вспоминалась, когда я хотел было сделать свою ДДНТ (где кстати тоже есть Взертос), в том проекте я ориентировался на графику Доты2 и тут сидела подсказка, суть которой в том, что...

Всё что ниже, ближе к полу — темнее, всё что выше — светлее. Используй умный градиент, дубина!

Суть простая. Когда рендрится картинка, то она как бы «пустая» т.е. да, там есть свет, тени, но чего-то не хватает.

Нужно просто домножить картинку на чёрно белый градиент — легкая мысль, но реализация не так проста.
Если просто «затемнить» по градиенту, то это будет «не торт» т.к. геометрически неверно.

Следующей мыслью было то, чтобы взять координату по Z и уже на основе этой координаты считать градиенты. И собственно это помогло. Далее нужно было ещё придумать как же так на каждый материал это ставить. НА КАЖДЫЙ ?! ЧТО?! ДА У МЕНЯ 100500 МОДЕЛЕЙ УЖЕ ГОТОВО!!!


Предыдущий опыт подсказывал мне, что можно воспользоваться каким-то методом пост-процесса. И хорошо было бы ставить на все объекты один материал перед рендером, эх, вот если бы Блендер уме... постойте! Так он умеет! Да, можно поставить на всю сцену один материал, при этом не запароть данные сцены! Вот это я и называю настоящими слоями — можно отрендерить разные части сцены (но с одной камеры видимо) и потом по своему усмотрению их «композировать».

screen_6.png

Добавлено:

Структура материала для получения Z-градиента, который в Height_Layer и matHeightMetr:

screen_znode.png


На этом часть «Секретов Взертоса» закончена.

Дальше могу написать немного о анимации. Вернее как её рендерить «правильно».

Надеюсь кому-то было интересно, полезно и что-это-за-набор-букв?!

Всем мир И СЛАВА РОБОТАМ!