Что такое uv развертка
Перейти к содержимому

Что такое uv развертка

  • автор:

Правильная UV развертка, ошибки и пути их решения.

Приветствуем, на связи команда MFG! В этой статье расскажем о правильной UV развёртке для тех, кто совсем недавно начал знакомиться с 3D моделированием. Неважно, будете ли Вы создавать модели для игр или исключительно для рендеров — без UV развёртки Вы банально не сможете её затекстурировать. В самом начале у новичков могут быть десятки вопросов. Как сделать развёртку правильно? Какие ошибки могут возникнуть и как их не допускать? На все эти и другие вопросы мы постараемся ответить по ходу этой статьи. Давайте сперва попробуем разобраться, что представляет собой развёртка в самом общем виде. Самым простым и понятным объяснением будет следующее изображение:
Развертка — это перенос поверхности объёмного объекта на плоскость (в виде текстуры). Далее в статье мы будем рассматривать процесс развёртки с использованием конкретного софта, а именно Blender. Выберем стандартный куб, выделим его, перейдём во вкладку UV Editing. Теперь перейдём в режим редактирования этого куба и слева мы увидим его развёртку. Она в точности напоминает первое изображение.
Разумеется, куб — это самый примитивный объект, на котором мы просто пытаемся показать общие принципы развертки. Развёртка некоторых элементов внутри модели может быть куда сложнее, а запакованная модель из десятков мешей может и вовсе выглядеть устрашающее, если не знать, что это такое. Вот Вам, к примеру развёртка Сюзанны:
3D модели состоят из вертексов, эджей и полигонов. UV развёртка также содержит все эти элементы, но только на плоскости. К сожалению, нельзя просто взять плоское и натянуть на объемное. Попробуйте обернуть бумагой что-то круглое — бумага просто-напросто помнётся при обёртке. Чтобы этого избежать, модель должна быть нарезана на части по швам. Для нанесения швов в любом 3D пакете, включая Blender есть специальный функционал. Рассмотрим конкретный приме. Добавим в сцену куб и в режиме редактирования изменим его и придайте ему форму доски.
Теперь выделим всё клавишей A, после нажмем правую кнопку мыши и выберем пункт Mark Seam (пометить швом).
Вы заметите, как все эджи теперь подсвечиваются красным цветом.
Теперь нажмем клавишу U и выберем первый пункт (либо же можно дважды нажать U).
И теперь Вы увидите, что каждый фейс стал отдельной частью на развёртке.
Каждая отдельная взятая часть называется островами или шеллами. Теперь добавим нашему объекту материал и перейдём во вкладку Shading, кликнем сверху «New». Появится обычная структура нодов материала. Теперь найдем в интернете текстуру дерева, разрешение при этом не имеет значения, главное чтобы соотношения сторон были одинаковыми. Теперь добавим эту текстуру, нажмём Shift+A, нажмём «Search» и впишем «Image», выберем ноду «Image Texture». В самой ноде нажмём на символ папки и выберите только что скаченную текстуру. Не забудьте в конце подключить выход ноды из Color в Base Color. Результат должен получится примерно такой.
Теперь вернемся во вкладку с развёрткой, переключим клавишей Z вид вьюпорта с Solid на Material Preview и попробуем взаимодействовать с каждым отдельным шеллом. Кнопки здесь всё те же, G – для перемещения, R — для поворота, S — для масштабирования Вы увидите как меняется текстура на самом объекте. Все действия, что мы сейчас проделали были очень важны для общего понимания того, как именно работает развертка. Развёртку условно можно поделить на два типа — тайловая и уникальная. И тут различия именно в маппинге — способе расположения шеллов на развёртке. Первый тип применяется чаще всего для крупных объектов, чаще для зданий. А вот для оружия, техники и прочих пропсов применяется уникальный маппинг. Но что это значит? Разберём этот вопрос подробнее. Обратите внимание, что пространство для развёртки заключено в рамках квадрата, но на самом деле оно им не ограниченно, эти квадраты повторяются по обеим координатам бесконечно. Можете убедится сами, попробовав переместить любой шелл за пределы этого квадрата. Уникальная развёртка подразумевает, что все шеллы заключены в рамках одного такого квадрата. И ни в коем случае нельзя допускать того, чтобы шеллы пересекались, поскольку это приведёт к проблемам при запекании и текстурировании. При тайловом маппинге, наоборот, можно и выходить за рамки, и накладывать одни шеллы на другие, так как используются готовые текстуры, которые просто накладываются поверх модели, прямо как в том примере, что мы разобрали в самом начале. Теперь ответим на следующий вопрос: Какой параметр отвечает за качество (чёткость) текстуры? Очевидный ответ будет — разрешение, но не всё так просто. За чёткость текстуры отвечает параметр, который называется текселем. Понятие тексель, означает количество пикселей текстуры на единицу пространства. Давайте вернёмся к нашей «доске» и немного поменяем ноды.
В ноде Checker Texture можете увеличить значение Scale, если Вы вдруг не видите узор в виде шахматной доски на объекте. Теперь попробуйте уменьшить любой из шеллов на развёртке и посмотреть к чему это приведёт.
В зависимости от того, какое разрешение текстуры Вы будете использовать для вашей модели, будет разный тексель. В качестве примера взгляните на изображение ниже. Визуально одинаковый объект с чекером разного разрешения будет давать разный результат.
Значение текселя можно рассчитать с помощью аддонов Texel Density Checker и TexTools. Мы бы порекомендовали использовать TexTools, поскольку кроме определения размера текселя, в нём есть дополнительный функционал по работе с развёрткой. Теперь разберём поэтапно процесс создания развёртки для игровых моделей. В качестве примера будем использовать вот такой грузовичок примитивной формы, исключительно для примера.
Здесь видно, что каждый отдельный элемент окрашен в разные цвета. Каждый цвет — это будущий текстурный сэт. Текстурными сэтами принято называть набор PBR текстур. Именно те текстуры, которые используются в игровых моделях, а именно Base Color, Roughness, Metallic, Normal Map и т.д. Делается это для того, чтобы достичь примерно одного значения текселя на всю модель. Иначе может получиться так, что даже в одну единственную текстуру 8К всё не уместиться. Начнём с красной кабины, по своей сути это почти куб. Но если применить на этот меш Auto Shooth, то Вы заметите, что все эджи кроме одного остались острыми. Это первое правило UV развёртки — швы наносятся на Хард Эджи. Заходим в режим редактирования, помечаем все такие эджи как Hard Edge. Это может потребоваться в последующем, если Вы вдруг захотите объединить несколько мешей в один, но у них в настройках Auto Smooth будет стоять разное значение угла. Сделать это довольно просто. В верхнем меню выбираем Select и далее Select Sharp Edges. Далее выбираем в нижнем углу значение угла, которое соответствует углу сглаживания Auto Smooth.
Далее жмём правую кнопку и сначала выбираем Mark Sharp, чтобы пометить эджи как острые, а потом Mark Seam, чтобы отметить швы. После этих манипуляций дважды жмём U и получаем развёртку.
В угловом меню можем настроить параметр Margin — отступ отдельных шеллов друг от друга, который обязательно должен быть. Во всех современных 3D движках есть технология называемая MIP mapping. Чем дальше будет находиться модель от взгляда игрока, тем меньшее разрешение текстуры будет применяться. Это происходит автоматически. И если в развёртке модели будут отсутствовать отступы, это приведёт к нежелательным визуальным артефактам. Теперь перейдём к колёсам.
Хоть их и шесть, как на изображении выше, но нам совершенно не обязательно разворачивать их все. Это приведёт к тому, что придётся увеличивать разрешение текстуры, чтобы получить требуемый тексель. Именно поэтому мы также применили модификатор Mirror на каждое отдельное колесо. В итоге после развёртки, запекания и текстурирования получим текстуру для колеса, которую можно будет применить для каждого из них. Возьмём передние колёса, отключим видимость модификатора и перейдём в режим редактирования.
Колесо имеет форму цилиндра. Отметив на развёртке все хард эджи и развернув этот элемент мы получим следующую картину:
Стенки цилиндров ВСЕГДА разрезаются. Нам нужно добавить дополнительный шов. В данном случае это колесо, которое может крутиться, но я всё равно добавил его внизу. Обычно такие швы стараются прятать, нанося их в тех частях модели, которая больше всего будет скрыта от взгляда наблюдателя.
Помимо внешней стенки, есть ещё одно место, в которое стоит добавить шов. Это внутренняя сторона ближе к центру. На изображении ниже, Вы можете увидеть, куда мы нанесли его.
Теперь можно повторно нажать U, результат будет совершенно иной.
Вы можете заметить, что осталось ещё одно кольцо. В случае с боковой частью колеса это может быть оправдано, поскольку можно будет проще нанести особую текстуру. Но исключительно в обучающих целях давайте добавим ещё один шов и попробуем развернуть.
Иии. ничего не изменилось, почему? Это связанно с особенностями алгоритмов. Тут на помощь придёт аддон TexTools, он сильно облегчает работу с развёрткой. После его установки в окне развёртки в N-панели будет вкладка аддона со всеми опциями. Разверните вкладку UV Layout и найдите кнопку Rectify. Теперь выделите клавишей L нужный остров и нажмите на эту кнопку. Кольцо превратилось в полоску.
Упакуем развёртку, то есть доверимся алгоритмам, которые расположат наши шеллы в пределах одного квадрата максимально компактным образом. Выделяем всё, что есть на развёртке. Далее в верхнем меню в пункте UV ищем «Pack Island». В меню, которое всплывёт нас интересуют только два пункта. Первый это Rotation Method, там нужно выставить Cardinal, это будет вращать шеллы только с шагом в 90 градусов. Второй — Margin, это индивидуальные отступы каждого шелла.
В результате получаем следующий результат.
Тут опять всего один меш и очень примитивная форма. Да и мы пользовались встроенным упаковщиком. Его алгоритмы хоть и подтянули в версии 3.6, но для создания развёртки для игровых моделей нет такой важной функции, как выставление отступа в пикселях. Поэтому
чуть позже рассмотрим альтернативный способ запаковки с помощью ещё одного аддона. Вернёмся к понятию текселя. Тексель — это величина, обозначающая плотность пикселей текстуры на единицу пространства. Как мы можем измерить его? В аддоне TexTools есть функционал, позволяющий определить это значение. Убедимся, что к мешу применён Scale. Без этого, значения будут некорректными. Во вкладке UV Layout в самом низу есть блок, отвечающий за функции определения текселя. Необходимо выбрать разрешения предполагаемой текстуры.
К примеру это будет 1024. И после нажимаем клавишу Pick, чтобы узнать значение. Сверху в этом блоке появится цифра. В нашем случае это 422. Но что она нам даёт? В чём измеряется тексель? Как определить, какой тексель нам нужен? В этом аддоне значения показываются в количестве пикселей на метр(px/m), иногда ещё они могут указываться в пиксель на сантиметр(px/cm) и в таком случае значение было бы равно 4.22. Здесь не важно, в каких именно единицах Вы будете измерять тексель, ведь знания базовой математики легко позволят Вам перевести метры в сантиметры и наоборот. Но давайте вернёмся к вопросу о том, какой тексель нужно подбирать? Главным фактором будет то, на каком именно расстоянии наблюдатель будет видеть модель.
На изображении выше Вы можете увидеть распределение качества текстур в зависимости от удалённости взгляда игрока. Все значения указаны в px/cm. Удалённые объекты имеют средний тексель ~1.26, те, что поближе уже ~2.56, и самые близкие ~5,12. Это усреднённые цифры, и к примеру в шутерах от первого лица величина текселя оружия в руках главного героя может быть 10,24 px/cm и выше. Вообще эта величина является частью технического задания при создании моделей, но логика определения всегда примерно одна. Обычно, в рамках одной модели стараются придерживаться одного значения текселя. Но так бывает не всегда. Взять тот же самый легковой автомобиль, его днище игрок практический не видит, значит размер текстуры, а следственно и тексель можно уменьшить. Делается это
прежде всего для оптимизации. На оружии от первого лица принцип очень схож, в зависимости от стороны и удалённости от условного края экрана тексель может быть разным. Вернёмся к нашему грузовику. Займёмся его рамной частью.
Во вьюпорте, в режиме Solid включим рандомное присваивание цвета каждому мешу. На этом примере разберём ещё один способ экономии свободного места на пространстве UV развёртки. Условные бензобаки и часть рамы, которые на изображении можно определить по бежевому и голубоватому цвету имеют модификатор Mirror, скрыв видимость которого мы уменьшим количество мешей для развёртки. А вот центральные «балки» очень похожи друг на друга. И здесь есть одна важная хитрость. Они созданы путём дублирования не через Shift+D, а Alt+D. И таким образом получается, что они все зависимы от самого первого объекта. То есть создав развёртку для одного меша она будет применена для всех остальных. Отчасти это можно назвать оверлапами (Overlaps). Если мы после всех манипуляций сделаем каждый экземпляр уникальным, то есть уберём эту самую зависимость и вернёмся к развёртке, то мы увидим, что на развёртке все острова как бы лежат друг на друге. Как Вы понимаете это сильно экономит нам свободное пространство. Если не углубляться сильно в детали, чем меньше свободного пространства на UV развёртке тем лучше. Это позволит получать более высокое значение текселя, а такжеиметь меньшее количество текстурных сетов. Все эти действия проделываются ради оптимизации размера текстур моделей. Хотя с каждым годом производительность компьютерного железа возрастает, но его возможности не безграничны. Вернёмся к развертке. Примерно вот так будет выглядеть все меши, относящиеся к текстурному сету рамы, после отключения всех модификаторов и скрытия сдублированных элементов.
Далее представлены изображения, показывающие развёртку каждого отдельного элемента.

