Материал - это то изображение, которое наносится на стену, простой материал может состоять из одной текстуры, сложный - из нескольних, наложенных друг на друга слоями или скомбинированных каким-либо ещё образом.
В Quake 3 материалы хранятся в папке scripts, в файлах с расширением .shader, хотя они не являются шейдерами в современном понимании этого слова.
Структура каждого материала имеет примерно такой вид:
textures/base_button/shootme2 //название материала
{
qer_editorimage textures/base_button/metal3_3_shootme.tga
// текстура, которая отображается в редакторе,
// эта сторока нужна тогда, когда название текстуры не совпадает с названием материала
q3map_lightimage textures/base_button/shootme_glow.tga
//
q3map_surfacelight 1000
// Эта строка отвечает за силу свечения материала
{
// внутри материала существуют стейджи - уровни, разделенные такими фигурными скобками
// каждый стейдж отвечает за слой материала
map $lightmap
rgbGen identity
// в этом стейдже поверх остальных текстур накладывается текстуры лайтмапа (освещения)
}
{
map textures/base_support/metal3_3.tga
blendFunc GL_DST_COLOR GL_ZERO
rgbGen identity
// Основная текстура материала, она частично прозрачная, под ней просвечивает следующий слой
}
{
map textures/base_button/shootme_glow.tga
rgbGen wave sin 0.5 1.0 0 .3
blendFunc GL_ONE GL_ONE
// нижняя тестура материала, она обладает свойством изменять интенсивость цвета по синусоидальному закону
}
}
В данной статье пока не будут расписаны все возможные параметры материалов, обращайтесь в Q3A Shader manual