В данном материале мы поведаем вам о том, что такое текстуры и декали,
какие есть стандартные текстурные библиотеки, а также вы узнаете,
какого размера и масштаба лучше использовать текстуры.
1. Текстуры1.1 Что такое текстура?
Текстура — это рисунок, которым покрываются стороны объектов.
Благодаря текстурам, мы отличаем траву от асфальта, деревянный забор от
кирпичной кладки, металлическую балку от куска скалы и т.п. Ясно, что
перекрашивание браша, к примеру, в текстуру машины, не заставит его
ездить — для этого необходимо сделать браш энтити-объектом и выставить
свойства.
Также текстуры, как это ни парадоксально, оказывают влияние на пробиваемость объектов пулями. В директории «Cstrike\sound» есть эдакий файл materials.txt,
в котором указаны имена некоторых стандартных текстур и соответствующий
им тип материала (грязь или скала, дерево или металл и др.).
Практически было доказано, что объекты, затекстурированные, к примеру,
текстурой металла пробиваются хуже, чем объекты с текстурой дерева. Но,
помните, если имя текстуры не указано в файле materials.txt, то
простреливаемость всех объектов в уровне будет одинаковой, и не будет
зависить от наложенной текстуры.
1.2 Где хранятся текстуры?
Текстурные библиотеки для HL хранятся в папке Valve. Уровни для Counter-Strike используют текстуры из каталогов Valve и Cstrike.
Текстуры в HL содержатся в файлах с расширением *.WAD. В одном
WAD-файле может быть любое число текстур: от одной до нескольких тысяч.
1.3 Чем можно просматривать текстуры?
Для просмотра мы советуем использовать программу Wally (в ней
же можно создавать и свои текстурные файлы, то есть *.WAD файлы). Также
текстурные библиотеки можно просматривать в редакторе Хаммер, во
внутренном текстурном браузере.
1.4 Как называются стандартные текстурные файлы?
Стандартными мы называем те текстуры, находящиеся в директории HL и CS
после установки данных игр. Те текстуры, которые берутся создателями
карт «со стороны», стандартными не являются.
Так, уж, повелось, что текстуры из директории Valve не меняются
и переходят от версии к версии. А вот текстурные библиотеки для
Counter-Strike уровней, которые находятся в директории Cstrike,
могут быть удалены или заменены разработчиками. В принципе всё верно —
если какой-то из официальных CS уровней удалили из списка, то не за чем
держать его текстуры. А теперь представьте, что вы на вашем уровне
использовали текстуры из данного удаленного *.WAD файла...
После исключения *.WAD файла из стандартной поставки игры, ваш уровень
станет не работоспособен. Если игра не найдёт используемый в уровне
*.WAD файл, то она вылетит с ошибкой. А если в каком-то *.WAD файле
просто не достаёт требуемых текстур, то уровень запустится, но вместо
нехватающих текстур будут выведены чёрно-фиолетовые квадраты. Выход из
данной ситуации один — включать (вшивать) текстуры непосредственно в
уровень (в *.BSP файл). Но это уже тема для отдельной публикации.
Далее мы приводим список текстурных библиотек, которые вряд ли
когда-либо будут исключены из Half-Life, а поэтому можно смело их
использовать. Вы можете использовать текстуры из данных WAD-файлов и не
вшивать их в BSP-уровень.
- halflife.wad — главный *.WAD файл игры HL с большим числом текстур (более 40 Мб)
- liquids.wad — текстуры жидкостей
- decals.wad — декали (читайте ниже)
- cstrike.wad — стандартный WAD-файл для Counter-Strike
Также немалое число текстур находится в папке Cstrike — это текстуры официальных Counter-Strike карт. К примеру, очень красивые текстуры можно найти в следующих *.WAD файлах:
cs_bdog.wad de_piranesi.wad de_vegas.wad cs_havana.wad itsitaly.wad
chateau.wad Это тоже стандартные текстурные библиотеки (раз уж они поставляются
вместе с HL), однако нет никакой гарантии, что в один прекрасный день
уровни, а вместе с ними и текстуры не будут удалены из дистрибутива
Counter-Srike. В связи с этим, мы советуем вшивать текстуры из подобных
*.WAD файлов в итоговый BSP-файла уровня.
Важно! Если вы используете на своём уровне текстуры из нестандартных
библиотек, то непременно распространяйте их вместе со своим урвонем, в
одном архиве. Лучше всего, конечно, вшить данные текстуры в BSP-уровень,
но можно создать и отдельный *.WAD файл.
Предположим, вы создаете уровень и используете текстуры из 5
нестандартных текстурных библиотек: 3 текстуры из 1-ого, 1 текстуру из
2-ого, 4 текстуры из 3-его и т.п. Так вот, чтобы уровень загрузился
нужны будут все задействованные при создании уровня текстурные
библиотеки. Смысла распространять эти 5 нестандартных WAD-файлов все
вместе с уровнем нет. Мы же используем по 1-4 текстуры из данных
библиотек. Так зачем увеличивать размер архива? Именно в связи с этим
нужно составить один *.WAD файл и записать в него используемые текстуры.
А еще проще и быстрее, повторимся, лучше вшить текстуры в *.BSP файл
уровня.
1.5 Включение текстур в BSP-файл карты
Вшить текстуры в BSP-файл уровня — означает записать их прямо в сам
уровень (без отдельных файлов). При этом отпадает надобность
распространять вместе с уровнем отдельные *.WAD файлы. О том, как вшить
текстуры в BSP-карту, мы рассказываем в других статьях данной главы
Учебника.
1.6 Размеры текстур
Минимальный размер текстуры в HL равен 16 х 16 пикселей. Меньше — никак, больше — возможно. Максимальный размер текстур, по обыкновению, используемый создателями карт — 512 х 512 пикселей. Стоит также заметить, что длина и ширина текстуры обязательно должна быть кратна 16, например: 128 х 96, 256 х 128, 48 х 64 и т.п.
По обыкновению, при нанесении текстуры, один текстурный пиксель приравнивают к одному юниту длины браша или брашевой энтити.
Это считается нормальным масштабом, то есть 1 к 1. К примеру, текстуру с
размерами 128 х 128 пикселей необходимо наносить на сторону объекта с
размерами 128 х 128 юнитов или меньшими (в данном случае, текстура
«подгоняется» под размер объекта кнопкой Fit).
Текстуры хорошо смотрятся в игре при масшатбе нанесения 1:1. А если же
текстура меньше размеров браша, то в игре будет некая размытость,
зависящая от величины масштаба. Однако, с целью экономии полигонов,
бывает, текстуры специально наносят с увеличенным масштабом 2:1, 4:1 и
др. Подробно о данной технике сбережения полигонов мы рассказываем в 6-й
главе Учебника, в материале об R_Speeds.
Обратив внимание на размеры текстур в стандартных *.WAD файлах, можно
сделать вывод, какого размера бывают стандартные объекты: окна, ворота,
стены. К примеру, довольно часто встречаются текстуры ящиков с размером
64 x 64 или 128 х 128 пикселей. Это как бы указывает на размеры
стандартных ящиков в 64 х 64 х 64 и 128 х 128 х 128
юнитов. Естественно, можно использовать и другие размеры, просто очень
маленькие или очень большие объекты могут выглядеть нереалистично. А то
получится, как в уровне de_rats, хотя идея забавная :-)
1.7 Масштаб текстур
Как мы уже говорили выше, один текстурный пиксель приравнивается к
одному юниту длины браша. Это масштаб — 1 к 1. Если наложить текстуру
256 х 256 пикселей на ящик 128 х 128 юнита, то масштаб составит 1:2 (или
0,5). Если же натянуть маленькую текстуру 16 х 16 пикселей на ящик 64 х
64 юнита, то масштаб составит 2:1.
Масштаб текстур тесно связан с числом, видимых игроком полигонов.
Больше маштаб текстуры, то есть чем больше они растянуты, тем меньше
полигонов отрисовывает движок Half-Life, и тем выше FPS и тем меньше
тормозит уровень. Поэтому мы советуем на неважных местах (скалы, земля и
пр.) увеличивать масштаб текстур.
1.8 Названия текстур
Текстуры в HL, а точнее в главной текстурной библиотеке halflife.wad
названы не просто так. К примеру, слово «crate» или «crt» в названии
текстуры означает, что это текстура ящика («crate» по-английски — ящик).
«ground» или «grnd» — земля «water» или «wtr» — вода «fence» и «grate» — заборы и решетки «crate» или «crt» — ящики «wall» — стены «light» или «lgt» — лампочки или фонари
Мы советуем называть свои текстуры таким же макаром. Это позволяет
значительно быстрее находить требуемый тип текстуры в больших *.WAD
файлах. Кстати, наши создатели карт довольно часто называют текстуры, к
примеру: Zabor, Voda, Doska, Doroga — так, по названию текстур, можно
точно определить страну, родом из которой данный уровень :-)
Кроме данных слов есть эдакие префиксы (приставки из 2-3 символов),
которые идут прямо перед именем текстуры. Данные префиксы определяют
принадлежность текстуры к определённому типу. К примеру, префикс в виде
восклицательного знака !, означает, что это текстура жидкости; если в начале названия стоит фигурная скобка {,
то это текстура с маской, то есть частично прозрачная текстура, которая
применяется для создания прозрачных заборов, деревьев и т.д.
Подробнее о типах текстур в Half-Life и CS мы рассказываем в следующем материале данной главы.
2. Декали
Декали — это спец текстуры, которые можно наносить поверх обыкновенных
текстур. Примерами декалей являются дырки от пуль, следы от взрывов
гранат, кровь — короче говоря, это всякого рода следы. Все декали
находятся в файле decals.wad в папке Valve.
К сожалению, на своих уровнях нельзя использовать свои декали, а посему остается довольствоваться стандартными из файла decals.wad, хотя они не так уж плохи :-)
|