Теперь это всё нужно упаковать. Выделим все меши, перейдём в режим редактирования.
И что мы здесь видим? Вновь недопустимые пересечения. Но это лишь одна из проблем, которую мы можем решить упаковкой. Перед этим добавим чекер-текстуру в систему нод.
Невооружённым глазом видно, что размер чекера разный. Нам хотелось бы, что он стал одинаковым. Для этого в режиме редактирования выделяем все меши, выделяем всё что есть на развёртке и в верхнем меню в пункте UV ищем «Average Island Scale»
Как следует из всплывающей подсказки, это усреднит размер каждого острова относительно друг друга. После этих манипуляций развёртка будет выглядеть примерно так.
И казалось бы, теперь мы готовы к упаковке. Н о нет. Основная, вытянутая часть рамы слишком длинная, это приведёт к не самому оптимальному заполнению свободного пространства. Как мы можем решить эту проблему? Нанести шов в самое незаметное место этого меша. Самым логичным будет добавить Loop Cut на геометрии через Ctrl+R и нанести на него шов. Да, это нарушит главное правило того, что швы должны наносится на острые углы, ведь тут совсем плоская часть. Но это тоже метод оптимизации. Да, это приведёт к тому, что текстура может лечь не самым лучшим образом, но этот шов будет находиться в том месте, в котором наблюдатель практически не будет его видеть напрямую. И после повторной развёртки и переопределения размера получаем уже куда более приятную картину.
Вот теперь то можно и упаковывать. Давайте рассмотрим альтернативный, более правильный способ упаковки. Нам понадобится аддон UV Packer. Его установка чуть сложнее, чем обычно, но не должна вызвать серьёзных трудностей. На сайте аддона есть простая и понятная инструкция. Давайте быстро разберём, какие именно инструменты имеются в N-панели этого аддона.
Красным отмечен первый важный блок. Сперва идут два чекбокса. Первый чекбокс включен по-умолчанию. В данном случае все объекты будут упаковаться в рамках одной карты. Если же выключен, то каждый объект будет упакован отдельно. Но нам как раз таки нужен первый вариант. Второй чекбокс не активирован. Из его названия можно понять, что при его активации будут упаковываться только выделенные шеллы, нам это так же не нужно. Далее мы видим кнопки, в которых можем выбрать предполагаемое будущее разрешение и ниже padding, это же отступ шеллов друг от друга. Укажем разрешение 1024 и отступ 8. В зелёном блоке идёт тип упаковки, на выбор есть два: «Эффективный» и «Высокое качество». По личным наблюдениям разницы почти нет. Два следующих чекбокса отвечают за изменение масштаба шеллов и вращение. Изменять масштаб на не нужно, а вот вращать как раз таки нужно. Ниже укажем величину вращения 90 градусов. Если Вы играли в тетрис, то понимаете, что прямоугольные блоки идеально комбинируются только под углом 90, если угол будет другой, то это приведёт к массе проблем, как увеличению свободного пространства, так и к некоторым искажениям. Но всё это по большей части относиться к твердотельным. Ниже есть пункт, который касается количеста занимаемых тайлов, но это более продвинутая техника, которая касается темы UDIM, её мы не будем касаться в этой статье. Когда все пункты настроены и время нажать кнопку Pack.
После этого видим в начале красного блока информацию по занятому пространству и затраченному времени на упаковку. И если второе значение нас не сильно интересует, то вот занятое свободное пространство важный параметр. При развёртке нужно стараться достигать максимально возможного значения занятого пространства. В нашем случае вышло ~58%. Идеально, когда это значение равно 70% или выше. Но всегда нужно искать баланс между количеством швов на развёртке и плотностью упаковки. В нашей модели остался ещё кузов, но его уже не будем разворачивать. Все ключевые и основные моменты мы уже тут разобрали. Далее давайте разберём с какими ошибками и особенностями Вы можете столкнуться в работе с развёрткой.

Ошибки которые могут возникнуть при развертке

1. Растяжки. Чтобы их увидеть, нужно воспользоваться опцией «Display Stretch». На скриншоте Вы видите где именно находится эта опция в Blender.
Теперь визуально цветами мы можем увидеть растяжки. На примере всё залито синим цветом. И чем больше будут растяжки, тем ближе к красному цвету они будут становится. Можете вручную подвигать любую точку чтобы увидеть изменения цвета. Если на объекте будет чекер, на нём это также будет отражаться — он будет сильно искажён.
Красный цвет, это максимальный предел искажения, который редко встречается на практике. Недопустимыми значениями чаще всего являются зелёный и жёлтый цвет. Голубой цвет вполне допустим. Небольшие искажения могут быть компенсированы алгоритмами наложения текстуры. А вот при тайловом текстурировании мельчайшее растяжение будет бросаться в глаза. 2. Пересечение шеллов. Это вполне понятная и очевидная проблема, которую легко исправить грамотной упаковкой. Для уникального маппинга это недопустимо. В статье мы уже упоминали, что между островами всегда должно быть расстояние. Это нужно для технологии Mip Mapping. Повторимся, эта технология понижает разрешение текстур в зависимости от взгляда наблюдателя. И если отступа не будет, или он будет недостаточным, это приведёт к визуальным артефактам. Вот вам небольшая шпаргалка, показывающая необходимое значение отступа в зависимости от разрешения текстуры. 3. Развёртка цилиндра и кольца. Стенки цилиндров всегда разрезаются минимум с одним швом, как впрочем и кольца. Это поможет сократить свободное занимаемое пространство и избавить от возможных искажений текстуры. Вот как пример. 4 одинаковых фигуры, сделанные из цилиндра. Если кольца не развернуть, то получаем 66% занятого пространства.
А вот при развернутых в полоску кольцах получаем значение порядка 77%
Если каждый остров крупнее, то и тексель больше. А как следствие этого и качество получаемой текстуры. 4. Харды и софты. Если после каких-либо манипуляций хард эдж станет софтом, то это может повлечь за собой целый ворох проблем, от банально некорректного шейдинга, до того, что запекаемая текстура будет совершенно некорректной. Минимальный угол, который можно считать хардом это 60 градусов. Но всегда есть исключения. Главное помните — если есть хард эдж, то на нём обязательно должен присутствовать шов. Остальные швы наносятся по ситуации в каждом конкретном случае. В этой статье мы постарались максимально разобрать все основные моменты относящие к основам развёртки. Показали всё на примерах и обозначили ключевые термины, без которых невозможно стать профессионалом в сфере 3D. После того, когда приходит понимание того, как именно создаётся развёртка это станет очень простой рутиной. Но без этой рутины нельзя создать полноценную модель. А если Вы хотите узнать больше и планируете развиваться в сфере создания игровых 3D Hard Surface моделей, то не забудьте посетить наш официальный сайт и группу Вконтакте. С Вами была команда MFG, до связи!

780 0 850 12

>>> Да и мы пользовались встроенным упаковщиком. Его алгоритмы хоть и подтянули в версии 3.6, но для создания развёртки для игровых моделей нет такой важной функции, как выставление отступа в пикселях.

Похоже что Margin Method Fraction может паковать с отступами в пикселях.
Для этого в поле Margin надо ввести: «кол-во пикселей» разделить на «размер текстуры».
Например, если нужен отступ в 4 пикселя для текстуры 1024, то в поле Margin надо ввести 4/1024, это будет 0.003906.
Тогда от края он делает отступ 4 пикселя, а между островами 8 пикселей.

Грамотная UV развертка для создания качественных текстур

В BlackVR перед нами постоянно стоят задачи по улучшению качества графики. В данном посте мы расскажем от чего зависит качество текстур и как на это влияет грамотная UV развертка.

UV развертка — это своего рода схема кройки 3d модели, по которой потом мы будем рисовать текстуры.

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

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

image

Рис. 1

Так почему от неё зависит качество текстур и почему, начиная с первого объекта в сцене, мы уже должны думать о развертке и текстурах?

Дело в том, что у UV есть такой параметр как texel density. Он показывает какое количество пикселей приходится на один юнит.

image

Рис. 2

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

На данный момент, в индустрии есть определенные стандарты количества пикселей на один юнит для получения качественных текстур.

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

  • Шутеры с видом от первого лица — от 1200 px/unit
  • Игры с видом от третьего лица — от 650-800 px/umit
  • Стратегии и игры с видом сверху — от 450 px/unit.

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

Частые ошибки, которые возникают на этом этапе:
1) Создание больших объектов в сцене, без учета их реальных размеров.

2) Создание различных объектов в одной сцене для одного проекта, без учета соотношения их размеров друг к другу.

3) Разный texel density у различных частей одной модели (если это не является необходимым для улучшения детализации определенных элементов)

imageРис. 3imageРис. 4

Но у Texel Density есть свои нюансы.

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

Кроме Texel Density очень важным параметром у текстурных карт является Padding между элементами развертки.

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

Существуют специальные формулы для расчета паддинга, но на практике практически всегда padding делается на глаз, а потому важно запомнить несколько важных моментов:

1. Делать так, чтобы границы между элементами развертки были видны и не казалось, что это один элемент.

2. Учитывать возможное уменьшение размера текстуры.
Второй пункт очень важен, если текстурные карты для игры будут уменьшаться, например из 2048 до 512.

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

image

Рис. 5

Но при этом стоит помнить, что пространство UV необходимо использовать максимально и не оставлять совсем пустых мест.

  • Оверлапы
  • Симметрия
  • Тримы
  • Тайлы
  • Атласы

UV-развертка: виды, используемые программы, алгоритм создания

О чем речь? UV-развертка подразумевает перевод 3D-модели в 2D-поверхность для нанесения на изображение нужного цвета или необходимой текстуры. Это как раскройка ткани у швеи: объемные в итоге костюмы или платья изначально состоят из плоских отрезков ткани.

