Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы по шейдерам
Defrag.ru Community > Gamez > Quake3 (Sourcez)
aFex
Думаю эта тема никому не помешает =)
Вопросы
1. Как сделать чтобы в текстуре определенная область была прозрачной?
2. Как задать цвет солнца в шейдере к скайбоксу?
3. Можно ли сделать анимированный скайбокс? Например мерцающие звезды...
e1dest
Мона в FoR MaPPeRs oNLy! спросить у зонта, он знать должен.
Яб на тваём месте в чюжих шейдерах посмотрел.
moviegear
1. Открываешь скин в фотошопе и переходишь на вкладку Channels (меню это находится там же, где и слои), создаёшь новый канал (внизу с корзинкой есть Create new channel) и выделив всю область (ctrl+a) закрашиваете его белым цветом - с каналом готово! Теперь нам нужно нарисовать места на скине, которые будут просвечиваться - т.е. мы должны выделить только наш канал и чёрным по белому нарисовать эти самые места, т.е. что у нас чёрное, то и будет просвечиваться.

Технология рисования, 2 способа:
- 1) виден и выделен только альфаканал и мы на нём вслепую рисуем дырки (при рисовании рисунок кисточки отображается чёрным, как и её цвет т.е.)
- 2) видны все каналы, но выделен альфаканал (при рисовании кисточкой чёрный цвет отображается красным и мы всё видем, что и где закрашивать)

Пояснения:
- альфаканал - дополнительный 5й канал, что мы создали

Работа:
- Кисточка - инструмент в фотошопе, выбирать нажатием B, а настройка его осуществляется в левом верхнем меню, либо клацнув правую кнопку на изображении - 2 параметра: размер и чёткость кисти (меньше - размытая, больше - чёткая, как видимая окружность кисти)
- Изменять размер изображения - ctrl+, crtl-
- Изображение при увеличении - нажать пробел, затем левую кнопку на изображении и двигать куда нужно

Сохранение:
Сохранять нужно либо в bmp, либо в tga - это одно и то же! Но я выбираю tga, чтобы не париться с расширениями и не переименовывать их в скриптах, к примеру... Вобщем выбираем tga и 32Бита (32 потому, что на каждый канал требуется по 8Бит, изначально было 3 канала - 24Бита, но т.к. есть ещё один - 4й, то это уже 32Бита)

И правильно подсказал e1dest, когда не знаешь - смотри как делают другие, открывай скины с шейдерами и разглядывай.

Думаю нормально объяснил...
n17.BA
или ещё один способ - выделяем нужные участки (либо руками, либо волшебной палочкой, либо с помощью пера - не важно), затем переходим во вкладку channels и кликаем на кнопочку "Save selection as channel" - всё, альфаканал готов.
moviegear
n17.BA
да, если знаешь, что тебе нужно "прорезать" в скине сразу и одинаково, а то иногда нужен где плавный переход, где резкий...
только потом следует инвертировать цвета в альфаканале
n17.BA
ну я ж просто добавил...=)
aFex
всем спасибо ща буду пытацца =)
а тема может кому нить другому нужна... почему сразу маперз онли
n17.BA
Полезные ссылки по шейдерам:
GTK Radiant 1.5.0
Размер 8 Мб, в составе куча мануалов (в том числе и по шейдерам)

Quake 3 Arena Shader Editor
Размер 500 Кб, отличная программа для редактирования шейдеров, незамения утилита для дизайнеров. Документация к Q3ASE находится здесь

Q3A Shader Manual
Размер 66 Кб, подробнейший мануал от ID Software.

moviegear
n17.BA
smile.gif это понятно, я ничё тебе не говорю

я вот запустил фотошоп, сделал так, а оказалось надо инвертировать цвета, либо инвертировать выделение (Select - Inverse) перед нажатием на создание канала... просто чтобы вопросов не было, почему не получилось...
ты ж советуешь, так что не ленись и расписывай, хехе... wink.gif

за ссылки спасибо, хороший туториал:
http://www.bpeers.com/software/q3ase/q3asetutorial.html
n17.BA
Анимированный SkyBox
Анимировать сам SkyBox нельзя, но можно анимировать слои, наложенные на SkyBox:

textures/skies/[Название Шейдера]
{
surfaceparm noimpact
surfaceparm nolightmap
surfaceparm sky
qer_editorimage textures/skies/[изображение неба для редактора].tga
q3map_sun 1 1 1 100 60 60
q3map_surfacelight 200

skyparms env/[название skybox'а] - -
{
map [путь к текстуре со звёздами]
blendfunc GL_ONE GL_ONE
tcMod scroll 0.05 0.06
}
}

Дополнительное инфо:
q3map_sun <красный> <зелёный> <синий> <интенсивность> <гор. угол> <верт. угол>
tcMod scroll <скорость перемещения по оси X> <скорость перемещения по оси Y>
n17.BA
2 Gear: Понимаешь, этот альфаканал можно инвертировать уже в самом шейдере, так что это ерунда =)

moviegear
это я понимаю, это описывается в blendfunc
но блин, чё ты понять не можешь к чему я клоню?
Когда пишешь что-то - объясняй, что тогда нужно сделать! Сказал про альфаканал без инверсии - напиши как тогда с ним работать в шейдере

Чувак сделает по твоему, прочтёт что можно и без инверсии канала работать с каналом, а он знает как блин? нет! dry.gif
Во всех скинах прозрачность делают чёрным цветом, поэтому и легче сделать также и не париться с описанием функции и т.д.

p.s. можно пойти домой как обычно, а можно через чужие кварталы - чё париться и ходить по кварталам?
aFex
n17.BA
тоесть наложение идет как в текстуре
типа
texture.jpg
texture_blend.jpg

если не задать tcMod scroll то что будет?
Karum.
Значит движения не будет.. интересно как все на тему накинулись.. я думал что умных будет меньше : )
aFex
ну дапустим мне надо чтобы на звездном небе двиголось планета...
или солнце...
это реально?
просто я ща поиграл в UT1 CTF на двух башнях... ну знаете..
и тама насмотрелся на ихний скай =)
dS-LAMA3OID
textures/mysupermegaskies/sky01.jpg - текстура - звездное небо
env/mysupermegaskies/sky01***** - скайбокс, названый по всем правилам скайбоксов (ну сам скайбокс неба)
textures/mysupermegaskies/planet01.jpg - эта самая планета или солнце...

textures/mysupermegaskies/sky01
{
qer_editorimage textures/mysupermegaskies/sky01.jpg
surfaceparm noimpact
surfaceparm nolightmap
surfaceparm nomarks
surfaceparm sky
q3map_backsplash 0 0
q3map_surfacelight 300

skyparms env/mysupermegaskies/sky01 - -
{
map textures/mysupermegaskies/planet01.jpg
blendfunc GL_ONE GL_ONE
tcMod scroll 0.02 0.02
tcMod scale 2 2
}
}

большинство параметров можно менять... я сюда просто закинул шейдер из моей карты, которую уже год делаю smile.gif
Karum.
Да.. он пиздат.. но такой как в ут1 на двух башнях можно сделать вроде как банальной вращающейся сферой.. Ну и в шейдере конечно реально такое написать : )
Karum.
О бля.. чёта припозднился я с ответом.. Хотя вариант пешения проблемы тоже дал : ) Тока наверное скорость вращения ещё меньше надо дать имхо.. Это я Ламазоиду : )


Да.. и давайте без флуда.. ок ? вопросы - ответы.. вопросы - ответы.. : ) Восклицания за посты не считаются.. как ни крути..
dS-LAMA3OID
GT-3oHT
Ты бы видел как этот шейдер смотрится с моим скайбоксом... И с моей хренью, которая по небу лазяет smile.gif) [сам рисовал и то и другое] smile.gif
Ну мож када-то и увидишь smile.gif
ЗЫ. Год назад кто-то из бсх смотрел... Шакал вроде... Сказал что я чего-то обкурился smile.gif
aFex
дай мне =))))))
Nt.kop4ik
дайте плиз шейдеры на
sfx/electricslime2
sfx/electricslime_old
они у меня конешна есть, но они запрятана в шейдерах какаято_карта.shader, а их оч. много
n17.BA
да без проблем wink.gif
textures/sfx/teslacoil3 - название шейдера в файле sfx.shader
Karum.
Цитата
Ну мож када-то и увидишь

