Создание материала
Этот урок является пошаговым руководством по созданию совершенно нового материала , включая материал текстур .
Создание текстур
Для создания текстуры подойдёт любое изображение, если его размеры (высота и ширина) кратны двум, например: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, и т.д. Прежде, чем создавать новую текстуру, изучите существующие, выполняющие ту же роль. Текстуры с высоким разрешением тормозят производительность, но при этом дают большую резкость при просмотре вблизи.
Различные классы объектов имеют разные стандартные разрешения (например, модели персонажей более детализированы). Если запутаетесь, вам в помощь source materials.gcf
вместе с GCFScape .
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
Преобразование текстур
Перед тем, как использовать в Source, текстуры необходимо преобразовать в Valve Texture Format . Для этого Valve предоставляет инструмент VTEX . С этим инструментом можно работать через командную строку , или с помощью сторонних программ, таких как VTFEdit . VTFEdit предпочтительней, поскольку имеет удобный графический интерфейс, позволяет редактировать текстуры без перекомпиляции, поддерживает множество форматов, и не требует отдельных скриптов для создания каждой текстуры.
(Существуют VTF-плагины которые позволяют сохранять текстуры в формат прямо из Photoshop, GIMP и Paint.NET.)
Чтобы импортировать текстуру в VTFEdit, используйте File > Import
или нажмите Ctrl+I. Выберите изображение и откроется окно импортирования:
Основные параметры
Следующие параметры наиболее важны. Их три:
- Формат нормалей
- Формат цвета/сжатия, который используется для прозрачной текстуры.
- Формат Альфа
- Формат цвета/сжатия, который используется для текстуры с альфа-каналом.
- Тип текстуры
- Если вы импортировали больше, чем одно изображение, тут задаётся тип их использования (кадры анимации/кубмапы/глубина срезов).
Если вы создаёте простую текстуру, то вам не понадобится ничего из перечисленного выше. Если вы создаёте текстуру с детально проработанными градиентами, вам придётся выбрать режим сжатия без потерь .
Настройки мип-карт
Мип-карты - это версии текстуры, имеющие низкое разрешение, сменяющие друг друга по мере удаления камеры от неё. Они существенно сокращают требуемый объём текстуры, повышая производительность и качество изображения.
![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)
Следующие изображения демонстрируют различные мипмап-фильтры, доступные в VTFEdit:
Настройки карты нормалей
Эти (неправильно названные) настройки позволяют автоматически генерировать карту рельефа из вашего изображения.
Конфигурирование и сохранение
Когда вы нажимаете OK, входящий файл конвертируется (порою долго, если изображение большое), и на выходе появляется в формате VTF. Теперь всё, что осталось - это сконфигурировать настройки текстуры с помощью ряда флажков на левой стороне экрана. Описание каждого из них см. флаги изображений .
Теперь, сохраните файл в каталоге своей игры или мода в папке \materials
.
Создание материала
Source обращается к текстурам не напрямую. Он это делает через материалы .
Материалы - это файлы скриптов, которые создаются с помощью любого текстового редактора, но лучше всего использовать Notepad++ с подсветкой синтаксиса . Чтобы ваш материал был обнаружен, вы должны сохранить его в папке игры или мода \materials
с расширением .vmt
.
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
Синтаксис
Файл материала выглядит так:
<shader > { <parameter> <value> ... }
LightmappedGeneric { $basetexture coast\shingle_01 $surfaceprop gravel }
Существует много разных шейдеров , но большинство материалов используют LightmappedGeneric
(браши ) или VertexLitGeneric
(модели ). Третьим наиболее распространённым шейдером является UnlitGeneric
, который используется для материалов UI , и изредка для служебных текстур .
Параметры
- Список всех задокументированных параметров шейдеров см. Список параметров шейдеров .
Параметры в шейдере также называются командами. Существуют сотни параметров, которые можно вложить в материал, мы же рассмотрим основные, которые используются чаще всего. Вот они:
![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)