Где применяется? Без использования UV-развертки сегодня трудно, а иногда невозможно себе представить работу специалистов в области создания компьютерных игр, брендинга, дизайна интерьеров и ландшафтов. Востребована техника и во многих других направлениях деятельности.

В статье рассказывается:

  1. Суть UV-развертки
  2. Тайловый и уникальный маппинг
  3. Ручная и автоматическая UV-развертка
  4. Процесс создания UV-развертки
  5. UV-развертка в разных программах
  6. Несколько полезных рекомендаций по работе с развертками

Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.
Бесплатно от Geekbrains

Суть UV-развертки

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

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

Поэтому разработчики и дизайнеры пользуются UV-разверткой. Есть и другое ее название – UV-маппинг (от англ. map — карта). По сути, это – создание 2D-поверхности из готовой 3D-модели с целью раскрасить эту площадку, нанести на нее текстуру.

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

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

Тайловый и уникальный UV-маппинг

Среди видов UV-развертки – уникальный и тайловый. Разница в том, как именно дизайнер накладывает структуры.

Тайловый маппинг (от англ. tile — плитка) – это наложение небольших повторяющихся рисунков на какой-либо объект, для того, чтобы придать ему определенный цвет или структуру.

Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains

Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.

Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains

Павел Симонов
Исполнительный директор Geekbrains

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

