Например:
«LightmappedGeneric»Скрипт в VMT cодержит секции заключенные в фигурные скобки { } с указанием перед ними имени в кавычках ««:
{
«$basetexture» «shadertest/LightmappedTexture»
«$envmap» «shadertest/LightmappedTexture_envmap»
«$color» «[1 0 0]»
«$alpha» 0.5
«$nocull» 1
}
«Имя_секции» {Внутри секции могут содержаться параметры в отдельных строках или другие вложенные секции.
… содержимое
}
Каждый параметр имеет имя начинающееся с символа доллара $ и заключенное в кавычки и значение, разделенные пробелом
«$Имя_параметра» значение
значение может быть разных типов:
строка — записывается в кавычках — «строка»
целое число — записывается без кавычек — 1
вещественное число — записывается без кавычек — 0.3 или .3
массив — записывается в квадратных скобках в кавычках, обычно состоит из 3 чисел —«[1 0.5 0]»
Также существуют параметры с именами начинающеся символом процета % - такие параметры являются служебными — для использования в утилитах SDK.
Самая главная секция в VMT описывает тип шейдера применяемый для рендеринга материала. Выбирается из списка доступных шейдеров.
Внутри секции шейдера размещаются различные параметры которые описывают свойства материала — имена файлов текстурных карт, цвет, прозрачность, блеск, отражение
В вложенных секциях описывают прокси материала — позволяющие динамически изменять свойства материала (цвет, прозрачность,
Шейдеры использующиеся в VMT
Тип шейдера | Описание | Параметры |
alienscale | ||
basetimeslightmaptimesdetail | ||
basetimeslightmapwet | ||
basetimesmod2xenvmap | ||
bloom | ||
blurfilterx | ||
blurfiltery | ||
cable | ||
camo | ||
cloud | ||
debugbumpedlightmap | ||
debugbumpedvertexlit | ||
debugfbtexture | ||
debuglightingonly | ||
debuglightmap | ||
debugluxels | ||
debugmodifyvertex | ||
debugnormalmap | ||
debugunlit | ||
debugvertexlit | ||
decalBaseTimesLightmapAlphaBlendSelfillum | ||
decalmodulate | ||
downsample | ||
eyeball | ||
eyes | Используется для реалистичных поверхностей глаз моделей. | |
fillrate | ||
gooinglass | ||
internalframesync | ||
jellyfish | ||
jojirium | ||
lightmappedgeneric | Наиболее часто используемые текстуры. Базовая текстура заданная параметром basetexture умножается картой света (lightmap) при визуализации компилятором карт. |
Требуется только строка $basetexture |
lightmappedtwotexture | Две базовые текстуры смешанные равномерно и умноженные картой света (lightmap). Важно для материалов где одна или обе базовые тексутры находятся в движении. | |
modeladditivetransEnvMapwithMaskedTexture | ||
modulate | ||
overlay_fit | ||
particlesphere | ||
predator | ||
reflecttexture | ||
refract | Преломление света позади материала в соответвтии с dudvmap и bumpmap. Корректно работает только для моделей. | |
shadow | ||
shadowbuild | ||
shadowmodel | ||
showdestalpha | ||
skyfog | ||
sprite | ||
teeth | ||
translucentlightmap | ||
unlitgeneric | Самая базовая текстура. basetexture получает полное освещение. | |
unlittwotexture | Две базовые текстуры смешанные равномерно и получают получают полное освещение. | |
vertexlitgeneric | Базовая текстура с вертексным освещением | |
vertexnormals | ||
volumetricfog | ||
water | ||
watersurfacebottom | ||
wireframe | ||
worldtwotextureblend | Используется для поверхностей смещений (дисплейсмент). Две базовые текстуры используют вертексное овсещение. Процентное значение смешивания кажой из двух текстур, определяется значением alpha в редакторе свойств тектуры в Hammer. | |
worldvertexalpha | Используется для поверхностей смещений (дисплейсмент). Базовая текстура с вертексным освещением. | |
worldvertextransition | ||
writeZ | ||
yuv |
Параметры для шейдеров
Базовые параметры«$basetexture» «путь/к/текстуре» — базовая текстура
«$surfaceprop» «тип поверхности» — устанавливает физический тип поверхности
«$bumpmap» «путь/к/normal-карте» — определяет векторы нормалей предназначенные для освещений и envmap искажений
«$parallaxmap» «путь/к/height-карте» — карта высот
«$parallaxmapscale» дробь — умножитель высот
Отражения
«$envmap» «env_cubemap» — использование ближайшего env_cubemap для отражений
«$envmaptint» «[float float float]» — устанавливает цветовые компоненты красный, зеленый, синий для envmap
«$normalmapalphaenvmapmask» 1 — (использовать карту нормалей для отражений???)
Освещение/рендеринг
«$selfillum» 1 — использовать альфа канал карты $basetexture для установки минимального фиксированного значения освещенности.
«$nocull» 1 — (не отбраковывать???)
«$alpha» дробь — устанавливает прозрачность
«$color» «[дробь дробь дробь]» - устанавливает цветовые компоненты красный, зеленый, синий
«$additive» 1 — аддитивный рендер текстуры (ее цвета добавляются, вместо замены, того что находится за ней.)
Другие
«$decal» 1 — использовать в декалях
«$decalscale» дробь
«$model» 1 — использовать для моделей
Свойства поверхности материала ($surfaceprop)
БЕТОН, КАМНИbaserock
boulder
brick
concrete
concrete_block
gravel
rock
ЖИДКОСТЬ, ТЕКУЧЕСТЬ
slime
water
wade
МЕТАЛЛЫ
chain
chainlink
metal
metalbox
metalgrate
metalpanel
metalvent
slipperymetal
solidmetal
РАЗНОЕ
computer
default
glass
ladder
ОРГАНИКА
alienflesh
bloodyflesh
flesh
watermelon
СНЕГ, ЛЕД
ice
snow
ЗЕМЛЯ
antlionsand
quicksand
dirt
mud
slipperyslime
grass
tile
gravel
ДРЕВЕСИНА
wood
woodbox
woodcrate
wood_furniture
wood_lowdensity
wood_plank
wood_panel
wood_solid
Служебные параметры
%tooltexture%keywords
%detailtype
%compileWater
%compileHint