Ключевая 3D-терминология
Всегда сложно начинать изучение чего-то нового и неизведанного для себя.
В статье описываются самые распространенные термины и их значения, которые помогут вам сориентироваться в непростом, но таком привлекательном CG-мире.

Полигональная геометрия
Полигоны – наиболее часто используемый в 3D тип геометрии. И, хотя, полигоны и используются в большинстве случаев, иногда возникает необходимость в идеально гладкой поверхности. И тут на помощь приходят сабдивы и NURBS.

NURBS
NURBS расшифровывается как non-uniform rational b-spline. В основном используются для создания очень засмуженных объектов. Так, для создания гладкой поверхности с помощью NURBS не нужно так много вертексов, как нужно при полигональном моделлинге. Плоскость, созданная с помощью NURBS, всегда определяется 4 вертексами.

Сабдивы
Сабдивы, которые иногда также называются NURMS (non-uniform rational mesh smooth), относятся к полигональной геометрии. Сабдивы работают по принципу полигональной геометрии, которая смузится автоматически. Например, на изображении выше можно увидеть полигональную сферу, заключенную в куб, которая и является примером сабдивов. Можно сказать, что сабдивы – это сочетание полигональной и NURBS-геометрии.

Фейсы
Фейс – очень важная часть 3D-полигона. Фейс – это плоскость, которая образуется между тремя и более эджами и делает видимым полимеш. Шейдер назначается именно на фейсы.

Вертексы
Вертекс – самый маленький компонент полигональной модели, который фактически является точкой в 3D-пространстве. Полигональная модель создается путем соединения вертексов, с помощью которых геометрии также можно придавать форму.

Эджы
Эдж является компонентом полигона, который определяет форму модели. Геометрию можно также изменять путем позиционирования эджей. Две точки в 3D-пространстве или вертексы образуют эдж. Вертексы, эджи и фейсы являются компонентами, которые задают форму полигонального объекта.

Топология
Полигональная, NURBS и NURMS геометрия состоит из вертексов, эджей и фейсов. Топология – это набор фейсов, вертексов и эджей.

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

Квад
Квад – это полигон, у которого четыре стороны или эджа соединяются вертексами, образуя четырехсторонний фейс. В моделировании 3D-дизайнеры обычно придерживаются именно квадов. Квады – это залог хорошей топологии, а также того, что при анимации геометрия будет деформироваться корректно.

N-гон
N-гон – это полигон, у которого 5 и более сторон, соединенных пятью и более вертексами. N-гонами обычно считаются именно пятиугольники, однако это совершенно необязательно. N-гонов нужно тщательно избегать, поскольку они могут вызвать проблемы как на рендере, так и при текстурировании, а также анимации.

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

Эджлуп
Эджлуп – это серия эджей, где последний эдж соединяется с первым, образуя петлю или кольцо. Эджлупы очень важны для создания hard-эджей или органических моделей. Например, рука будет корректно деформироваться, при наличии достаточного разрешения, в частности, если геометрия вокруг локтевого джоинта содержит эджлуп.

Бевел
Бевел – это фаска или закругление эджей меша. При бевеле каждый вертекс и эдж трансформируются в новый фейс. В реальном мире у объектов редко бывают твердые ребра или эджи. Благодаря бевелу модель выглядит менее CG.

Пивот
Пивот – это центральная точка 3D-модели, относительно которой происходит масштабирование, перемещение или вращение. При этом пивот можно спокойно перемещать. Например, если пивот двери или окна переместить в петли, то программа будет знать, относительно чего вращать дверь или окно.

Нормали
3D-редакторы используют нормали для определения направления луча света, который отражается от геометрии. Это очень важно для контроля того, как свет взаимодействует с различными материалами 3D-объектов.

Инстансы
При работе с рядом 3D-объектов в какой-то момент возникнет необходимость создания многочисленных копий одного объекта, например, сотен деревьев или деревянных планок, из которых состоит забор. Такая операция может в разы увеличить время рендера, поскольку компьютеру придется просчитывать новую геометрию. В таком случае вместо создания дубликата объекта можно создать его инстанс или образец.
Инстанс – это копия объекта, которая наследует всю информацию оригинального объекта, при этом компьютеру уже не нужно пересчитывать тучу ненужной информации. Кроме того, важно понимать, что сами по себе инстансы нельзя изменять. После внесения изменений в оригинальный объект необходимо обновить инстансы, чтобы применить внесенные изменения.

