Форум
АвторСообщение





Пост N: 241
Зарегистрирован: 10.04.06
Откуда: Россия, Москва
ссылка на сообщение  Отправлено: 17.02.08 13:35. Заголовок: шардеры для текстур...


в основном здесь будет представлено то что было уже написано в других темах...просто я это все в одну кучу соберу))

от Думера :

 цитата:
пример простейшего шейдера с прозрачностью с альфа каналом:[quote]
textures/test3red/test3red
{
qer_editorimage textures/test3red/test3red.tga
surfaceparm alphashadow // врубаем прозрачность
surfaceparm nomarks // необязательно но желательноj
{
map textures/test3red/test3red.tga // грузим нашу TGA-шку
alphaFunc GE128 // опеределяем как будет работать наш альфа-канал
depthWrite

}


Именно значение GE128 определяет что черные участки альфа-канала будут прозрачными. У alphaFunc возможны три варианта:

alphaFunc GT0 - непрозрачно все.
alphaFunc LT128 - белое прозрачно, черное нет.
alphaFunc GE128 - обратно LT128.

Есть ещё blendfunc, с помощью которой можно сделать градации прозрачности, но там позамороченней. Хотя.. если юзать редактор шейдеров, то не особо сложно.
`

пример как делать декали спс Амон:

 цитата:
если надо снег какой-нить нарисовать, рисуешь на черном фоне его, потом к нему
пишешь шадер примерно следуюшего содержания:

textures/mytexture
{
surfaceparm nonsolid
//этот параметр делает текстурку неосязаемой
{
map textures/mytexture.tga
blendfunc GL_ONE GL_ONE
//делаем текстуру полупрозрачной
}
}

после этой операции текстура станет прозрачной в темных местах (чем темнее, тек прозрачнее). на карту ставится следующим способом - создаешь браш с нужными размерами, жмешь curve => simple patch mesh, появляется плоская кривая, растфгиваешь её, подгоняешь на ней текстуры как надо.
если надо нарисовать плакат или нечто в этом духе - скрипт такой же, только надо добавить после "surfaceparm nonsolid" строчку "cull twosided" и убрать "blendfunc GL_ONE GL_ONE", теперь картинка будет непрозрачной и двухсторонней.
если надо намалевать нечто другое, например, трещину в стене или кровь - рисуешь на белом фоне, потом жмешь ctrl+i, invert colors то бишь, после этого получается на черном фоне белая трещина, ну или кровища голубая. скрипт пишется к таким вещам так:

textures/mytexture
{

surfaceparm trans
//хз что это
surfaceparm nomarks
//чтобы на текстуре не оставалось следов от выстрелов
cull none
sort 10
//последние две тоже хз

nopicmip
// чтобы текстура не размазывалась, если играют при низких настройках

{
clampmap textures/mytexture.tga
blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR
// это делает текстуру прозрачной, а потом инвертирует цвета
}
}
в игре трещина будет уже снова черной, кровь красной, итд





Мда жизнь это игра... а Quake это судьба... +)
http://zeromapping.narod.ru
Спасибо: 0 
ПрофильЦитата Ответить
Новых ответов нет


Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  5 час. Хитов сегодня: 4
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет