"LightmappedGeneric"Первая строка в .VMT файле это имя шейдера который будет использован. Переменные шейдера для этого материала определены внутри секции заключенной в фигурные скобки. Обратите внимание, что не нужно использовать символ '=' между переменной материала и ее значением.
{
// Строковые значения заключаются в кавычки
"$basetexture" "shadertest/LightmappedTexture"
"$envmap" "shadertest/LightmappedTexture_envmap"
// Векторные занчения заключаются в кавычки
"$color" "[1 0 0]"
// Вещественный и целые значения *не* заключаются в кавычки
"$alpha" 0.5
"$nocull" 1
}
"LightmappedGeneric"Еще одна вещь которую вы могли заметить в .VMT файлах - это специальные переменные начинающиеся символом '%'.
{
"$basetexture" "shadertest/LightmappedTexture"
"$envmap" "shadertest/LightmappedTexture_envmap"
// Если версия шейдера снижается до "LightmappedGeneric_DX7",
// то environment map определенный в данной секции будет использоваться вместо
// определенного выше. Поскольку переменная $basetexture не определена в этой секции,
// будет задействована та которая определена в главной секции.
"LightmappedGeneric_DX7"
{
"$envmap" "shadertest/OverrideEnvMap"
}
// Если версия шейдера снижается до "LightmappedGeneric_DX6",
// то переменная $basetexture определенная в данной секции будет задейстована вместо
// определенной выше. Поскольку переменная $envmap не определена в этой секции,
// будет задействована та которая определена в главной секции.
"LightmappedGeneric_DX6"
{
"$basetexture" "shadertest/OverrideTexture"
}
}
"UnlitGeneric"Попросту говоря - такие переменные используются только утилитами и не используются движком в самой игре. Из переменных которые начинаются символом '%' скорее всего вам понадобятся только '%tooltexture", "%keywords", "%detailtype" и все которые начинаются словом "compile", например "%compileWater" или "%compileHint".
{
"$envmap" "shadertest/shadertest_envmap"
"%tooltexture" "shadertest/shadertest_envmap"
}
set BIN_PATH=C:\Progra~1\valve\steam\SteamApps\username\sourcesdk\bin\С помощью bat файлов можно создавать пакетную обработку сразу для нескольких текстур.
set TGA_PATH=C:\Progra~1\valve\steam\SteamApps\ИМЯ_ПОЛЬЗОВАТЕЛЯ\sourcesdk\sdkcontent\materialsrc\
%BIN_PATH%vtex.exe %TGA_PATH%console\background01
$nolod | Не использовать версии низкого качества этой текстуры в ранних версиях Direct X |
$nomip | Не генерировать МИП-уровни(mip-levels) для данной текстуры |
$clamps $clampt | Запретить повторение текстуры соответственно в S или T координатном пространстве (S - горизонталь, T - вертикаль). Чаще всего используется для спрайтов, которые не тайлятся. |
$skybox | Используется для компиляции скайбоксов (неба). Гарантирует согласование углов между кажой гранью. |
$startframe (число) $endframe (число) | Используется для анимированных текстур. Тексутры должны называться texture000, texture001, texture002, и т.д. Параметр $startframe определяет индекс первого кадра а $endframe - последнего. |
$nocompress | Запретить компрессию для данной текстуры. Важно для текстур с плавной градацией цветовой палитры (подобные радйжным сияниям) |
$nonice | Запретить NICE фильтрацию данной тексутры в низких МИП-уровнях |
$dxt5 | Использовать DXT5 компрессию вместо обычной полной |
"LightmappedGeneric"Это приведет к рендерингу "test/MyTexture" .VTX файла непрозрачным с применением lightmap (карта освещения). Наиболее часто используется для тексутр применяемых на брашевых поверхностях (например стены). С созданием .VTX и .VMT файла, мы можем использовать эту тексутру на поверхностях при создании карт в Hammer.
{ "$basetexture "test/MyTexture" }