[Из песочницы] Workflow 3D-художника. Как не утонуть в тонне информации. Часть 1

Всем привет, Хабр сообщество! Хочу сегодня рассказать Вам о workflow 3D-художников, как в это вникнуть и остаться со стабильной нервной системой. Статья нацелена на новичков в данной области, опытные акулы могут предаться ностальгии, вспомнить, как все начиналось.
В этой статье я опишу этапы создания моделей окружения. Так же в следующей части мы рассмотрим дополнительные этапы работ для художника по персонажам.

Расскажу Вам историю абстрактного персонажа Васи. Что-то в его жизни перевернулось, он решил забросить старое доброе рисование и податься в 3D. Вася, само собой, пошел смотреть, сколько же за данный труд молодым светилам платят и чего требуется. Открывает вакансию джуна, а там:

  • знание 3ds Max/Maya/Blender (все зависит от желания работодателя);
  • навыки low-poly, high-poly, каких-то страшных Subdiv моделингов;
  • UV mapping;
  • текстурирование PBR;
  • знание Substance Painter;
  • Photoshop;
  • Substance Designer;
  • еще бы желательно уметь в визуализацию V-ray/Corona/Keyshot;
  • умение рисовать от руки;
  • кто-то просит собрать сцену в Marmoset.


И все это не за какие-то там баснословные суммы, а за среднюю зарплату кассира или официанта (автор не утрирует).

Вася закрыл вакансию и каждый вечер плакал от количества страшных слов и вопросов в его голове.

Конец.

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

И первое, что хотелось бы отметить — никогда не соглашайтесь работать за еду. Не нужно понижать стоимость работы коллег по цеху, но также не нужно, сделав одну работу, просить миллионы. Когда чувствуете, что уровень ваших работ достаточен, чтобы получать за это деньги читай: мама говорит, что хорошо, желательно найти опытного человека и спросить, что он думает. И только когда он скажет, что все более-менее, тогда и нужно выходить на охоту.

Но пока мы разберёмся с чего начинать.

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

Краткий план статьи:

  1. Концепт
  2. Моделирование
  3. Retopology
  4. UVW Mapping
  5. Текстурирование


Концепт


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

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

В основном модельный лист — это концепт персонажей (как людей, так и животных), но я встречала даже модельный лист камня (внезапно). Выглядит он почти всегда так:

kadyc0kizfrbhrf8oafzffuyyda.png

Модельный лист персонажа

Тут нужно быть внимательным, существует их 2 вида: для аниматоров и для 3D-шников. Нам нужен тот лист, где фигура находится строго в A или T — pose или же так, как изображено в примере, есть несколько сторон (зад, перед, бок) и каждая из сторон совпадает с другой по линиям как на картинке ниже:

o80hnghjpok-tuqizt1rjxa5ymu.png

Его Величество Моделирование


И примерно с этого этапа начинаются расхождения. У каждого художника свой подход к работе и зависит от вида моделирования, конечной цели.

Виды моделирования

Так как чаще всего в суровом игровом производстве используется полигональное моделирование, будем рассматривать его. Существует low-/mid- и high–poly модели.

0ejsqy__hab_naytmwcao6ialgs.jpeg

Слева направо: low-poly, mid-poly, high-poly

Разница, думаю, понятна — кол-во полигонов и уровень детализации. Теперь, когда мы понимаем, какую нам предстоит модель сделать и с каким полигонажем работать, решаем, к какому типу она относится — hard surface или organic?

Пример Hard surface:

a8q5hihlhi48znw3-zs0h0d6qd8.png

Пример Organic:

wvx09z7jm1utzo7bea3ejx1xrke.png

Исходя из этого выбираем подход, потому как для hard surface удобнее использовать Subdivision modeling, а для органики — скульптинг. Но, как и в любом правиле, тут тоже есть исключения: в ZBrush можно изучить инструмент ZModeler и делать Subdiv или наоборот делать органические модели без использования скульптинга (последнее мне кажется нецелесообразным).

Что такое subdivision modeling?

Subdivision modeling являет собой метод представления гладкой поверхности посредством сглаживания более грубой полигональной сетки.

Фактически, вы строите сетку под сглаживание, а потом применяете модификатор Turbosmooth, который разбивает один полигон на четыре, переходит от примитива к гладкой и сложной форме. Вот как это выглядит:

_t0ocupsetfi1qhme6qpkf_wjdi.png

Поэтапное сглаживание грубой формы

Что такое скульптинг?

Все знают, как работает скульптор. Здесь принцип тот же, только работать нужно в цифровой среде.

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

Пример:

issvmieqxh8yja-z8jk9azcvaum.png

Создать такую детализацию с помощью Subdiv очень сложно, практически невозможно

Этапы для скульптинга и subdiv отличаются:

Subdiv:

  • построение общей формы для низкополигональной модели;
  • на этапе построения высокополигональной выполнение сглаживания;
  • добавление мелких деталей.


Скульптинг (для ZBrush):

  • блокинг в Dynamesh
  • ретопология (на этом этапе получаем low-poly, сохраняем отдельно)
  • уточнение деталей накручиванием Subdivision уровней (работает так же как Turbosmooth).


Примечание: детали лучше прорабатывать постепенно на каждом уровне.
Софт: 3ds max, Maya, ZBrush, Blender.

Retopology


Самый сложный этап для новичка — это ретопология. Это целая наука, которая имеет свои правила для анимации, кино, игр.

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

