シェーダー

シェーダー(shader)ってなんぞや

まぁ簡単に言うとテクスチャに特殊効果つけたりするスクリプトみたいなもんです
発光させたりアニメーションさせたり水にしたり霧にしたり
radiant上ではテクスチャリストの白枠のテクスチャがシェーダーです
基本的な事は下のリンク先に書いておられます
シェーダーについてhttp://estlla.blog100.fc2.com/blog-entry-83.html
最初は何がなんだか分からないと思う
そんな時は他のマップのshaderファイルからコピペして弄ってみたり
shader作成ツールなる物も存在するからそれを使いまくったり
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)ファイルを用意します。
次に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

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年03月11日 17:11
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。