Мозаичные текстуры и модели
Часто при текстурировании моделей требуется заполнить большую площадь повторяющимся рисунком: простейший пример — кирпичная стена. Можно, конечно попытаться найти или сделать самому текстуру сразу на всю стену, как мы поступали с окном, но тогда уменьшение масштаба кирпичей потребует новой текстуры. Есть другой, более универсальный путь. Создается так называемая бесшовная (мозаичная) текстура, и поверхность стены «обклеивается» ими как обоями со стыкующимся рисунком.
Бесшовными такие текстуры называются потому, что при наложении подряд шов между ними становится невидим. В Интернете существуют обширные библиотеки подобных текстур, но использовать их не всегда удобно: во-первых, эти текстуры обычно представлены в недостаточном разрешении; во-вторых, они доступны всем, и зритель может узнать текстуру, которую он видел в другой работе, что сильно испортит впечатление.
Сейчас мы посмотрим, как самому сделать бесшовную текстуру при помощи цифрового фотоаппарата и графического редактора. Для начала надо сфотографировать интересующий нас объект, например ту самую кирпичную стену. Первое правило при съемке текстур: старайтесь, чтобы цвет всего кадра был равномерным, не должно быть блика от вспышки или неравномерного освещения, а также чтобы линии кладки шли в кадре горизонтально. Но даже если нам не удалось снять стену идеально, большинство огрехов можно поправить в графическом редакторе.
Теперь надо выделить фрагмент кадра, который впоследствии мы будем размножать. Нам нужно, чтобы как можно больше границ между кирпичами (полосок раствора) попало на края фрагмента и чтобы в него попала ровно половина шва. Затем изображение необходимо циклически сдвинуть (Adobe Photoshop — фильтр Offset) примерно на 50% по горизонтали и вертикали. На изображении возник крест. Если его «замазать» (обычно это делается инструментом Clone), то получится бесшовная текстура. Результат можно проверить повторным сдвигом — никаких швов возникать не должно.
Теперь размножаем фрагмент кирпичной кладки на требуемую площадь. В отличие от текстур модель может быть не квадратной, то есть мы можем сделать фрагмент кладки, в которой швы будут проходить только между кирпичами. Такой способ разбивки сильно облегчает создание модели.
Карты смещения
Иногда требуется большую площадь замостить множеством мелких, причем неодинаковых объектов. Эту задачу можно решить при помощи мозаичных моделей. Но если, например, надо создать лужайку, на которой лежит мяч, приминающий траву, то мозаичные модели помогут едва ли — придется вручную «пригибать травинки». Карты смещения позволяют решить эту проблему проще.
Допустим, наши объекты отличаются друг от друга только небольшим числом параметров. Если их три, то информацию о каждом можно хранить в графическом RGB-файле, в котором каждому объекту соответствует один пиксел. Удобство хранения информации — не главное преимущество карт смещения. Главное — это удобство редактирования. Вы можете «придавить» траву в каком-то участке лужайки прямо в графическом редакторе, изменив яркость тех пикселов, которые соответствуют травинкам под мячом. Также карты смещения могут хранить и смещение объектов (эта функция и дала им название).
Особенности моделирования природной среды
При моделировании природной среды особое внимание следует уделять отсутствию повторяющихся элементов, единственное повторение может сильно испортить общее впечатление. Однако рисовать каждый листочек на дереве нет ни времени, ни желания. Для этого все объекты обычно разбивают на группы в соответствии с удалением от камеры. Листья на ближнем плане будут хорошо видны, поэтому их форма и текстура должны быть тщательно проработаны, в то время как листья на среднем и дальнем планах могут быть просто нужного цвета и напоминать лист по форме. Для листьев переднего плана создается некоторое количество шаблонов геометрии и текстур. Соответственно, если и того и другого по пять экземпляров, получаем двадцать пять различных типов листа. Обычно сюда входят пожелтевшие, завернувшиеся и больные листья.
При создании 3D-деревьев сложной формы проблемы обычно возникают на стадии наложения текстуры. С другой стороны, каждая ветка дерева по существу является цилиндром. Для более удобного наложения текстуры дереву приходится менять форму, для этого чаще всего создается скелет, как у компьютерного персонажа. При помощи костей дерево приводится к виду, когда все ветки торчат параллельно стволу, а затем на дерево накладывается текстура посредством цилиндрического проецирования (Cylindrical Mapping), и наконец, дереву придается первоначальная форма. Таким образом, на каждой веточке текстура аккуратно лежит вдоль направления роста.
Читать дальше