netlib.narod.ru< Назад | Оглавление | Далее >

Наложение текстур

Наложению текстур стали уделять большое внимание после выхода программы DOOM, выпущенной ID Software. Конечно, DOOM не первая программа, в которой применялось наложение текстур, но эта программа стала наиболее популярной.

Наложение текстур (texture mapping) определяет способ, которым при получении изображения текстура соединяется с гранью или набором граней. Наложение зависит от положения объекта в пространстве. Мы не можем просто налепить текстуру на поверхность, не учитывая расстояние до объекта и его ориентацию относительно зрителя. Такая сцена будет плохо выглядеть. Дальше в этой главе мы поговорим подробнее о текстурах и перспективе. А пока запомните, что способ наложения текстур на удаленные объекты, должен отличаться от способа наложения текстур на объекты, расположенные ближе к зрителю.

Природа текстуры

Текстура представляет собой двухмерное цветное изображение. Часто текстуры хранятся в файлах типа BMP, PCX или GIF. Практически любое двухмерное изображение можно использовать как текстуру. Пример текстуры вы можете увидеть на рис. 2.17.


Рис. 2.17. Пример текстуры

Рис. 2.17. Пример текстуры


Прежде чем вы начнете использовать различные изображения в качестве текстур, обратите внимание на одну особенность — не все изображения будут хорошими текстурами. Хорошие текстуры обычно не предназначены для отдельного просмотра, но они придают реализм объектам. Изображения, на которых представлены законченные сцены, обычно не годятся для использования в качестве текстур, поскольку вы не ожидаете увидеть законченную сцену, глядя на единственную грань объекта. Такие трехмерные объекты, как зеркала и картины, являются исключением из этого правила.

Масштабирование текстуры

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


Рис. 2.18. Пример масштабирования текстуры

Рис. 2.18. Пример масштабирования текстуры


Способы наложения текстуры

Способ наложения текстуры (texture wrapping) определяет, каким образом текстура будет соединяться с объектом. Простейший способ наложения предполагает, что текстура попадает на объект как выстреленная из пушки. В этом случае цвета текстуры проходят объект насквозь и появляются с другой его стороны. Такой метод обычно называется плоским наложением (небольшой парадокс, поскольку вы не можете обернуть объект, чем-то, что действительно является плоским). Рис. 2.19 показывает результат плоского наложения текстуры, изображенной на рис. 2.18 на куб.


Рис. 2.19. Плоское наложение текстуры

Рис. 2.19. Плоское наложение текстуры


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

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


Рис. 2.20. Цилиндрическое наложение текстуры

Рис. 2.20. Цилиндрическое наложение текстуры


Важно помнить, что способ наложения текстуры и форма покрываемого текстурой объекта совершенно не зависят друг от друга. Вы можете применять плоское наложение текстуры к сфере или сферическое наложение к кубу. Direct3D поддерживает плоский, сферический и цилиндрический методы наложения текстуры.

Более детальное обсуждение методов наложения текстур содержится в главе 5.

Анимация текстуры

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

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


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz