シェーダー(shader)ってなんぞや
適当に例を挙げて説明していこうと思う。
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)ファイルを用意します。
次に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を壁に貼り付けてテクスチャ位置調整して終わり。
アルファチャンネルちょいとミスった・・・
因みに画像のように弾痕がチラついてるが貼り付ける位置によってこのシェーダーのsurfaceparm nomarksを外したのも作ったらおk
最終更新:2010年03月11日 17:11