История создания
В работе над 3D-моделью мы обычно используем ряд различных инструментов. Например, фейсы 3D-модели, для придания ей определенной формы, необходимо экструдить или применять для них команду бевел. В большинстве 3D-редакторов история произведенных операций обычно сохраняется. В истории создания можно увидеть целый список использованных инструментов в хронологическом порядке.
Благодаря истории создания всегда можно вернуться назад и изменить настройки использованного инструмента. При этом необходимо помнить, что история создания, несмотря на все свои плюсы, может подтормаживать работу системы, поэтому ее нужно периодически удалять.

Цифровой скалптинг
При создании 3D-моделей в таких приложениях, как Maya, рабочий процесс заключается в работе с вертексами и эджами, на протяжении которого достигается желаемый результат. При таком подходе довольно сложно добиться мелких деталей, особенно это относится к органике. В таком случае на помощь приходит цифровой скалптинг, при котором моделлер работает с моделью так же, как и классический скульптор.
Всевозможные морщины, царапины и прочие мелкие детали создаются в интерактивном режиме, при котором необходимость работы с эджами и вертексами полностью отпадает. В большинстве случаев моделлер обычно создает лоупольный меш в таких 3D-редакторах, как Maya, который затем импортирует в ZBrush или Mudbox, чтобы проработать мелкие детали.
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
- Текстурирование
Концепт
Первое, что должно быть у вас в голове – это концепт. Вы должны точно знать, что хотите получить в конце, считаю, что творческий полет себе может позволить только опытный человек (немного отходить от концепта позволительно).
Тут есть несколько вариантов: вы можете нарисовать концепт самостоятельно, дабы видеть, что в итоге получится, а можете воспользоваться готовым модельным листом, коих в интернете куча (только не забудьте получить разрешение автора, либо делайте для себя, никуда не публикуйте).
В основном модельный лист – это концепт персонажей (как людей, так и животных), но я встречала даже модельный лист камня (внезапно). Выглядит он почти всегда так:

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

Его Величество Моделирование
И примерно с этого этапа начинаются расхождения. У каждого художника свой подход к работе и зависит от вида моделирования, конечной цели.
Виды моделирования
Так как чаще всего в суровом игровом производстве используется полигональное моделирование, будем рассматривать его. Существует low-/mid- и high–poly модели.

Слева направо: low-poly, mid-poly, high-poly
Разница, думаю, понятна – кол-во полигонов и уровень детализации. Теперь, когда мы понимаем, какую нам предстоит модель сделать и с каким полигонажем работать, решаем, к какому типу она относится – hard surface или organic?
Пример Hard surface:

Пример Organic:

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

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

Создать такую детализацию с помощью Subdiv очень сложно, практически невозможно
Этапы для скульптинга и subdiv отличаются:
- построение общей формы для низкополигональной модели;
- на этапе построения высокополигональной выполнение сглаживания;
- добавление мелких деталей.
- блокинг в Dynamesh
- ретопология (на этом этапе получаем low-poly, сохраняем отдельно)
- уточнение деталей накручиванием Subdivision уровней (работает так же как Turbosmooth).
Retopology
Самый сложный этап для новичка – это ретопология. Это целая наука, которая имеет свои правила для анимации, кино, игр.
Сперва на текущем этапе было бы неплохо упорядочить части модели, возможно, некоторые слить, а другие оставить. Для игровой ретопологии обычно сливают подобные элементы по принципу «все, что можно отделить – отдельно».
Рассмотрим более наглядный пример:

Персонаж, разделенный на субтулы (выделены цветом)
Все, что обозначено одним цветом – один сабтул.
Существует несколько правил, которые следует соблюдать при создании ретопологии:
- в тех местах, где модель будет двигаться, следует сделать сетку более плотной и анатомически правильной (построить под естественную анатомию);
- никаких n-гонов, только квадраты, прямоугольники и треугольники, хотя последних лучше избегать;
- используйте минимальное количество полигонов для описания формы;
- если квадратный полигон деформирован, лучше разделить его на треугольники, провести диагональ;
- нужно соблюдать баланс в размерах полигонов, они должны быть примерно одинаковыми и выглядеть гармонично;
- сетку лучше создавать симметричной, а после редактировать, если модель ассиметрична.
Если модель изначально имела Low-Poly версию, то вся ретопология состоит в том, чтобы найти способ из существующей сетки сделать сетку с еще меньшим кол-вом полигонов. Возможно, стоит удалить те части, которые не видно, к примеру, тело под одеждой.
Данную операцию можно выполнить как в софте, в котором вы моделировали, так и в специализированных программах, таких, как Topogun 2.
UV mapping
UV делают для того, чтобы текстура ложилась правильно, а не вот так:

Вот так выглядит растянутая текстура
«UVW развёртка» или просто «развёртка» – такое название приобрела эта операция путём обычного перевода с английского Unwrap UVW.
Требования к качественной развертке:
- при создании развертки обязательно нужно создавать швы, по которым она будет раскрываться;
- швы желательно прятать туда, куда не доберется любопытный игрок;
- элементы развертки нужно распределять в пределах данной Вам области (шахматный квадрат);
- пространство квадрата должно быть максимально заполнено (чем больше размер части развёртки, тем более качественной будет текстура);
- желательно все элементы разложить уникально, но бывают случаи, когда некоторые из них можно наложить друг на друга (обычно называют «оверлап»), если они не видны игроку и не обязательно требуют уникальности, например, ножки стула;
- оставляйте некоторое пространство между элементами, чтобы избежать «вытекания» на другие части карты.
«Запечь» означает перенести некоторые характеристики материала или сетки модели на изображение карты. Тот же принцип использует художник, когда на плоском листе бумаги изображает объем, цвет и свет.
После того, как развертка сделана, мы можем посмотреть на результаты наших трудов:

Слева изображена развертка представленной модели
Зелёные полосы на модели человека – это те самые швы, по которым её разворачивают.
Сейчас каждая уважающая себя программа имеет возможность проделать такую операцию, есть так же специализированные, такие как UVlayout, RizomUV. Я всегда использовала возможности 3ds max, вполне хватало.
Прежде чем переходить к запеканию текстур, было бы неплохо сделать следующие действия:
1. Триангуляцию низкополигональной модели, то есть разбить многоугольники на треугольники, так как при неправильном автоматическом разбиении могут появится проблемы с нормалями (направлениями полигонов), что приведет к ненужным артефактам. Но я этого не делаю, потому что современные алгоритмы на мой взгляд хорошо с этим справляются и, если случаются подобные проблемы, я возвращаюсь с этому шагу и исправляю;
2.Создать Cage. Cage, простыми словами, – это версия низкополигональной модели, подогнанная таким образом, чтобы полностью перекрывать высокополигональную. При её построении у моделей должны быть одинаковые координаты;
Выглядит это так:

Синяя решетка вокруг модели – 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 – отвечает за рельеф модели, каждый цвет показывает разные оси направления.

Слева квадрат без карт нормалей, справа карта нормалей присутствует
В Substance Painter очень широкий функционал, который делает текстурирование гораздо легче: можно рисовать сразу по модели, использовать разнообразные альфы, готовые hard surface штампы, процедурные карты, фильтры, маски – в общем, полное раздолье для фантазии.
После Вы получите карты, которые можно экспортировать и отправлять сразу в любой игровой движок, здесь есть много шаблонов: под Unity 4/5, Unreal Engine, Dota 2, V-ray, Corona и тд.
Собственно на этом и заканчивается работа по окружению, последующие этапы, которые будут описаны в следующей статье, используются в основном при создании персонажей.
subdiv question
господа, кто из вас настолько хорошо знаком с принципами работы сабдивов, что может ответить на след. вопрос:
многие из вас наверное замечали, что сабдив в местах особо сложной топологии самостоятельно дробит участки своей геометрии до 1го, 2го, а иногда и 3го уровня. это происходит в случае full crease , partial crease, а так же в местах, насыщенных треугольными и многоугольными полигонами.
причем смысл этой операции мне до сих пор непонятен. зачем дробить геометрию, если, по идее, на нулевом уровне все и так будет корректно?
но это даже не суть.. суть вопроса в том, как мне с этим бороться, а если поставить вопрос более широко — как мне вообще удалять фэйсы/вертексы из 1-го, 2-го и т.д. уровней? вообще, возможно ли это?
есть такая капризная штука, как clean topology, которая сама решает, какие фейсы оставить, а какие удалить.. значит теоритически это воможно.
но, поскольку нет команды "делете фейс фром каррент левел", есть подозрение, что самодробление сабдива в некоторых местах есть жизненно важная для него функция, и удаление фейсов из верхних уровней в топологически сложных местах невозможно теоритически.
так ли это?
зы есть ли в природе sculpt subdiv tool?
ззы есть-ли в природе uv sets для сабдивов?