「シェーダー」の編集履歴(バックアップ)一覧はこちら
「シェーダー」(2010/03/11 (木) 17:11:17) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
***シェーダー(shader)ってなんぞや
まぁ簡単に言うとテクスチャに特殊効果つけたりするスクリプトみたいなもんです
発光させたりアニメーションさせたり水にしたり霧にしたり
基本的な事は下のリンク先に書いておられます
シェーダーについて[[http://estlla.blog100.fc2.com/blog-entry-83.html>http://estlla.blog100.fc2.com/blog-entry-83.html]]
最初は何がなんだか分からないと思う
そんな時は他のマップのshaderファイルからコピペして弄ってみたり
shader作成ツールなる物も存在するからそれを使いまくったり
Q3ASE(シェーダーエディター)[[http://bpeers.com/software/q3ase/>http://bpeers.com/software/q3ase/]]
とにかくやってみろって話です。
----
適当に例を挙げて説明していこうと思う。
niveus.shader
textures/niveus/bulb_white_s //シェーダーの名前。
{
qer_editorimage textures/niveus/bulb_white.tga //radiant上で表示される画像。これを記述しないと何がなんだか分からなくなる。
因みに画像のパスを指定する時は拡張子はjpgだろうがなんだろうがtgaを使わなきゃいけないらしい。
surfaceparm nomarks //弾痕やエイリアンのネバネバ?が付かなくなる。
surfaceparm nolightmap //光や影の影響を受けなくする。光ってるように見えるのはこれのおかげか。
{
map textures/niveus/bulb_white.tga //ゲーム内で表示される画像。
}
}
niveusの壁や天井にしばしば見られる小さい電球みたいなシェーダー。
画像ちょちょいと作ってコピペして弄くりゃあ誰でも簡単に他の色のも作れる。
----
***デカール
まずアルファチャンネル付きのTARGA(.tga)ファイルを用意します。
#image(vip.jpg) #image(vipalpha.jpg)
次にshaderファイルに以下の文を記述しましょう。
textures/viproom/vipdecal
{
qer_editorimage textures/viproom/vip.tga
surfaceparm nomarks
surfaceparm trans //テクスチャを半透明にする。αチャンネルが有るならそれが反映される。
nopicmip //よく分からん。あったほうがいいみたい
polygonoffset //ブラシ等と重ねた際に微妙に浮かせる。チラつき回避に。
{
map textures/viproom/vip.tga
depthWrite //よく分からん。
alphaFunc GE128 //よく分からん。無かったらαチャンネル無視された
}
{
map $lightmap //このシェーダーのライトマップを有効にする。
blendfunc filter //合成方法。白を透明にして黒を不透明にする。グラフィックソフトのレイヤーの乗算みたいな感じ。
map $lightmapを重ねるときは大抵filterを使う。他にもblendfunc addやらblendfunc blendやらいろいろある。
depthFunc equal //よく分からん。上のブロック(map textures/viproom/vip.tga)の不透明のとこだけにライトマップを描写する。たぶん。
}
}
あとはこのシェーダーを貼ったPatchを壁に貼り付けてテクスチャ位置調整して終わり。
#image(shot0011.jpg)
アルファチャンネルちょいとミスった・・・
因みに画像のように弾痕がチラついてるが貼り付ける位置によってこのシェーダーのsurfaceparm nomarksを外したのも作ったらおk
***シェーダー(shader)ってなんぞや
まぁ簡単に言うとテクスチャに特殊効果つけたりするスクリプトみたいなもんです
発光させたりアニメーションさせたり水にしたり霧にしたり
radiant上ではテクスチャリストの白枠のテクスチャがシェーダーです
基本的な事は下のリンク先に書いておられます
シェーダーについて[[http://estlla.blog100.fc2.com/blog-entry-83.html>http://estlla.blog100.fc2.com/blog-entry-83.html]]
最初は何がなんだか分からないと思う
そんな時は他のマップのshaderファイルからコピペして弄ってみたり
shader作成ツールなる物も存在するからそれを使いまくったり
Q3ASE(シェーダーエディター)[[http://bpeers.com/software/q3ase/>http://bpeers.com/software/q3ase/]]
とにかくやってみろって話です。
----
適当に例を挙げて説明していこうと思う。
niveus.shader
textures/niveus/bulb_white_s //シェーダーの名前。
{
qer_editorimage textures/niveus/bulb_white.tga //radiant上で表示される画像。これを記述しないと何がなんだか分からなくなる。
因みに画像のパスを指定する時は拡張子はjpgだろうがなんだろうがtgaを使わなきゃいけないらしい。
surfaceparm nomarks //弾痕やエイリアンのネバネバ?が付かなくなる。
surfaceparm nolightmap //光や影の影響を受けなくする。光ってるように見えるのはこれのおかげか。
{
map textures/niveus/bulb_white.tga //ゲーム内で表示される画像。
}
}
niveusの壁や天井にしばしば見られる小さい電球みたいなシェーダー。
画像ちょちょいと作ってコピペして弄くりゃあ誰でも簡単に他の色のも作れる。
----
***デカール
まずアルファチャンネル付きのTARGA(.tga)ファイルを用意します。
#image(vip.jpg) #image(vipalpha.jpg)
次にshaderファイルに以下の文を記述しましょう。
textures/viproom/vipdecal
{
qer_editorimage textures/viproom/vip.tga
surfaceparm nomarks
surfaceparm trans //テクスチャを半透明にする。αチャンネルが有るならそれが反映される。
nopicmip //よく分からん。あったほうがいいみたい
polygonoffset //ブラシ等と重ねた際に微妙に浮かせる。チラつき回避に。
{
map textures/viproom/vip.tga
depthWrite //よく分からん。
alphaFunc GE128 //よく分からん。無かったらαチャンネル無視された
}
{
map $lightmap //このシェーダーのライトマップを有効にする。
blendfunc filter //合成方法。白を透明にして黒を不透明にする。グラフィックソフトのレイヤーの乗算みたいな感じ。
map $lightmapを重ねるときは大抵filterを使う。他にもblendfunc addやらblendfunc blendやらいろいろある。
depthFunc equal //よく分からん。上のブロック(map textures/viproom/vip.tga)の不透明のとこだけにライトマップを描写する。たぶん。
}
}
あとはこのシェーダーを貼ったPatchを壁に貼り付けてテクスチャ位置調整して終わり。
#image(shot0011.jpg)
アルファチャンネルちょいとミスった・・・
因みに画像のように弾痕がチラついてるが貼り付ける位置によってこのシェーダーのsurfaceparm nomarksを外したのも作ったらおk