Привет, ребята!
В ряде статей я хочу разобрать раздел UV Coordinates с его списком модификаторов.
Для начала, что же всё-таки это такое, с чем его едят, да и где они находятся?
UV Coordinates можно найти в разделе Modifiers >> UV Coordinates
Данные модификаторы предоставляют нам различные инструменты в помощь для наложения текстур на объект.
В UV координатах включены следующие разделы:
1. UVW Map
2. Unwrap UVW
3. UVW Xform
4. UVW Mapping Add
5.UVW Mapping Clear
6. MapScale(WMS)
7. Projection
8. Camera Map
9. Camera Map (WSM)
Заметка:
Здесь, я наверное лучше сделаю отступление для совсем новичка в этой сфере и скажу, не углубляясь в литературу, что Mapping - это что-то вроде некой раскройки модели, которая накладывается на полигональную сетку 3D модели.
Создавая Mapping, мы разделяем наш объект (модель) на некие отдельные части для того, чтобы точно, так как нам нужно, наложить текстуру на необходимую 3d модель.
Как пример, вспомнились в детстве журналы, с которых вырезались персонажи с деталями и с помощью изгибов в нужных местах, складывался объемный 3д объект.
Погуглив, что-то подобное можно найти и сегодня. Единственное раньше персонажи по мне так были более художественные.
И тут возможно у кого-то появится вопрос, а к чему тогда UVW или UV?
UVW - относится к XYZ, как XYZ-к мировым координатам. Поскольку XYZ уже использовался для обозначения мировых координат, UV - используется для обозначения координат X и Y (2D) плоской карты. По экстраполяции, W - это Z в XYZ.
Давайте начнем мы с модификатора UVW Map и его применения.
Заметка:
Ребят, знайте, что этот модификатор не является панацеей от всех бед, и у него есть свои плюсы и минусы.
Воспользоваться модификатором UVW Map мы можем, выбрав его из списка модификаторов:
Или зайдя в раздел Modifiers >> UV Coordinates >> UVW Map
При применении на объект модификатора UVW Map - его влияние на объект мы не заметим, так как он, как отражался стандартным цветом или матом, так и будет.
Поэтому, чтобы увидеть, что мы будем изменяться и как оно будет накладываться (исходя из ровности квадратов карты Checker или другой выбранной вами карты Checker) , нам нужно будет применить к материалу, который наложен на наши объекты, карту Checker.
Теперь давайте рассмотрим параметры модификатора UVW Map.
В нем есть один большой свиток Parameters, в котором есть следующие разделы:
MappingChannelAlignmentMapping (проецирование) - в этом свитке нам предоставлены типы проецирования UVW координат на выбор, которые мы присваиваем объекту/модели, исходя из нашей необходимости “как должна отображаться текстура на объекте”.
Planar(планарное проецирование) - применяtтся для создания UV координат на плоскостях или подобным плоскостям поверхностям. Также можно применять в вариантах более сложного проецирования развертки.
Заметка:
Стоит заметить, что если накинуть тот же модификатор UVW Map на другие объекты, он будет отображаться.Как пример возьмем три разных объекта:
1.Плоскость (в виде квадрата)
2.Подушку от дивана
3.Куб.
И накинем на них через instanced один и тот же модификатор UVW Map.
Смотря на эти три объекта сверху вид Top, мы отмечаем, что вроде бы текстура отображает ровно без косяков.
Но если посмотрим под углом:
то увидим, что боковые стенки на боксах не отражают текстуру также, как и на верхних плоскостях. На боковых гранях текстура растянута.
Если выберем Gizmo - условный манипулятор, который можно выбрать в списке модификатора UVW Map.
(Он представленный в виде плоскости, или других объемных объектах (сфера, куб ) и отображает положение данного проецирования, его соотношения к объекту: соотношение размера, его расположения от центра оси объекта(по центру он, или смещен…) А также он дает возможность при необходимости видоизменять настройки вручную, смещаясь от центра оси в нужную сторону, поворачиваясь или масштабируясь.
Так вот, повернем его на 90 градусов - то получим уже рисунок на фронтальных стенках моделей, но теперь по другим сторонам будет рисунок потянутый.
Поэтому данный вариант хорош для плоскостей.
Для накладывания маски (рисунка) на нужную плоскость.
Cylindrical(цилиндрическое проецирование) - предназначен для поверхностей объекта или самого объекта, имеющих цилиндрическую форму.
То есть развертка оборачивает форму цилиндра, скажем, как наклейка оборачивает бутылку.
А при включенном флажке напротив Cap - позволяет дополнительно спроецировать (создать) развертку на верхней и нижней части цилиндра, если отключено - то проецирования (создание) развертки на этих местах отсутствует (вы увидите искажение, смотрите рисунок выше).
Заметка:
Если накинуть этот же UVW Map на боксовые модели и плоскость - он будет выполнять какую-то свою функцию, даже если поиграться с размерами Gizmo, но отображаться Checker будет с артефактами.
2. Если пользоваться Cap - то наверно лучше выделить нужные нам полигоны и применить к ним нужный нам UVW Map. Как пример, можно применить к стенкам
Cylindrical проецирование, а к верхней и нижней части Planar. Тем самым выровнять проецирование UVW всего объекта.
Таким образом сложные объекты мы можем разбивать на кучу разных частей UVW Map, если не хотим воспользоваться UVW Unwrap.
Spherical (сферическое проецирование) - название говорит само за себя, данное проецирование применяется к объектам, приближенным к сферической форме.
Проекция как бы оборачивает сферу, как обертка.
Заметка:
1.Стоит учитывать, что при использовании Spherical создается переход деформации от центра к верхнему/ или нижнему “полюсу” сферы.
2.Если накинуть поверх модификатор UVW Unwrap - на одной из сторон сферы мы увидим шов и на полюсах сферы нарезку (отмеченные зеленым цветом) после применения к объекту UVW Map (Spherical)
Это стоит учитывать, чтобы потом шов не оказался на видном месте.
Box (кубический) - применяется к объектам, которые имеют форму куба, ну или, если говорить правильно, форму параллелепипеда. Создает проецирование для каждой из 6 ти сторон куба.
Заметка:
Стоит отметить, что данное проецирование можно применять также и к плоскостям.
Зачастую это же проецирование применяют и к сложным объектам, не подвергая модель созданию развертки (UVW Unwrap).
Но стоит заметить, что тут будут появляться артефакты, которые потом могу дать о себе знать при отображении текстур.
Shrink Wrap - относится к сферическому проецированию, когда углы карты отсекаются и после соединяются вместе в одном полюсе.
Заметка:
Данный вариант проецирования хорош в том случае, когда мы хотим спрятать швы UVW Map. Так как в Spherical - мы имеем два полюса- верх/низ, а в Shrink Wrap только один - низ, ну или можно перейти в Gizmo и повернуть его как нам нужно.
Face - присваивает проекцию каждой грани объекта.
Заметка:
Face проекция хорошо послужит в Compose. При смешивании текстур учитывается разновидность применения UVW Map к модели, как и разновидность Map Channel (описание дальше в статье), что позволит где-то избежать к примеру швов, если текстура не протайлина.
XYZ to UVW - преобразовать координаты XYZ объекта/модели в их UVW эквиваленты(“нечто равноценное другому, вполне заменяющее его”)
Заметка:
Чтобы работать с этим вариантом проецирования стоит знать о следующих вещах:1.
Зайдя в настройки текстуры в разделе Coordinates в функции Source необходимо выставить Explicit Map Channel.
2.Если применить его к модели - то вероятнее всего текстура не отразиться.
Какие могут быть причины:
Первое, изначально она не отразится в рабочем окне потому что проецирование исходит из минимальных настроек.
Как на примере сверху показывается модель серая - а на рендере видно что-то сильно “затайленое”.
Потому методом проб понижаем значение этого параметра в настройках текстуры, или в настройках UVW Map.
Какое значение верно? Если честно, тут каждый раз срабатывают по-разному значения.
Дальше, когда мы понизили значение Tile, то мы можем увидеть на модели некорректное отображение текстуры. Это нормально, не пугайтесь. С большинством “активных карт” рядом это срабатывает.
Вот и вы можете попробовать другие карты, тут всё зависит от того, какой эффект вы хотели бы добиться.Поигравшись с этими картами и их настройками, я получила приблизительно такие результаты (пара примеров см. ниже):
Так же, ребят, не стоит пугаться, если в рабочем окне будет отображаться одно, а на рендере другое:Почему так происходит, у меня конкретного ответа нет, хоть я и перечитала множество ресурсов на просторах интернета.
Скорее всего недоработка разработчика.Следующими параметрами свитка Parameters являются настройки, отвечающие за размеры Gizmo.
Настраивать его бегунками, или вручную - это думаю вопрос удобства, так как подогнать масштаб его, исходя от размера текстуры Checker, не составит труда.Следующими параметрами - являются настройки Tile (UVW это исходя из осей - XYZ).
Tiling - метод повторения текстуры/изображения в одном направлении или направлениях U , V, W на объекте. Повышая значения тайлинга, мы можем влиять на масштабирование изображения. Уменьшая ее в размерах и аналогично наоборот за счет понижения значения, мы увеличиваем масштаб текстуры/изображения.Параметр Flip - при наличии галочки, переворачивает проекцию ( визуально - текстуру) относительно выбранной оси.
Use Real World Scale - позволяет выставлять в настройках реальные размеры текстуры/изображения.
Если мы хотим воспользоваться данной функцией, то выставляем галочку и переходим в настройки текстуры. Нажимаем горячую клавишу М на клавиатуре и открываем Material Editor, находим настраиваемый нами материал. И здесь в его параметрах так же выставляем галочку напротив Use Real World Scale.
В настройках Size для примера выставим 500,0mm.
На примере с черно-белым Checker - размер 4-х черно-белых кубов равен 500mm по 3-м осям UVW.
Заметка:
Вероятнее Use Real World Scale будет хорош в том случае, когда у Вас уже будут наработки библиотек материалов и Вы в дальнейшем эту библиотеку будете использовать в своих проектах или будете дорабатывать.Вот тогда вам попросту не надо будет каждый раз подгонять текстуру относительно размеров.
Потому что каждый раз высчитывать размеры того или другого объекта занимает продолжительное время.Если взять за пример плитку тротуарную, то зная ширину одной плитки мы условно умножаем на ее количество в текстуре и получаем значение Width Size, и аналогично так же делаем с высотой - Height Size
Свиток Channel
Map Channel - множественное количество версий UV пространства одной модели, или объекта для создания композиционного материала с разновидностью деталей.
Заметка:
Смотрите, у нас есть возможность выбрать от 1 до 99 вариантов каналов, для создания сложного материала, добавляя к материалу разные эффекты, рисунки, и при этом по сути пользуясь теми возможностями, которые предоставляет 3Ds Max.
Стоит отметить, что если человек для себя начал пользоваться каналами, то стоит отнестись так, что Map Channel под №1 - это основной канал ( можно сказать как чистовик), а все остальные от №2 и до №99 - это рабочие каналы, которые мы накладываем на наш первый канал.(что бы потом не бороться с косяками, перепекать-запекать текстуры и тд и тп.)Как пример, возьмем куб, применим к нему UVW Map >> в разделе Mapping выберем Box и накинем на куб материал с текстурой Checker.
Получаем куб с отображением текстуры на каждой из сторон.Дальше можем дублировать этот же UVW Map.
Единственное в Map Channel выставим значение 2.
И в материале создадим карту Composite, где в первом слое применим нашу текстуру Checker. А в настройках самой текстуры настройки Map Channel оставим 1.А во втором слое применим рисунок покемона (единственное я в фотошопе заготовила для него черно-белую маску) - в настройках самой текстуры и маски настройки Map Channel оставлю 2.
На выходе мы получаем рисунок покемона поверх checker текстуры. Так же, что бы рисунок не тайлился (повторялся) - убираем галочки в Tile.
Конечно мы бы получили это же материал и при использовании в двух текстурах Map Channel 1, но тогда у нас был бы один гизмо. И параметры настроек UVW Map на 2 текстуры.А в нашем случае мы получаем на каждую текстуру по гизму, а также возможность отдельно настраивать UVW Map параметры.То есть отдельно выставлять размеры для шахматной текстуры, и отдельно контролировать размер покимона.
Но знайте, что если мы перейдем на модель в рабочем окне, то отображаться будет Checker без покемона.Чтобы отображалась нужная нам текстура, или маска на нашем объекте - переходим в материалы выбираем нужную ноду текстуры и нажимаем Show Shaded Material in Viewport
Чтобы отображались все каналы и мы видя всю ситуацию правили нужный нам рисунок - Show Shaded Material in Viewport нужно применить к node Composite.
Рисунок покемона у нас большой, потому уменьшим его. Переходим в модификатор UVW Map_2 - и уменьшаем размеры.
Перетягиваю своего дракошу в нижний правый угол, смотри выше.
Заметка:
Стоит обратить внимание на то, что мы получаем покемона на всех плоскостях куба.Если бы вместо него и чекера были бы текстуры для смешивания под металл или дерево, или ткани и нас бы устраивал результат, то ок.Но если это какой-то рисунок, и пятно-потертость эффект нужный нам на одной стороне объекта, то тут надо обращаться к функции Face (присваивает проекцию каждой грани объекта) в разделе Mapping.
С помощью Edit Poly - выбираем нужный полигон или группу полигонов. Накидываем на них модификатор UVW Map в разделе Mapping, выбираем Face и в Map Channel выбираем канал 2.Получаем нашего покемона, теперь он отображается лишь на одной стороне Box-a. (Иногда может произойти артефакт, и Face срабатывает без выделения нужного полигона/полигонов). Так же можно попробовать наложить текстуру через Planar, но тогда вероятнее всего на противоположной стороне нашего полигона/полигонов (в нашем случае на задней части куба) - дракоша тоже отобразиться.
При использовании варианта Face, настройки гизмо, кроме Tile не работают в этом режиме. Ничего страшного, переходим в материал и изменим параметры данной текстуры в свойствах самой текстуры (так как я использую альфа маску дракоши - то там так же выставляю аналогичные настройки).
И получаем маленького покемона в нижнем правом углу.
Так же можем накинуть еще раз модификатор на этот полигон (ну или для себя поиграться, поимпровизировать с другими полигонами, или взять другие объекты) - ну а я продублирую тот же модификатор UVW Map - единственное поменяю Map Channel на 3.
И сделаю Flip текстуры за счет V Angle.
P.S. Node Controller использую для того, чтобы изменять сразу нужные параметры в 2-х текстурахИ вот, мы получаем двух дракош на одной стороне Box-a без проявления их на других сторонах.
Vertex Color Channel - выбирая эту опцию вместо Map Channel, определение канала происходит по цвету вершин. RGB = XYZ.P.S.
На примерах этот раздел сложнее объяснить, так как недостаточно собрано материала чтобы сделать конечные выводы. Потому этот пункт или дополню чуть позже, или Вынесу в отдельную тему - так как с Vertex Color пересекаются и ряд других вещей и возможностей.
Alignment - в этом свитке нам предоставлены возможности для интерактивного управления Gizmo и возможности выравнивания Mapping (отображения текстуры на объекте ).
X-Y-Z - при выборе одной из трех осей происходит выравнивание (переворачивание) оси Gizmo текстуры относительно оси Z объекта.
Как пример:
Manipulate - при включении, появляется дополнительное интерактивное Gizmo (отображаемое зеленым цветом) позволяющее (наведя на нужное ребро по оси) изменять вручную (мышкой) размеры основного Gizmo.
Fit - выравнивает/перемещает Gizmo относительно границам объекта.
Center - перемещает Gizmo относительно центра нашего объекта, или выбранного полигона/полигонов, на которых можно выровнять текстуру/рисунок относительно центра нужного объекта или полигонов.
Bitmap Fit - изменят размер Gizmo к размеру изображения(Bitmap).
Проще говоря размер Gizmo будет равен размеру используемого изображения при нажатии Bitmap Fit.Не работает при использовании функции Real-World Map Size.
Normal Align - включенная данная функция позволяет перемещать Gizmo (в нашем случае рисунок) - по объекту. Достаточно кликнуть на Gizmo (изображение) и зажать клик, и переместить в нужное нам место.
Заметка:
Стоит учитывать, что данную функцию лучше применять без выделения полигона/полигонов и накладывания на них UVW Map, а применять UVW Map сразу к объекту. Так как перемещая текстуру/рисунок за рамки выделенного полигона/полигонов - программа будет искажать изображение. Так же данная функция не работает с Mapping - Face.
View Align - размещает Gizmo(текстуру/рисунок) относительно нашего взгляда на объект.Как пример, взглянем в рабочем окне на куб не фронтально, а под углом в 45 градусов - чтобы наш взгляд падал на угол(грань) куба.
Выберем Gizmo и нажмем View Align.
Изображение дракона ляжет на два полигона - так как будто мы на него смотрим фронтально.Но если мы продублируем этот куб и немного повернем его по оси Z (влево или вправо) - то увидим растянутую текстуру - от угла(грани) уходящую вдаль одного и другого полигона.
Данная функция неплохо себя проявит в том случае, если нам надо настроить текстуру/изображение под 1 камеру(ракурс).
Заметка:
Если использовать данную функцию для текстуры, которая покрывает весь объект, то в зависимости от взгляда на объект, при использовании Mapping - Face мы будем получать рандомный результат.
Где-то это будет выглядеть так, что текстура хорошо ляжет на одну сторону (на которую мы смотрели), но на других визуально заметно будет сильная растянутость текстуры.А в другом случае, исходя от другого угла обзора, мы возможно можем получить по своему интересно-рандомно уложенную текстуру с присутствующим растягиванием рисунка на гранях между сторонами куба.
Если взять в Mapping - Box и применить к гизму View Align, то можем получить интересную - рандомную укладку текстуры, но тут надо поиграться с углами обзора.
Region Fit - включает режим, в котором мы вручную можем определять область воздействия гизмо на поверхность объекта.
Данная функция недоступна при включенном режиме Real-World Map Size.
Заметка:
При включении режима Region Fit на объекте или поверхности, которой отображается наш рисунок/текстура, нужно будет кликнуть, и, не отпуская клавишу, тянуть в сторону (похоже на выделение нескольких объектов с помощью Selection Region). В результате нашего действия мы определяем область нашего рисунка, а если это текстура с включенным Tile - то вручную создается Tile текстуры от маленького к большему размеру.
Как по мне данная функция больше предназначена для ручного размещения какого-то эффекта на поверхности объекта с помощью Planar + Region Fit.
Если Gizmo Planar-a надо перекинуть на другую плоскость, то тут быстро поможет опять же Normal Align, а после можно будет вручную указать область + размер изображения с помощью Region Fit
Reset - отвечает за сброс настроек, обнуляет все настройки/действия связанные с Gizmo, включая и анимацию, связанную с ней.
Acquire - данная функция позволяет скопировать координаты UVW от другого объекта. То есть, размеры Gizmo, Mapping, расположение относительно оси Z, будет как у объекта у которого скопировали.
При нажатии на Acquire всплывет дополнительное окно, в котором будет предложено сделать выбор:Acquire Relative или Acquire Absolute.
Acquire Relative - при выборе данной функции, Gizmo скопирует все настройки другого указанного объекта, но Gizmo будет находиться в центре объекта.
На практике расположение относительно оси Z не будет идеально соответствовать 1:1 к расположению Gizmo оси Z объекту у которого копировалось.Acquire Absolute - при выборе данной функции, Gizmo скопирует все настройки другого указанного объекта, но Gizmo будет находиться в центре указанного объекта(в центре того объекта у которого копировали).
объект 1 - с которого копировались параметры UVW c помощью Acquire
объект 2 - применялся Acquire Relative
объект 3 - применялся Acquire Absolute +функция Center(Alignment)
Display - этот свиток отвечает за то, как будут отображаться швы.
Швы отображаются только при активном уровне подобъекта Gizmo.
Show No Seams - не показывать швы.
Thin Seam Display - швы отображаются тонкими линиями.
Thick Seam Display - швы отображаются толстыми линиями.
Прошу меня извинить, но вопрос сравнения и недостатков UVW Map, я решила вынести в отдельном посте. Что бы не перегружать большим текстом.