Текстура — это рисунок, которым покрываются стороны объектов. Благодаря текстурам, мы отличаем траву от асфальта, деревянный забор от кирпичной кладки, металлическую балку от куска скалы и т.п. Ясно, что перекрашивание браша, к примеру, в текстуру машины, не заставит его ездить — для этого необходимо сделать браш энтити-объектом и выставить свойства.
Также текстуры, как это ни парадоксально, оказывают влияние на пробиваемость объектов пулями. В директории «Cstrikesound» есть эдакий файл 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
chateau.wad
Часть 1 Урок 2 LH LL HH HL Практика
Это тоже стандартные текстурные библиотеки (раз уж они поставляются вместе с 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 пикселей. Это как бы указывает на размеры стандартных ящиков в и юнитов. Естественно, можно использовать и другие размеры, просто очень маленькие или очень большие объекты могут выглядеть нереалистично. А то получится, как в уровне 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» — лампочки или фонари
Кроме данных слов есть эдакие префиксы (приставки из 2-3 символов), которые идут прямо перед именем текстуры. Данные префиксы определяют принадлежность текстуры к определённому типу. К примеру, префикс в виде восклицательного знака !, означает, что это текстура жидкости; если в начале названия стоит фигурная скобка , то это текстура с маской, то есть частично прозрачная текстура, которая применяется для создания прозрачных заборов, деревьев и т.д.
Подробнее о типах текстур в Half-Life и CS мы рассказываем в следующем материале данной главы.
2. Декали
Декали — это спец текстуры, которые можно наносить поверх обыкновенных текстур. Примерами декалей являются дырки от пуль, следы от взрывов гранат, кровь — короче говоря, это всякого рода следы. Все декали находятся в файле decals.wad в папке Valve.
Источник: www.akksimo.net