Создание VMT
VMT (Valve Material) - предствляет собой текстовый файл со скриптом, описывающий свойства материала.
Например:
"LightmappedGeneric"
{
    "$basetexture" "shadertest/LightmappedTexture"
    "$envmap" "shadertest/LightmappedTexture_envmap"
    "$color" "[1 0 0]"
    "$alpha" 0.5
    "$nocull" 1
}
Скрипт в VMT cодержит секции заключенные в фигурные скобки { } с указанием перед ними имени в кавычках " ":
"Имя_секции" {
  ... содержимое
}
Внутри секции могут содержаться параметры в отдельных строках или другие вложенные секции.
Каждый параметр имеет имя начинающееся с символа доллара $ и заключенное в кавычки и значение, разделенные пробелом
"$Имя_параметра" значение

значение может быть разных типов:
строка - записывается в кавычках - "строка"
целое число - записывается без кавычек - 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
Источник: Source Inside

CMT (CS Mapping Tutorials) - © 2006-2011+. Created by VM
[ Script Execution time: 0.0049 ]