Получить подборку бесплатно
Уже скачали 26919

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

Уникальный маппинг предполагает, что каждый элемент будет окрашен вручную. Представим себе игру, действия в которой разворачиваются в постапокалиптическом мире. Постройки в игровом мире комбинированные – окна из дерева, двери из железа, крыша из пластика и т. д. Если подгрузить каждый из перечисленных материалов на одну модель, то это уже займет достаточно ресурсов компьютера, что говорить о множестве подобных объектов.

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

Ручная и автоматическая UV-развертка

UV-развертка модели может быть как ручной, так и автоматической. В первом варианте разработчик самостоятельно разворачивает элементы, а во втором это делает машина. Практически каждое ПО для 3D-моделирования оснащено такой функцией.

Автоматическая развертка используется в тех случаях, когда окружение не требует каких-то изысканных, сложных форм или, при использовании тайлового маппинга, наложения текстуры.

UV Развёртка: ААА-Пайплайн 4/7. Самый полный гайд

UV Развёртка: ААА-Пайплайн 4/7. Самый полный гайдUV Развёртка: ААА-Пайплайн 4/7. Самый полный гайд​Смотри, на кубе 8 точек, а на развёртке целых 14.​Одна точка на модели может иметь несколько точек на UV.Наша простенькая моделька для примера c авторазвёрткой​Двигаем объекты по UV​​Бесконечное тайловое пространство. Квадраты никогда не закончатся, каждый из них повторяет текстуру из первого квадрата, а уместить развёртку нужно в квадрат 0-1.UV Развёртка: ААА-Пайплайн 4/7. Самый полный гайдUV Развёртка: ААА-Пайплайн 4/7. Самый полный гайдUV Развёртка: ААА-Пайплайн 4/7. Самый полный гайдUV Развёртка: ААА-Пайплайн 4/7. Самый полный гайдUV Развёртка: ААА-Пайплайн 4/7. Самый полный гайдUV Развёртка: ААА-Пайплайн 4/7. Самый полный гайд​Тайловая текстура, т.е. текстура, которая повторяется без швов.​Кусок сцены с фруктами.Одна текстура — и сразу несколько покрашенных объектов. Это простейший атлас.​​Видишь, текстура некрасиво растянулась на UV. Всё потому что прямоугольные текстуры растягиваются до квадрата.Так выглядит чекер. Здесь он везде без потягов и одного размера, значит ошибок на UV нет.​Потяги на UV — чекер не квадратный​UV Развёртка: ААА-Пайплайн 4/7. Самый полный гайд​Примерные цифры. Для каждого проекта тексель отличается и высчитывается тех. директором​Здесь слишком много свободного пространства на UV. Нужно увеличить размер всех шеллов и перепаковать их, чтобы они полностью заняли первый квадрат. Тогда будет выше тексель и текстура будет более детализированнойUV Развёртка: ААА-Пайплайн 4/7. Самый полный гайдUV Развёртка: ААА-Пайплайн 4/7. Самый полный гайдПример того, как текстуры теряют разрешение на расстоянии.​​Паддинг​Видишь швы на бочке? Их быть не должно. ​Стенку цилиндра мы мапим в прямую линию. Обрати внимание, на юви много тонких прямоугольных шеллов — их очень удобно паковать вместе.

Если линия неровная, она занимает много места на UV, поэтому лучше размапить её как прямую — ведь прямоугольники очень легко паковать.

​Небольшие неровные линии отлично мапятся в прямые. Так их легче паковать.

Мы сделали UV, что дальше?

1) На следующем этапе мы будем запекать детализацию с хайполи на лоуполи.

2) Потом сделаем текстуры для нашей модели

3) А в конце нас ждёт подача модели, чтобы сделать сочный скрин для твоего портфолио.

Даты писать не будем — мы в них не попадаем (работы много, курсы, все дела, не успеваем статейки писать)

И обязательно вступай в группу в ВКонтакте и группу в Фейсбуке, чтобы не пропустить следующий выпуск!

А ещё мы есть в Инстаграме и Ютубе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *