Каждая карта должна включать в себя картинку, которая рисуется при загрузке карты и в меню игры (можно и без неё, но не интересно).
Предположим, что наша карта называется my_map. Тогда левелшот должен называться my_map.jpg или my_map.tga и лежать в папке levelshots.
Для загрузочной картинки подойдет скриншот с карты или любая другая картинка.
Чтобы сделать скриншот нужно прописать в консоли (в одну строку):
bind X "cg_draw2d 0;cg_drawgun 0; wait 3; screenshot; toggle cg_draw2d; toggle cg_drawgun"
Тогда при нажатии клавиши X в папку baseq3/screenshots запишется картинка экрана. При этом убраюся с экрана цифры и оружие, а после снятия скриншота возвратятся на место.
Размер картинки не очень важен, желательно соблюсти соотношение сторон 4:3 (например, 640*480). На картинке можно в графическом редакторе сделать надпись или наложить какой-либо эффект.
Quake 3 понимает каждый левелшот как текстуру, и поэтому с ним можно делать все те же действия, что и с текстурами.
Например можно написать такой материал (про создание материалов другая статья):
levelshots/test-levelshot2
{
nopicmip
surfaceparm nolightmap
{
animmap 0.25 levelshots/test-levelshot2.tga levelshots/test-levelshot1.tga levelshots/test-levelshot3.tga
}
}
Картинка левелшота будет меняться с определенной частотой.
Или, например, наложить эффект на левелшот:
levelshots/test-levelshot2
{
nopicmip
surfaceparm nolightmap
{
animmap 0.25 levelshots/test-levelshot2.tga levelshots/test-levelshot1.tga levelshots/test-levelshot3.tgargbGen wave sawtooth 1 0 .25
}
{
map textures/base_wall/comp3textd.tga
blendfunc add
tcmod scroll 5 .25
rgbGen wave inversesawtooth 0 1 0 .25
}
{
map textures/base_wall/chrome_env.tga
tcgen environment
tcmod scale .5 .5
blendfunc add
rgbgen wave triangle .5 .05 0 10
}
{
map $lightmap
rgbGen identity
blendfunc gl_dst_color gl_zero
}
}