Создание текстуры
Текстурирование - это еще один из способов редактирования поверхности. При определении параметров поверхности вы задаете ее геометрические и физические свойства. Однако без наложения текстур не обойтись, если требуется имитировать материал, из которого создана поверхность (камень, дерево, песок и т.д.). Определяя карту вдавливания объекта, вы просто задаете его фактуру, шероховатости, царапины и т.д. А применение текстур переводит поверхности на более высокий уровень визуализации.До сих пор поверхности, которые вы моделировали, были предельно просты, поскольку вы только начали изучать основы работы с ними в LightWave. Теперь можно приступить к созданию более сложных элементов.
Основным недостатком объектов виртуального мира является то, что они идеальны, то есть лишены каких-либо деталей, присущих их реальным прототипам. Их поверхность не имеет шероховатостей и безукоризненно окрашена (рис. 12.30). Чтобы объекты выглядели более естественно, необходимо добавить несколько штрихов, наложить текстуры (рис. 12.31).
Текстура определяет качество (если угодно реализм) создаваемой модели, она либо снижает, либо, наоборот, усиливает эффекты, примененные к объекту. Объем текстур определяется каким-либо параметром, например, изображением, хранящимся в файле, математической формулой или просто набором чисел. От каждого конкретного случая зависит, какой из типов хранения информации о текстуре выбрать.
Например, один из самых распространенных случаев применения текстур - создание налета пыли или грязи, имитирующий возраст объекта. Вы, вероятно, помните, что подобный эффект можно получить и при помощи параметра Diffuse, однако, определив его, вы делаете всю поверхность темнее и грязнее, что, согласитесь, редко встречается в реальном мире. Используя текстуры, можно добиться большей естественности, назначая одним пикселям поверхности высокое значение этого параметра, а другим - меньшее. Значение Diffuse для каждого пикселя определяется именно текстурой.
В LightWave существует три основных вида текстурирования - image maps (карты изображений), procedural textures (процедурные текстуры) и gradients (градиенты). Но независимо от выбранного типа текстурирования и целей, наложения текстур все операции с ними вы будете осуществлять в Texture Editor (Редактор текстур
Для определения любого атрибута, рядом с которым есть кнопка Т, можно использовать текстурирование.
Если кнопка Т подсвечена, значит, при определении данного параметра было использовано текстурирование. Чтобы изменить параметры текстуры,
щелкните по этой кнопке.
Чтобы удалить текстуру из атрибута, щелкните по кнопке Т, удерживая нажатой клавишу Shift. Если кнопка не подсвечивается, текстура удалена.
Но будьте внимательны, помните, что отменить эту операцию невозможно. Если вы все же ошиблись и удалили текстуру, единственный способ восстановить
ее - вернуться к более раннему варианту объекта.
Texture Editor
Как и в Surface Editor (Редактор поверхностей), в Texture Editor (Редактор текстур) находятся все основные элементы управления и атрибуты, необходимые для работы с текстурами. Здесь есть практически все, что может понадобиться для создания даже очень сложных текстур (рис. 12.32). Одна из наиболее мощных возможностей Texture Editor заключается в одновременном наложении нескольких текстур (с использованием слоев) и получении таким образом новой текстуры. Работа со слоями осуществляется в левой половине окна Texture Editor. Элементы управления различными типами эффектов расположены в правой половине.
В верхней части окна находятся кнопки настройки слоев. При помощи этих опций можно определить не только тип слоя, но и влияние текстуры на отдельные атрибуты поверхности. Чем прозрачнее становится слой, тем лучше видны слои, расположенные за ним. Параметр Layer Opacity (Непрозрачность слоя) может изменяться не только в диапазоне от 0 до 100%, но также принимать и превышающие 100%, и отрицательные значения.
При изменении типа текстуры меняется и набор элементов управления в окне Texture Editor. Некоторые из текстур имеют огромное количество параметров, другие - всего несколько, что делает их использование очень простым. Независимо от типа текстуры в нижней части окна отображаются элементы управления параметрами текстур, а также настройки проецирования текстур на поверхности, их размер и положение в мировом или локальном пространстве.
Первый тип текстур, который мы рассмотрим, - это image maps (карты изображений). Он самый простой и используется наиболее часто.
Image maps
Как видно из названия, при применении image map (карта изображения) на поверхность накладывается какая-либо картинка (подробнее о картах изображений читайте в главе 5). Можно использовать любой тип изображения, начиная от снимка, полученного при помощи цифровой камеры, и заканчивая рисунком, сделанным в графическом редакторе. При этом оно обязательно должно быть сохранено в формате, поддерживаемом LightWave. (Полный перечень форматов содержится в справочном руководстве пользователя.) LightWave поддерживает все основные форматы изображений.Если в качестве текстуры на поверхность накладывается изображение, степень проявления того или иного эффекта зависит от параметров пикселей. Поскольку изображение является основной составляющей image map, каждый пиксель становится точечным источником информации. Чем больше яркость пикселя, тем больше значение определяющего его параметра, тем сильнее проявляются эффекты. Значение параметра пикселя 255 будет интерпретироваться как 100%, а 0 -как 0% соответственно.
LightWave требуется только значение яркости пикселя, а не вся информация о его цвете, поэтому черно-белое изображение - все, что действительно необходимо. Если в качестве текстуры используется цветное изображение, то LightWave преобразует его в черно-белое. С цветом позволяет работать атрибут Color (Цвет), причем изображение будет наложено без изменений глубины цвета (рис. 12.33).
Это объясняется тем, что Color задействует все три параметра цвета пикселя.
Давайте рассмотрим, как детализировать поверхность iris создаваемого вами глаза. Вы уже определили цвет данной поверхности, теперь необходимо добавить некоторые элементы, не потеряв исходный цвет. Для этого нужно определить карту изображения для параметра поверхности Diffuse. Следует добиться такого эффекта, чтобы при наложении текстуры некоторые участки поверхности стали темнее остальных.
Определение карты изображения для параметра Diffuse
1. Загрузите файл Eyeball_setup.lws в Layout.
2. Щелкните по кнопке Surface Editor (Редактор поверхностей) на панели инструментов или нажмите клавишу F5. Откроется окно Surface Editor.
3. В списке поверхностей щелкните по строке с именем Iris.
4. Щелкните по кнопке Т, расположенной справа от поля параметра Diffuse (Диффузия), чтобы открыть Texture Editor (Редактор текстур) - рис. 12.34.
5. Из выпадающего меню Image (Изображение) выберите пункт (load image) (загрузить изображение). Откроется диалоговое окно Load Object (Загрузить объект). Выберите любое изображение, находящееся на жестком диске вашего компьютера. В данном примере использовалось изображение, представленное на рис. 12.35.
6. Из выпадающего меню Projection (Проекция) выберите тип проекции. Он определяет, каким образом изображение будет размещено на поверхности. Для данного случая более всего подходит проекция типа Planar (Планарная), установленная по умолчанию (рис. 12.36).
7. Чтобы указать ось, по которой будет направлена текстура, нажмите кнопку Texture Axis (Ось текстуры). Для поверхности Iris можно оставить ось, указанную по умолчанию, то есть ось Z (рис. 12.37).
8. Чтобы LightWave автоматически осуществил масштабирование изображения на поверхность, щелкните по кнопке Automatic Sizing (Автоматическое масштабирование текстуры).
9. Чтобы закрыть окно Texture Editor, щелкните по кнопке Use Texture (Применить текстуру).
10. Обновите изображение, щелкнув по кнопке F9 (рис. 12.38).
11. Из выпадающего меню File (Файл) выберите пункты Save -> Save Object (Coхранить -> Сохранить объект).
Черно-белое изображение, которое используется в качестве текстуры в данном примере, было создано в Adobe Photoshop. Вы можете заменить его любым подобным рисунком.
Как вы видите, примененная текстура затемнила некоторые участки поверхности Iris. Такой метод создания текстур подходит для изменения любого атрибута поверхности, поддерживающего текстуры. Поскольку и для поверхностей, и для текстур в LightWave есть свои элементы управления, существуют различные способы достижения одного и того же эффекта.На самом деле можно создать цветное изображение, имитирующее радужную оболочку, и спроецировать его на поверхность, используя для этого атрибут Color (Цвет) вместо Diffuse (Диффузия). Результат будет таким же. Однако описанный ранее метод более гибок. Изменяя параметр текстуры Layer Opacity (Непрозрачность слоя), можно увеличивать или уменьшать степень проявления эффекта. Если вы создадите изображение для радужной оболочки и спроецируете его на поверхность, вам придется возвращаться к работе с графическим редактором, чтобы подкорректировать степень проявления эффекта. Всегда нужно стремиться к минимуму временных потерь.
Профессиональные 3D-художники могут создавать уникальные текстуры, которые подходят для решения огромного круга задач. Но не все имеют богатый опыт в этой области, и им часто требуется подсказка специалиста. Множество интересных возможностей предоставляют procedural textures (процедурные текстуры).
Проекции
Типом называется определенная форма проекции изображения, накладываемого на поверхность. В Light Wave существует несколько типов проекций. Выбор того или иного типа обычно определяется формой поверхности, на которую накладывается изображение: плоскость, сфера или произвольная поверхность.Ниже перечислены типы проекций:
Planar (Планарный). Это проекция на плоскость. Примером применения такого типа может послужить проецирование изображения на экран в кинотеатре;
Cylindrical (Цилиндрический). При использовании этого типа проекций изображение размещается вокруг объекта, как наклейка на консервной банке;
Spherical (Сферический). При использовании этого типа проекций, как и типа Cylindrical, изображение размещается вокруг объекта, но в данном случае - вокруг сферы. На полюсах текстурное изображение сжимается, подобно карте, нанесенной на глобус;
Cubic (Кубический). В данном случае одна и та же текстура проецируется на объект со всех шести направлений: сзади, спереди, сверху, снизу, справа и слева;
Front (Фронтальный). При создании проекции такого типа в качестве направляющей оси используется оптическая ось камеры. При поворотах и передвижениях камеры текстура всегда проецируется «из» камеры, подобно кадру, который проецируется на экран из кинопроектора. Кроме того, изображение не зафиксировано на объекте, то есть при перемещении камеры или объекта текстура будет «плавать». Этот тип проекций используется для решения узкого круга задач, связанных в основном с компоузингом;
UV. Это наиболее гибкий, но в то же время сложный тип текстур. Для наложения подобной текстуры объект должен иметь точечную UV-карту, созданную в Modeler (подробнее о точечных картах читайте в главе 5).
Процедурные текстуры
На самом деле большинство текстур поддается исчислению при помощи очень сложных математических алгоритмов. Трудно поверить, что реальные объекты можно нарисовать, воспользовавшись калькулятором. Теоретически можно, но в действительности подобный расчет потребовал бы достаточно глубоких знаний в области алгебры, тригонометрии, геометрии, понадобилось бы произвести такую уйму вычислений, которые заняли бы не один год. К счастью, рассмотрение этих алгоритмов не входит в рамки данной книги, поскольку такого же результата, но гораздо быстрее, можно достичь с помощью процедурного типа текстур.Создатели LightWave описали 32 наиболее часто используемых алгоритма, назвав их процедурными текстурами (рис. 12.39).
Далеко не все текстуры можно описать исключительно при помощи математических формул (хотя некоторые математики с этим и не согласны), однако те, которые допускают подобный расчет, превращаются в сложные, многослойные текстуры, например, облака, волны, различные породы дерева и камня. При этом от художника требуется только определить ряд параметров текстур, а компьютер сделает все остальное.
Чтобы разобраться в том, что все-таки представляют собой процедурные текстуры, нужно освоить элементы управления ими. При изменении параметров, расположенных в окне управления процедурными текстурами, вы изменяете переменные в уравнениях, описывающих текстуры. В качестве примера рассмотрим текстуру Brick (Кирпич). Вы определяете такие параметры, как цвет, расстояние между соседними кирпичами и площадь, которую необходимо ими заполнить. LightWave просчитывает все остальное. Он старательно вырисовывает стройные ряды кирпичей согласно заданным вами параметрам (рис. 12.40).
Главное преимущество процедурных текстур заключается в том, что при каждом формировании кадра они рассчитываются заново, поэтому можно сказать, что их разрешение бесконечно. При приближении камеры к объекту сохраняются все детали наложенной на него процедурной текстуры (рис. 12.41), а текстура, созданная при помощи карты изображений, вблизи выглядит неестественно (рис. 12.42). Нежелательный эффект можно сгладить, воспользовавшись функцией Antialiasing, но различия все равно весьма существенны.
В природе нет ни одной поверхности, имеющей сплошной цвет. Например, поверхность глазного яблока не белая. Чтобы сделать создаваемый глаз более реалистичным, добавим на его поверхность процедурную текстуру.
Добавление процедурной текстуры
1. Загрузите объект Eyeball_setup.lws в Layout.
2. Щелкните по кнопке Surface Editor (Редактор поверхностей) на панели инструментов или нажмите клавишу F5. Откроется окно Surface Editor.
3. В списке поверхностей выберите пункт Eyeball.
4. Щелкните по кнопке Т, расположенной справа от поля Diffuse (Диффузия).
5. В окне Texture Editor (Редактор текстур) из выпадающего меню Layer Type (Тип слоя) выберите пункт Procedural Texture (Процедурная текстура) - рис. 12.43.
6. Из выпадающего меню Procedural Type (Тип процедурной текстуры) выберите пункт Crumple (рис. 12.44).
7. В поле Texture Value (Значение текстуры) введите значение 200, в поле Frequencies (Частоты) - 4, а в поле Small Power - 0.75 (рис. 12.45).
8. Щелкните по кнопке Automatic Sizing (Автоматическое изменение размеров), чтобы автоматически рассчитывались масштабные коэффициенты наложения текстуры. В окне предварительного просмотра вы увидите, как внесенные изменения отразились на внешнем виде поверхности (рис. 12.46).
9. В поле Layer Opacity (Непрозрачность слоя) введите значение 50. Щелкните по кнопке Use Texture (Применить текстуру), чтобы закрыть окно Texture Editor. Заметьте, что степень проявления созданного эффекта уменьшилась (рис. 12.47).
10. Из выпадающего меню File (Файл) выберите пункты Save -> Save Current Object (Сохранить -> Сохранить текущий объект), чтобы сохранить изменения атрибутов объекта.
11. Обновите изображение, нажав клавишу F9.
Многие процедурные текстуры являются либо хорошей основой, либо дополнением уже существующих. Профессиональный художник
вряд ли будет использовать процедурные текстуры отдельно от других.
Изменяя те или иные параметры процедурных текстур, в окне предварительного просмотра вы можете увидеть результат и оценить, как
будет выглядеть поверхность. На экране отобразится двумерное изображение, рассчитанное по текстурному алгоритму. Вы, наверное, заметили,
что при определении процедурной текстуры не указывается ось, вдоль которой осуществляется проецирование. Дело в том, что этот тип текстур
рассчитывается в трехмерной области пространства, а не двумерной.
Градиенты
Обычно под названием градиент подразумевается плавный переход от одного цвета к другому (рис. 12.48). Однако в LightWave могут быть созданы градиенты с использованием нескольких цветов (рис. 12.49). Градиенты можно задавать при определении любых атрибутов, поддерживающих текстуры.Создание градиента
1. Выполните шаги 1-3 процедуры «Добавление процедурной текстуры».
2. Щелкните по кнопке Т, расположенной справа от поля атрибута Color (Цвет).
3. Откроется окно Texture Editor (Редактор текстур). Из выпадающего меню Layer Type (Тип слоя) выберите пункт Gradient (Градиент) - рис. 12.50. Предварительный просмотр градиента отображается в виде широкой вертикальной полосы. В горизонтальном окне вы увидите уже определенные значения (или цвета). Для формирования градиента необходимо указать как минимум два цвета.
4. Чтобы создать новый цвет, щелкните в любом месте окна предварительного просмотра градиента (рис. 12.51).
5. Переместите вниз маркер, расположенный в окне предварительного просмотра (рис. 12.52). Или Введите в поле Parameter (Параметр) значение, соответствующее нижней части градиента,- 1.0 (рис. 12.53).
6. Чтобы определить второй цвет, используйте соответствующее числовое поле или каталог цветов. Окно предварительного просмотра обновится, как только вы укажете второй цвет градиента (рис. 12.54).
7. Из выпадающего меню Input Parameter (Входной параметр) выберите пункт Slope (Наклон), чтобы в зависимости от наклона геометрии использовались различные цвета (рис. 12.55). Этот шаг определяет, как градиент будет применяться к поверхности.
8. Обновите изображение, нажав клавишу F9 (рис. 12.56). Нет необходимости сохранять объект, поскольку эти изменения нам больше не пригодятся.
Слои текстур
Чаще всего градиенты используются в сочетании с другими текстурами, например, процедурными. При помощи слоев можно накладывать друг на друга несколько текстур и получать таким образом новые, более сложные текстуры. Слой текстуры, располагающийся поверх остальных, имеет преимущество перед теми, что лежат ниже. Поэтому при создании сложных текстур порядок их наложения играет, значительную роль.В следующем примере описывается один из способов получения новой, более сложной текстуры путем сочетания градиента и процедурной текстуры.
Сочетание градиента и процедурной текстуры
1. Выполните шаги 1-3 раздела «Добавление процедурной текстуры».
2. Щелкните по кнопке Т, расположенной справа от поля атрибута Color (Цвет).
3. Откроется окно Texture Editor (Редактор текстур), в котором будет выделен первый (и пока единственный) слой. Извыпадающего меню Layer Type (Тип слоя) выберите пункт Procedural Texture (Процедурная текстура).
4. Из выпадающего меню Procedural (Процедурная текстура) выберите пункт Marble (Мрамор).
5. В полях параметров процедурной текстуры Marble введите следующие значения (рис. 12.57):- Frequencies (Частоты): 5;6. Перейдите на вкладку Scale (Масштаб) и измените значения в полях X, Y и Z на 150 mm (рис. 12.58). Такие настройки позволяют получить лучший эффект.
- Turbulence (Хаотичность): 1.25;
- Vein Spacing (Расстояние между прожилками): 0.75;
- Vein Sharpness (Острота прожилок): 4.0.
7. Из выпадающего меню Add Layer (Добавить слой) выберите пункт Gradient (Градиент) - рис. 12.59. Это создаст дополнительный слой текстуры, который будет помещен непосредственно над слоем с текстурой Marble.
8. Выполните шаги 3-6 процедуры «Создание градиента», чтобы создать переход от белого цвета к красному.
9. Из выпадающего меню Input Parameter (Входной параметр) выберите пункт Previous Layer (Предыдущий слой), чтобы использовать диапазон цветов, определяемый процедурной текстурой Marble.
10. Чтобы добавить третий цвет к градиенту, щелкните в центре полосы предварительного просмотра. Появится новый цвет.
11. При помощи каталога цветов выберите белый цвет для этого маркера (рис. 12.60).
12.В поле Parameter (Параметр) введите значение 0.5, чтобы поместить добавленный цвет в середине полосы градиента (рис. 12.61).
13.В поле параметра Layer Opacity (Непрозрачность слоя) введите значение 80%, чтобы снизить влияние градиента (рис. 12.62).
14. Перейдите на вкладку Falloff (Затухание), чтобы получить доступ к новым настройкам (рис. 12.63).
15. В поле Z введите 100. Таким образом вы активируете эффект Texture Falloff (Затухание текстуры), и текстура на лицевой стороне объекта будет менее заметна, чем на задней.
16. Закройте редактор, щелкнув по кнопке Use Texture (Применить текстуру).
17. Чтобы сохранить новые настройки атрибутов поверхности, из выпадающего меню File (Файл) выберите пункты Save ->Save Current Object (Сохранить -> Сохранить текущий объект).
18. Обновите изображение, нажав клавишу F9 (рис. 12.64).
Наиболее важным параметром, указанным вами при создании сложной текстуры, является
Input Parameter (Входной параметр). Так как в предыдущем слое содержалась текстура Marble, цвет градиента соответствовал именно ее цветам.
При этом получился очень красивый эффект перехода от более темных к более светлым тонам.-
Если вы работаете со сложной текстурой, имеющей несколько слоев, то для каждого слоя необходимо определить либо параметр
Layer Opacity (Непрозрачность слоя), либо применить более сложные методы на - стройки, например, использовать альфа-каналы, режимы смешивания и градиенты
Чтобы изменить порядок слоев в текстуре, в списке слоев щелкните по интересующему вас слою и перетащите в нужное место.
Копирование текстуры
1. Выполните шаги 1-3 раздела «Добавление процедурной текстуры».
2. Щелкните по кнопке Т, расположенной справа от поля атрибута Color (Цвет).
3. Откроется окно Texture Editor. В списке щелкните по имени текстуры Marble.
4. Из выпадающего меню Сору (Копировать) выберите пункт Current Layer (Текущий слой) - рис. 12.65.
5. Чтобы закрыть окно Texture Editor, нажмите кнопку Use Texture (Применить текстуру).
6. Щелкните по кнопке Т, расположенной справа от поля атрибута Bump. Откроется окно Texture Editor. Из выпадающего меню Paste (Вставить) выберите пункт Replace Current Layer (Заменить текущий слой) - рис. 12.66.
8. В поле Texture Value (Значение текстуры) введите 500 (рис. 12.67) и щелкните по кнопке Use Texture (Применить текстуру), чтобы закрыть окно Texture Editor.
9. Сохраните объект и нажмите клавишу F9, чтобы обновить изображение (рис. 12.68).
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий