Каждая карта должна включать в себя картинку, которая рисуется при загрузке карты и в меню игры (можно и без неё, но не интересно).
Предположим, что наша карта называется 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 } }