Рассмотрим более наглядный пример:

pqbrofgv0dnqcx_h5fs7d1dwoky.png

Персонаж, разделенный на субтулы (выделены цветом)

Все, что обозначено одним цветом — один сабтул.

Существует несколько правил, которые следует соблюдать при создании ретопологии:

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


На данный момент существует 2 вида ретопологии: ручная и автоматическая. Довольно удобно сначала сделать автоматическую, а затем исправить ошибки машины, однако профи все ещё предпочитают делать её вручную.

Если модель изначально имела Low-Poly версию, то вся ретопология состоит в том, чтобы найти способ из существующей сетки сделать сетку с еще меньшим кол-вом полигонов. Возможно, стоит удалить те части, которые не видно, к примеру, тело под одеждой.

Данную операцию можно выполнить как в софте, в котором вы моделировали, так и в специализированных программах, таких, как Topogun 2.

UV mapping


UV делают для того, чтобы текстура ложилась правильно, а не вот так:

punugraf1xs0xaqdp4v9cyjvjzy.png

Вот так выглядит растянутая текстура

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

Требования к качественной развертке:

  • при создании развертки обязательно нужно создавать швы, по которым она будет раскрываться;
  • швы желательно прятать туда, куда не доберется любопытный игрок;
  • элементы развертки нужно распределять в пределах данной Вам области (шахматный квадрат);
  • пространство квадрата должно быть максимально заполнено (чем больше размер части развёртки, тем более качественной будет текстура);
  • желательно все элементы разложить уникально, но бывают случаи, когда некоторые из них можно наложить друг на друга (обычно называют «оверлап»), если они не видны игроку и не обязательно требуют уникальности, например, ножки стула;
  • оставляйте некоторое пространство между элементами, чтобы избежать «вытекания» на другие части карты.


Делать UV нужно на низкополигональную модель, чтобы потом запечь на неё детали с высокополигональной и, собственно, затекстурировать. При этом низкополигональная модель выглядит как высокополигональная, но количество полигонов остается прежним.

«Запечь» означает перенести некоторые характеристики материала или сетки модели на изображение карты. Тот же принцип использует художник, когда на плоском листе бумаги изображает объем, цвет и свет.

После того, как развертка сделана, мы можем посмотреть на результаты наших трудов:

najne-mm3rwwtub_k0efmbgetkc.png

Слева изображена развертка представленной модели

Зелёные полосы на модели человека — это те самые швы, по которым её разворачивают.

Сейчас каждая уважающая себя программа имеет возможность проделать такую операцию, есть так же специализированные, такие как UVlayout, RizomUV. Я всегда использовала возможности 3ds max, вполне хватало.

Прежде чем переходить к запеканию текстур, было бы неплохо сделать следующие действия:

1. Триангуляцию низкополигональной модели, то есть разбить многоугольники на треугольники, так как при неправильном автоматическом разбиении могут появится проблемы с нормалями (направлениями полигонов), что приведет к ненужным артефактам. Но я этого не делаю, потому что современные алгоритмы на мой взгляд хорошо с этим справляются и, если случаются подобные проблемы, я возвращаюсь с этому шагу и исправляю;

2.Создать Cage. Cage, простыми словами, — это версия низкополигональной модели, подогнанная таким образом, чтобы полностью перекрывать высокополигональную. При её построении у моделей должны быть одинаковые координаты;

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

kj01g9q8l1zbwng9j8wi1o2k87u.png

Синяя решетка вокруг модели — cage, то пространство, которое будет захватывать детали из высокополигональной модели

3. Назначить каждой части модели (в ZBrush — сабтулы) свой материал, чтобы при импорте в Substance Painter они были так же разделены, а не слились воедино.

Переходим к текстурированию.

Текстурирование и запекание текстур


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

Запекание происходит автоматически, все, что Вам нужно — импортировать в программу Low-poly модель с разверткой (обязательно!), после выбрать соответствующую опцию, загрузить высокополигональную модель, выбрать разрешение карт, загрузить Cage или же выбрать отступы от модели и нажать кнопку Bike All Texture sets.

PBR texturing

Самая распространенная технология текстурирования в играх PBR — Physically-Based Rendering, позволяет создать фотореалистичные текстуры с помощью набора карт.

Часто используемые карты:

  • Ambient Occlusion — показывает взаимодействие между элементами модели. Эта карта создает мягкое затенение, будто модель освещена без прямого света;
  • Diffuse — определяет цвет и рисунок объекта;
  • Metallic — показывает, насколько материал металлический;
  • Roughness — контролирует четкость отражений света, показывает шероховатость объекта;
  • Normal — отвечает за рельеф модели, каждый цвет показывает разные оси направления.


Вот как это выглядит на самом примитивном примере:

gtnirlv__yzrog1rtlqhlutvmys.jpeg

Слева квадрат без карт нормалей, справа карта нормалей присутствует

В Substance Painter очень широкий функционал, который делает текстурирование гораздо легче: можно рисовать сразу по модели, использовать разнообразные альфы, готовые hard surface штампы, процедурные карты, фильтры, маски — в общем, полное раздолье для фантазии.

После Вы получите карты, которые можно экспортировать и отправлять сразу в любой игровой движок, здесь есть много шаблонов: под Unity 4/5, Unreal Engine, Dota 2, V-ray, Corona и тд.

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

Благодарю за прочтение, may the force be with you!

© Habrahabr.ru