Создание мозаики для текстуры с повторяющимся узором

Текстура с повторяющимся узором состоит из одинаковых повторяющихся фрагментов изображения, напоминающих мозаику. С помощью таких текстур можно воссоздать более реалистичный внешний вид модели. Они не занимают много места на диске, а уровень производительности при их использовании возрастает. Любой 2D-файл можно превратить в мозаичный рисунок. После предварительного просмотра взаимодействия участков мозаики на рисунке вы можете сохранить один из них в качестве повторяющейся текстуры.

Чтобы создать сетку для текстуры с повторяющимся узором, воспользуйтесь 3D-редактором, в котором была создана модель.

1. Откройте 2D-файл.

2. Выберите в файле один или более слоев, затем выберите «3D» > «Новая мозаичная картина».

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

3. Измените мозаичную текстуру с помощью инструментов для рисования, фильтров или другими способами. (Изменения, внесенные в один фрагмент мозаики, автоматически проявляются в остальных фрагментах.)

4. Сохраните фрагмент мозаики как 2D-изображение: в разделе «Материалы» 3D-панели выберите «Открыть текстуру» в меню «Диффузия» . Затем выберите команду «Файл» > «Сохранить как» и укажите название, местоположение и формат.

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

5. Чтобы загрузить мозаику как текстуру с повторяющимся узором, откройте файл с 3D-моделью. В разделе «Материалы» на панели 3D выберите из меню «Диффузия» пункт «Загрузить текстуру» и укажите на сохраненный ранее файл.

 

Создание текстурных разверток

Введение

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

Пожалуй, самой главной проблемой стала Она – раскладка (или развертка) под текстуру. Наблюдая за моделлерами, я пришел к выводу, что для них (к счастью не для всех) эта часть работы, кажется наименее занимательной… Согласиться я с этим мог, но молчаливо принять нет. Потому как от этого зависела занимательность моей собственной работы ;) Спустя некоторое время, я сам стал моделировать многие вещи, сам делать на них развертки, и ниже я собираюсь рассказать о том, как сделать развертку под текстуру, чтобы художник, который будет с ней работать, не вспоминал вас нехорошими словами.

Я не буду рассказывать об инструментах, которые использую в работе. Равно как и о том, как я их использую, так как все это сильно зависит от того ПО, которое используете вы. Ниже речь пойдет об общих принципах создания разверток, и хотя материал рассчитан на новичков, я все же предполагаю, что вы достаточно хорошо владеете теми программами, в которых работаете.

Основы.

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

Тем не менее, часто, попытки сократить число швов, будут приводить вас к дилемме – сделать кусок непрерывным или же разбить на несколько частей, но эффективно расположить их на раскладке. Бывает, что удается добиться сразу всего – и непрерывности и эффективности. Однако в случае если это не так, то разбивать на отдельные куски, надо воспользовавшись естественными швами вашего объекта. Избежать их совсем вам не удастся, поэтому те, что остаются, должны быть замаскированы. По большей части это конечно работа художника по текстурам, однако еще на этапе создания развертки кое-что может сделать моделлер. Я думаю, что это должно быть и так понятно, но на всякий случай скажу. Самый простой способ спрятать шов – это поместить его в труднодоступное место модели, куда камера почти не заглядывает. Например, возьмем человека. Раскладка на его теле будет состоять из нескольких частей – туловище, голова, рука, кисть руки, нога. Отдельно могут быть также сделаны шея и обувь. Возьмем руку. Для нее у нас будет три шва. Первый — в месте соединения руки и туловища. Второй — в месте соединения с кистью руки. Третий — вдоль самой руки. Вот его то мы и можем спрятать на внутренней стороне руки, от подмышки до запястья. Примеров этому масса, достаточно посмотреть текстуры из большинства игр FPS жанра. При текстурировании техники или зданий потребности в особенной маскировке швов не требуется, так как они, как правило, состоят из острых углов, на которые эти швы можно поместить.

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


Нажмите на картинку чтобы посмотреть увеличенный вариант.

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

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

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

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


Масштаб
Нажмите на картинку чтобы посмотреть увеличенный вариант.

Растяжения на текстурах возникают из-за того, что к неплоским поверхностям, применяют planar mapping, как на рисунке ниже. Чтобы подобного не происходило, нужно разбить (условно) подобную поверхность на несколько более плоских частей, а затем эти части можно вручную соединить между собой, чтобы избавиться от швов.


Растяжения
Нажмите на картинку чтобы посмотреть увеличенный вариант.

Пропорции можно считать правильными тогда, когда квадратики текстуры квадратные, как бы забавно это ни звучало ;) См. рис.


Пропорции
Нажмите на картинку чтобы посмотреть увеличенный вариант.

По поводу масштаба есть еще одна вещь, которая, по сути, является исключением из правила. Выше, я сказал, что масштаб отдельных кусков развертки следует делать одинаковым. Однако бывают моменты, когда соблюдение этого пункта приведет к тому, что некоторые куски развертки будут размером в несколько пикселей, или же настолько малы, что нарисовать в них что-то вразумительное не выйдет, а надо. Такие вещи случаются, когда необходимо рисовать текстуру для крупных объектов, в составе которых есть очень маленькие части. Например, некоторое время назад, я рисовал текстуры на космические корабли. Среди них встречались огромные корабли-носители, у которых были такие, например, детали как сопла двигателей. В сравнении с кораблем они довольно маленькие. При том что текстура на весь корабль 1024*1024, при соблюдении одинакового масштаба кусочки, соответствующие соплам, получались очень мелкими. Данный момент был плох, прежде всего, по художественным соображениям. Действительно, если смотреть на корабль издалека, то маленьких сопел и не заметишь, но у игрока была возможность подлететь ближе и вот тут то все и вылезает наружу. При подлете к кораблю огромных размеров, основная текстура начинает казаться размытой, а такие мелкие части как сопла вообще становятся непохожими ни на что. Данную проблему легко решить, если увеличить куски развертки соответствующие соплам. Художники получат возможность нарисовать более детальную текстуру, а в игре подобные детали будут частично компенсировать общую размытость текстуры на ближних планах. Но тут надо тоже соблюдать некоторую осторожность и увеличивать такие куски не очень сильно, поскольку надо понимать, что те же сопла не являются объектом пристального исследования игроком. Он ЗАМЕТИТ, если текстура на них размытая и плохая, но он и НЕ оценит, если вы сделаете текстуру на соплах ОЧЕНЬ детализированной. Так что, даже если у вас осталось много свободного места на текстуре, вместо того чтобы сильно увеличивать мелкие части, подумайте о том, что вы, скорее всего, не очень эффективно это место использовали.