Creating a Material/ru

From Valve Developer Community
Jump to: navigation, search

Этот урок является пошаговым руководством по созданию совершенно нового материала, включая материал текстур.

Создание текстур

Для создания текстуры подойдёт любое изображение, если его размеры (высота и ширина) кратны двум, например: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, и т.д. Прежде, чем создавать новую текстуру, изучите существующие, выполняющие ту же роль. Текстуры с высоким разрешением тормозят производительность, но при этом дают большую резкость при просмотре вблизи.

Различные классы объектов имеют разные стандартные разрешения (например, модели персонажей более детализированы). Если запутаетесь, вам в помощь source materials.gcf вместе с GCFScape.

Note.pngПримечание:Исходные файлы текстур должны сохраняться в формате с меньшими потерями качества - TGA.

Преобразование текстур

Перед тем, как использовать в Source, текстуры необходимо преобразовать в Valve Texture Format. Для этого Valve предоставляет инструмент VTEX. С этим инструментом можно работать через командную строку, или с помощью сторонних программ, таких как VTFEdit. VTFEdit предпочтительней, поскольку имеет удобный графический интерфейс, позволяет редактировать текстуры без перекомпиляции, поддерживает множество форматов, и не требует отдельных скриптов для создания каждой текстуры.

(Существуют VTF-плагины которые позволяют сохранять текстуры в формат прямо из Photoshop, GIMP и Paint.NET.)

Чтобы импортировать текстуру в VTFEdit, используйте File > Import или нажмите Ctrl+I. Выберите изображение и откроется окно импортирования:

Экран импортирования VTFEdit

Основные параметры

Следующие параметры наиболее важны. Их три:

Формат нормалей
Формат цвета/сжатия, который используется для прозрачной текстуры.
Формат Альфа
Формат цвета/сжатия, который используется для текстуры с альфа-каналом.
Тип текстуры
Если вы импортировали больше, чем одно изображение, тут задаётся тип их использования (кадры анимации/кубмапы/глубина срезов).

Если вы создаёте простую текстуру, то вам не понадобится ничего из перечисленного выше. Если вы создаёте текстуру с детально проработанными градиентами, вам придётся выбрать режим сжатия без потерь.

Настройки мип-карт

Мип-карты - это версии текстуры, имеющие низкое разрешение, сменяющие друг друга по мере удаления камеры от неё. Они существенно сокращают требуемый объём текстуры, повышая производительность и качество изображения.

Tip.pngСовет:Текстуры, которые будут отображаться в 3D-мире, должны иметь мип-карты. Для экономии памяти, текстуры используют интерфейс 2D.

Следующие изображения демонстрируют различные мипмап-фильтры, доступные в VTFEdit:

Настройки карты нормалей

Эти (неправильно названные) настройки позволяют автоматически генерировать карту рельефа из вашего изображения.

Конфигурирование и сохранение

Когда вы нажимаете OK, входящий файл конвертируется (порою долго, если изображение большое), и на выходе появляется в формате VTF. Теперь всё, что осталось - это сконфигурировать настройки текстуры с помощью ряда флажков на левой стороне экрана. Описание каждого из них см. флаги изображений.

Теперь, сохраните файл в каталоге своей игры или мода в папке \materials.

Создание материала

Source обращается к текстурам не напрямую. Он это делает через материалы.

Материалы - это файлы скриптов, которые создаются с помощью любого текстового редактора, но лучше всего использовать Notepad++ с подсветкой синтаксиса. Чтобы ваш материал был обнаружен, вы должны сохранить его в папке игры или мода \materials с расширением .vmt.

Note.pngПримечание:Если вы создаёте материалы и текстуры специально для вашего мода, рассмотрите возможность использования BSPZIP\Packbsp\Pakrat, чтобы вшивать их прямо в карту. Это позволит избежать их утери в будущем.

Синтаксис

Файл материала выглядит так:

<shader>
{
	<parameter> <value>
	...
}
LightmappedGeneric
{
	$basetexture coast\shingle_01
	$surfaceprop gravel
}

Существует много разных шейдеров, но большинство материалов используют LightmappedGeneric (браши) или VertexLitGeneric (модели). Третьим наиболее распространённым шейдером является UnlitGeneric, который используется для материалов UI, и изредка для служебных текстур.

Параметры

Список всех задокументированных параметров шейдеров см. Список параметров шейдеров.

Параметры в шейдере также называются командами. Существуют сотни параметров, которые можно вложить в материал, мы же рассмотрим основные, которые используются чаще всего. Вот они:

Tip.pngСовет:Если в значении параметра потребуется использовать пробел или символ табуляции, вам нужно всё значение поставить в "кавычки". Вы увидите, что они экономят время печати.

См. также