Смекни!
smekni.com

Текстурирование отдельного объекта. Упрощенная текстура (стр. 1 из 2)

Текстурирование отдельного объекта. Упрощенная текстура.

Содержание:

1. Введение

1.1. Простое текстурирование.
1.2. Сложное текстурирование
2. Заключение

1. Введение

При созданиии фотореалистичных изображений при помощи редактора 3DS MAX обязательно используется такой метод как текстурирование.

Что же такое текстурирование?


В это понятие входит не только создание текстур, но и присвоение объекту текстурных координат, что более важно, т.к без них не может быть наложена на модель ни одна текстура. В отличие от объектов, которые описываются координатами X,Y,Z, текстурные карты и проецирование их на поверхность описывается в координатах U,V,W. Дело в том, что текстурные карты не имеют явных координат в пространстве - координаты UVW только представляют пропорции этих карт. Координаты UV (ширина и высота) пересекаются в центре текстурной карты и таким образом определяют центр вращения (рис.1).

рис. 1

Координата W изменяет проекцию отображения текстуры на 90 градусов (используется крайне редко).

Если речь идет о параметрических примитивах (те, которые присутствуют в Максе как самостоятельные объекты), то нужно отметить, что все они уже идут с наложенными текстурными координатами, о чем говорит отмеченный чек бокс Generate Mapping Coords. Это так называемое параметрическое проецирование. Кроме стандартных и расширенных (Extended) примитивов, такое проецирование координат возможно и в некоторых модификаторах (например, Loft, Extrude, Lathe). Недостатком такого рода проецирования является то, что повторяемость (tiling) и ориентацию в пространстве текстур можно настроить только при помощи параметров материала (в редакторе материалов), назначенного поверхности. Иначе говоря, такие проекционные координаты не управляются и имеют коэффициент повторения равный 1. Есть еще один довод не в пользу такого способа - при проецировании каждая грань требует минимум 12 байтов памяти, поэтому при больших сценах или в случае со слабым компьютером нужно включать их либо в конце работы, либо тогда, планируется разрушать стек модификаторов.

Обратимся к практическим примерам. Построим плоскость и присвоим ей какую-нибудь текстуру (используется представленная на рис.1). В итоге получиться что-то похожее на рис. 2.

рис. 2

В данном случае использовалось планарное проецирование. Это проецирование применяется по нормали к поверхности, что производит неискаженное проецирование. Планарное проецирование является наиболее распространенным методом проецирования. Часто на его основе строится более сложное проецирование. Примером такого проецирования может служить примитив Box, с его проекционными координатами по умолчанию. Это ни что иное как планарное проецирование, примененное с шести сторон (рис.3).

рис. 3

Каждая сторона куба самостоятельно отображает присвоенную текстуру. Такой тип отображения проецированных координат на поверхность называется прямоугольным или Box.

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

рис. 4

Еще один тип проецирования - это сферическое проецирование. Оно отображает свои координаты из центральной точки во все направления (рис. 5).

рис. 5

Текстура оборачивается вокруг сферы и имеет шов от одного полюса к другому. Для того, чтобы при сферическом проецировании текстурная карта казалась неискаженной на экваторе (т.е. в середине) нужно использовать соотношение сторон 2:1.

Итак это три основных типа проецирования текстурных координат на поверхность объектов, если открыть модификатор UVW Mapping, то можно обнаружить там еще три типа проецирования - Srink Wrap, Face и XYZ to UVW, но они применяются очень редко.

Текстурирование также бывает двух типов: сложное и простое.

Рассмотрим сначала простое.

1.1. Простое текстурирование.

Самым важным в наложении текстурных координат является правильный выбор типа проецирования. Подход к выбору типа проецирования прост - он должен максимально подходить по форме к тому объекту (или его части) на который накладывается. Логично предположить, что для текстурирования бутылки больше всего подходит цилиндрическое проецирование. Допустим нужно прикрепить к бутылке этикетку. Для этого строится плайн профиля бутылки и при помощи модификатора Lathe создается сама поверхность (рис. 6).

рис. 6
рис. 7

Если присвоить бутылке текстуру этикетки, то она распределиться по всей поверхности объекта т.к. в данном случае используются текстурные координаты, сгенерированные модификатором Lathe (рис. 7).

Для того, чтобы получить контроль над текстурными координатами объекту присваивается модификатор UVW Mapping с цилиндрическим типом маппинга. Ось выравнивания здесь - Х. Кроме того, нужно нажать кнопку Fit, для того чтобы гизмо проекции максимально точно повторило поверхность бутылки (рис. 8).

рис. 8

Далее для более точного контроля над гизмо проецирования, нужно нажать на плюсик рядом с названием модификатора, в результате чего появится возможность выбора гизмо и более точной настройки его положения в пространстве. Теперь надо смасштабировать гизмо по вертикали (уменьшить параметр Height) так, чтобы придать этикетке ее реальный размер и передвинуть гизмо на место положения этикетки на бутылке. По умолчанию текстура тайлится, т.е. повторяется, поэтому нужно зайти в редактор материалов и отключить у текстуры параметр Tile (рис. 9).

рис. 9

Теперь этикетка стоит на месте, но все еще обернута вокруг всей бутылки. Чтобы этого не происходило следует увеличить параметр Tiling (например 2.5 см. рис. 9). Речь у нас идет об основах наложения текстурных координат, поэтому не стоит в подробностях описывать создание текстуры, можно лишь предложить дерево материала (рис. 10).

рис. 10

В качестве основного материала использовался Blend, где подматериалами выступают стандартный материал с картой Raytrase для материала стекла, а второй материал - это сама этикетка. Взаимное отображение материалов на объекте управляется при помощи маски Gradient Ramp (на самом деле это просто прямоугольник белого цвета по форме этикетки). На рис. 11 представлен рендер с предполагаемыми материалами.

рис. 11

Можно разобрать еще один простой пример, который позволит понять как можно не прибегая к сложным настройкам наложения текстурных координат присвоить части объекта текстуру. Для этого следует воспользоваться стандартным примитивом Box. Предположим, что нужно каждой стороне этого бокса присвоить свою текстуру (по умолчанию всем плоскостям бокса присваивается одна текстура).
Первое, что нужно сделать - это добавить в стек модификатор Edit Mash. Это нужно для того, чтобы получить контроль над полигонами. Далее, если на уровне подобъектов Poligon (рис. 12) выбирать какую-нибудь плоскость, в разделе Material можно увидеть присвоенный ей ID.

рис. 12

По умолчанию 6 плоскостям бокса будут присвоены идентификаторы от 1 до 6. Можно выделить один или группу полигонов и присвоить им новый ID, например "7".
Создав мультиматериал (Multi/Sub-Object) с количеством подматериалов по количеству присвоенных объекту (рис.13), нужно наложить его на бокс.

рис. 13

В итоге получается "местное" текстурирование на основе ID материала (рис.14).

рис. 14

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

1.2. Сложное текстурирование

Название "Сложное текстурирование" говорит о том, что работа будет с более сложными объектов, а не о том насколько сложно это сделать. В понятие "сложные объекты" включаются такие объекты, к которым невозможно применить один из типов проецирования (планарный, цилиндрический, кубический и т.д.) и этим ограничиться. Обычно такие объекты требуют совместного использования нескольких типов проецирования и (или) коррекции наложения текстурных координат вручную при помощи модификатора Unwrap UVW или плагинов сторонних разработчиков.

В качестве примера модель ослика. Здесь рассматривается возможность текстурирования объектов не прибегая к помощи сторонних программ, а только средствами самого Макса.


Итак, на рис.1 представлена модель с которой будем работать.

рис. 1