Вы хотели эффектов? Их есть у меня! Послесловие для маньяков Q3Radiant

Xakep, номер #044, стр. 044-072-2


textures/leafs/fall_leaf_1

{

qer_editorimage textures/leafs/leaf.tga

surfaceparm nonsolid

surfaceparm trans

cull none

deformVertexes wave 30 sin 0 10 0 .2

nopicmip

{

map textures/leafs/leaf.tga

tcMod scale 2 2

blendFunc GL_ONE GL_ZERO

alphaFunc GE128

depthWrite

rgbGen identity

tcmod scroll 0 .25

}

{

map $lightmap

rgbGen identity

blendFunc GL_DST_COLOR GL_ZERO

depthFunc equal

}

}

Теперь тебе необходимо создать карту с деревом, от которого будет отваливаться листва. Ты можешь попробовать нарисовать что-то сам, но я рекомендую тебе воспользоваться заготовкой все того же Terry DeLaney (http://quake3.qeradiant.com/q3afiles/tutefiles/leaves.zip).

Когда все готово, ты можешь приступать к самому ответственному шагу - добавлению листопада в игру. Для этого возьми уже созданное или позаимствованное тобой дерево и создай вокруг него цилиндр высотой в 96 единиц и радиусом пропорционально краям кроны. Наложи на цилиндр текстуру с листвой fall_leaf_1.

Теперь, не снимая окрашивания, вызови Surface Inspector (S) и нажми (см. рис. 3) кнопку Natural.

Количество листьев увеличится, но постарайся сохранить чувство меры. Используя клавишу Fit, ты достигнешь лучшего эффекта. Теперь сохрани и откомпилируй уровень и любуйся (см. рис. 4) только что созданным шедевром непосредственно в игре.

Прозрачные объекты, или виртуальное решето

При моделировании сложных уровней тебе нередко придется сталкиваться с таким сложными объектами, как клетки, дырявые контейнеры или изрешеченные пулями двери. Чтобы зря не тратить драгоценные полигоны на создание сложных конструкций, ты можешь использовать полупрозрачные текстуры. Конечно, при создании подобных поверхностей тебе придется повозиться с альфа-каналом (см. выше), но это уже тема для отдельного урока. Итак, приступим. Для начала тебе необходимо заставить редактор понять, что твой шадер именно прозрачный и никак иначе. Так как редактор не понимает человеческого языка, то придется прибегнуть к простому скрипту, позаимствованному из официального набора Quake 3: Arena. Скрипт для шедера base_trim/proto_fence выглядит следующим образом:

textures/base_trim/proto_fence

{

surfaceparm trans

cull none

nopicmip

{

map textures/base_trim/proto_fence.tga

tcMod scale 3 3

blendFunc GL_ONE GL_ZERO

alphaFunc GE128

depthWrite

rgbGen identity

}

{

map $lightmap

rgbGen identity

blendFunc GL_DST_COLOR GL_ZERO

Назад на стр. 044-072-1  Содержание  Вперед на стр. 044-072-3