Тогда показывай мне, не стесняйся : ) Вдуруг очень ахуенно будет : )



з.ы. 3000 ПОСТ!
Nt.kop4ik
подскажите плиз, что делают эти, без сомнения,нужные вещи:

surfaceparm trans
nonsolid
nodrop
nolightmap
dust

q3map_globaltexture
q3map_surfacelight 1500
q3map_novertexshadows
q3map_forcesunlight
cull none
sort 10

blendfunc filter
tcMod transform 1 0 1 1 1 1
tcMod turb 0 0.25 0 0.5
rgbGen vertex
alphaGen vertex
alphaFunc GE128
blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
или какие там ещё есть
detail
depthFunc equal
depthWrite


заранее благодарен
aFex
отвечаю что знаю =)
surfaceparm trans
прозрачность текстуры
nonsolid
типа твердое тело
nolightmap
вроде как на эту текстуру не ращщитываецца лайтмап

остальное хуй его знает =)
n17.BA
из трёх правильно только 1,25 =)

пока только часть, остальное позже, времени нет (

surfaceparm nonsolid
браш, не блокирует движения игрока и других entities

surfaceparm nodrop
игроки находящиеся внутри браша (коробки), после смерти не оставляют оружия

surfaceparm nolightmap
на поверхность не действует освещение окружающей среды

q3map_surfaceLight
интенсивность света исходящего от поверхности

q3map_novertexshadows
не проецировать тени от брашей и моделей

q3map_forcesunlight
принудительное использование солнецного освещения

cull none
эта штука работает так же как в радианте, скрывает какую либо сторону обьекта (браша)
есть три значения: cull front и cull back и cull none (disable)

sort
используется для постраения иерархии шейдеров, то есть даёт возможность обрабатывать шейдеры в определённой последовательности

blendfunc
здесь задаётся функция смешивания слоёв, присутствую станадартные типы смешивания как в Photoshop

tcMod transform
tc = texture coordinate

tcMod turb
создаёт турбулентность относительно tc
<base> начальное значение
<amplitude> амплидуда
<phase> значения представляются в виде кривой (синусоида...), иными словами - отклонение от значения
<freq> количество циклов за секунду

rgbGen vertex
освещение распределяестя относительно формы обьекта (модели или браша), этот способ применим к статичным обьектам (mapobjects)
aFex
во. замутил =)
спасибо =)

q3map_surfaceLight
вот что меня очень интересует...
и как написать шейдер для стекла...
Nt.kop4ik
вроде анвинд уже выкладывал стекло...

Цитата
textures/тексура_стекла
{
qer_editorimage textures/тексура_стекла.tga //фон
        surfaceparm trans
        surfaceparm nolightmap
cull none
qer_trans  0.5
   
        {
  map textures/тексура_"рисунка"_на_стекле.tga
                tcgen environment
  blendFunc GL_ONE GL_ONE
}
         
}


попрафте если что не так
aFex
я так делал... тока чета не прозрачно... хз
ещё раз попробую
Karum.
Цитата
я так делал... тока чета не прозрачно... хз
ещё раз попробую

Альфа канал небось позабыл.. : )
И я обычно пишу просто
{
map textures/тексура_"рисунка"_на_стекле.tga
blendFunc GL_ONE_MINUS_SRC_ALPHA
rgbGen identity
}
Цитата
q3map_surfaceLight
вот что меня очень интересует...

Это указывается сила свечения тнкстуры.. Тута большие такие значения имхо нужны.. (у меня в о всяком случае..)
-ass-
спасибо Gear теперь понятно многое, но не все wink.gif
вот доделал скин...


aFex
GT-3oHT
тоесть она от нехуй делать бедт светится?
n17.BA
да, только как сказал Зонт, нужно использовать большие значения, но тут поправка, уместно использовать на небольших поверхностях (фонарики всякие и т.п.), т.к. свечение будет менее рассеяно и более интенсивно, вообщем смотрите сами

2Ass: В таких случаях нужно картинку выкладывать
nsk.crazy
хотелось бы узнать о следующем:
cull disable
tcGen lightmap
tcGen environment
tcGen vector
что это такое, с чем едят) хочу скин сделать свой%)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.