[Из песочницы] 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.
И все это не за какие-то там баснословные суммы, а за среднюю зарплату кассира или официанта (автор не утрирует).
Вася закрыл вакансию и каждый вечер плакал от количества страшных слов и вопросов в его голове.
Конец.
Дабы уменьшить количество сломанных судеб, я берусь все разъяснить.
Не нужно понижать стоимость работы коллег по цеху, но также не нужно, сделав одну работу, просить миллионы. И первое, что хотелось бы отметить – никогда не соглашайтесь работать за еду. И только когда он скажет, что все более-менее, тогда и нужно выходить на охоту. Когда чувствуете, что уровень ваших работ достаточен, чтобы получать за это деньги читай: мама говорит, что хорошо, желательно найти опытного человека и спросить, что он думает.
Но пока мы разберёмся с чего начинать.
Но все же удобнее использовать специализированные программы, потому я буду указывать некоторые из них, подходящие определенному этапу работы.
И так, приступим. Нужно понимать, что список требуемых работодателями программ довольно усредненный, при большом желании можно вообще все в одной сделать и получить ачивку «Этот парень смог, с ним шутки плохи».
Краткий план статьи:
- Концепт
- Моделирование
- Retopology
- UVW Mapping
- Текстурирование
Концепт
Первое, что должно быть у вас в голове – это концепт. Вы должны точно знать, что хотите получить в конце, считаю, что творческий полет себе может позволить только опытный человек (немного отходить от концепта позволительно).
Тут есть несколько вариантов: вы можете нарисовать концепт самостоятельно, дабы видеть, что в итоге получится, а можете воспользоваться готовым модельным листом, коих в интернете куча (только не забудьте получить разрешение автора, либо делайте для себя, никуда не публикуйте).
Выглядит он почти всегда так: В основном модельный лист – это концепт персонажей (как людей, так и животных), но я встречала даже модельный лист камня (внезапно).
Модельный лист персонажа
Нам нужен тот лист, где фигура находится строго в A или T – pose или же так, как изображено в примере, есть несколько сторон (зад, перед, бок) и каждая из сторон совпадает с другой по линиям как на картинке ниже: Тут нужно быть внимательным, существует их 2 вида: для аниматоров и для 3D-шников.
Его Величество Моделирование
И примерно с этого этапа начинаются расхождения. У каждого художника свой подход к работе и зависит от вида моделирования, конечной цели.
Виды моделирования
Существует low-/mid- и high–poly модели. Так как чаще всего в суровом игровом производстве используется полигональное моделирование, будем рассматривать его.
Слева направо: low-poly, mid-poly, high-poly
Теперь, когда мы понимаем, какую нам предстоит модель сделать и с каким полигонажем работать, решаем, к какому типу она относится – hard surface или organic? Разница, думаю, понятна – кол-во полигонов и уровень детализации.
Пример Hard surface:
Пример Organic:
Но, как и в любом правиле, тут тоже есть исключения: в ZBrush можно изучить инструмент ZModeler и делать Subdiv или наоборот делать органические модели без использования скульптинга (последнее мне кажется нецелесообразным). Исходя из этого выбираем подход, потому как для hard surface удобнее использовать Subdivision modeling, а для органики – скульптинг.
Что такое subdivision modeling?
Subdivision modeling являет собой метод представления гладкой поверхности посредством сглаживания более грубой полигональной сетки.
Вот как это выглядит: Фактически, вы строите сетку под сглаживание, а потом применяете модификатор Turbosmooth, который разбивает один полигон на четыре, переходит от примитива к гладкой и сложной форме.
Поэтапное сглаживание грубой формы
Что такое скульптинг?
Здесь принцип тот же, только работать нужно в цифровой среде. Все знают, как работает скульптор.
И если сравнивать скульптинг и Subdiv, то основное преимущество в том, что с его помощью создаются высокодетализированные объекты состоящие из миллионов полигонов, благодаря чему достигается фотореалистичное качество модели, и основная область его применения – это, конечно, создание органических моделей имеющих сложную форму и фактуру, копирование реальных, создание фантастических или сказочных персонажей, животных, растений, ландшафтов и даже мебели.
Пример:
Создать такую детализацию с помощью Subdiv очень сложно, практически невозможно
Этапы для скульптинга и subdiv отличаются:
Subdiv:
- построение общей формы для низкополигональной модели;
- на этапе построения высокополигональной выполнение сглаживания;
- добавление мелких деталей.
Скульптинг (для ZBrush):
- блокинг в Dynamesh
- ретопология (на этом этапе получаем low-poly, сохраняем отдельно)
- уточнение деталей накручиванием Subdivision уровней (работает так же как Turbosmooth).
Примечание: детали лучше прорабатывать постепенно на каждом уровне.
Софт: 3ds max, Maya, ZBrush, Blender.
Retopology
Самый сложный этап для новичка – это ретопология. Это целая наука, которая имеет свои правила для анимации, кино, игр.
Для игровой ретопологии обычно сливают подобные элементы по принципу «все, что можно отделить – отдельно». Сперва на текущем этапе было бы неплохо упорядочить части модели, возможно, некоторые слить, а другие оставить.
Рассмотрим более наглядный пример:
Персонаж, разделенный на субтулы (выделены цветом)
Все, что обозначено одним цветом – один сабтул.
Существует несколько правил, которые следует соблюдать при создании ретопологии:
- в тех местах, где модель будет двигаться, следует сделать сетку более плотной и анатомически правильной (построить под естественную анатомию);
- никаких n-гонов, только квадраты, прямоугольники и треугольники, хотя последних лучше избегать;
- используйте минимальное количество полигонов для описания формы;
- если квадратный полигон деформирован, лучше разделить его на треугольники, провести диагональ;
- нужно соблюдать баланс в размерах полигонов, они должны быть примерно одинаковыми и выглядеть гармонично;
- сетку лучше создавать симметричной, а после редактировать, если модель ассиметрична.
На данный момент существует 2 вида ретопологии: ручная и автоматическая. Довольно удобно сначала сделать автоматическую, а затем исправить ошибки машины, однако профи все ещё предпочитают делать её вручную.
Возможно, стоит удалить те части, которые не видно, к примеру, тело под одеждой. Если модель изначально имела Low-Poly версию, то вся ретопология состоит в том, чтобы найти способ из существующей сетки сделать сетку с еще меньшим кол-вом полигонов.
Данную операцию можно выполнить как в софте, в котором вы моделировали, так и в специализированных программах, таких, как Topogun 2.
UV mapping
UV делают для того, чтобы текстура ложилась правильно, а не вот так:
Вот так выглядит растянутая текстура
«UVW развёртка» или просто «развёртка» – такое название приобрела эта операция путём обычного перевода с английского Unwrap UVW.
Требования к качественной развертке:
- при создании развертки обязательно нужно создавать швы, по которым она будет раскрываться;
- швы желательно прятать туда, куда не доберется любопытный игрок;
- элементы развертки нужно распределять в пределах данной Вам области (шахматный квадрат);
- пространство квадрата должно быть максимально заполнено (чем больше размер части развёртки, тем более качественной будет текстура);
- желательно все элементы разложить уникально, но бывают случаи, когда некоторые из них можно наложить друг на друга (обычно называют «оверлап»), если они не видны игроку и не обязательно требуют уникальности, например, ножки стула;
- оставляйте некоторое пространство между элементами, чтобы избежать «вытекания» на другие части карты.
Делать UV нужно на низкополигональную модель, чтобы потом запечь на неё детали с высокополигональной и, собственно, затекстурировать. При этом низкополигональная модель выглядит как высокополигональная, но количество полигонов остается прежним.
Тот же принцип использует художник, когда на плоском листе бумаги изображает объем, цвет и свет. «Запечь» означает перенести некоторые характеристики материала или сетки модели на изображение карты.
После того, как развертка сделана, мы можем посмотреть на результаты наших трудов:
Слева изображена развертка представленной модели
Зелёные полосы на модели человека – это те самые швы, по которым её разворачивают.
Я всегда использовала возможности 3ds max, вполне хватало. Сейчас каждая уважающая себя программа имеет возможность проделать такую операцию, есть так же специализированные, такие как UVlayout, RizomUV.
Прежде чем переходить к запеканию текстур, было бы неплохо сделать следующие действия:
Триангуляцию низкополигональной модели, то есть разбить многоугольники на треугольники, так как при неправильном автоматическом разбиении могут появится проблемы с нормалями (направлениями полигонов), что приведет к ненужным артефактам. 1. Но я этого не делаю, потому что современные алгоритмы на мой взгляд хорошо с этим справляются и, если случаются подобные проблемы, я возвращаюсь с этому шагу и исправляю;
Cage, простыми словами, – это версия низкополигональной модели, подогнанная таким образом, чтобы полностью перекрывать высокополигональную. 2.Создать Cage. При её построении у моделей должны быть одинаковые координаты;
Выглядит это так:
Синяя решетка вокруг модели – cage, то пространство, которое будет захватывать детали из высокополигональной модели
Назначить каждой части модели (в ZBrush — сабтулы) свой материал, чтобы при импорте в Substance Painter они были так же разделены, а не слились воедино. 3.
Переходим к текстурированию.
Текстурирование и запекание текстур
Запечь нужные текстуры Вы можете в той же программе, в которой моделировали, я же использую для этих целей Substance Painter – наглядно, удобно, чего еще нужно.
Запекание происходит автоматически, все, что Вам нужно – импортировать в программу Low-poly модель с разверткой (обязательно!), после выбрать соответствующую опцию, загрузить высокополигональную модель, выбрать разрешение карт, загрузить Cage или же выбрать отступы от модели и нажать кнопку Bike All Texture sets.
PBR texturing
Самая распространенная технология текстурирования в играх PBR — Physically-Based Rendering, позволяет создать фотореалистичные текстуры с помощью набора карт.
Часто используемые карты:
- Ambient Occlusion – показывает взаимодействие между элементами модели. Эта карта создает мягкое затенение, будто модель освещена без прямого света;
- Diffuse – определяет цвет и рисунок объекта;
- Metallic – показывает, насколько материал металлический;
- Roughness — контролирует четкость отражений света, показывает шероховатость объекта;
- Normal – отвечает за рельеф модели, каждый цвет показывает разные оси направления.
Вот как это выглядит на самом примитивном примере:
Слева квадрат без карт нормалей, справа карта нормалей присутствует
В Substance Painter очень широкий функционал, который делает текстурирование гораздо легче: можно рисовать сразу по модели, использовать разнообразные альфы, готовые hard surface штампы, процедурные карты, фильтры, маски – в общем, полное раздолье для фантазии.
После Вы получите карты, которые можно экспортировать и отправлять сразу в любой игровой движок, здесь есть много шаблонов: под Unity 4/5, Unreal Engine, Dota 2, V-ray, Corona и тд.
Собственно на этом и заканчивается работа по окружению, последующие этапы, которые будут описаны в следующей статье, используются в основном при создании персонажей.
Благодарю за прочтение, may the force be with you!