流れる雲と太陽


雲画像

雲の画像を用意します。


no image


no image

右はαチャンネルの情報ですが、今回のように雲が1層だけの場合は必要ないでしょう。

先のマスク画像と同様 Photoshop の雲模様フィルタを駆使して作りました。

shader

textures/skytest/skytest_03 { qer_editorimage textures/skies/topclouds.tga surfaceparm noimpact surfaceparm nolightmap q3map_globaltexture surfaceparm sky q3map_sun 1.0 1.0 0.9 150 300 60 q3map_lightmapFilterRadius 0 8 q3map_lightrgb 1.0 0.9 0.8 q3map_skylight 73 3 skyparms textures/skytest/env/bg 512 - sunshader textures/skytest/sun //太陽のテクスチャを指定 { map textures/skytest/clouds.tga //雲の画像ファイル tcMod scale 3 3 //大きさを変更 tcMod scroll 0.00125 0.005 //流れる速さのベクトル } { fog off clampmap textures/skytest/st_mask.tga blendFunc blend //マスクをブレンド tcMod scale 0.956 0.956 tcMod transform 1 0 0 1 -1 -1 rgbGen identityLighting } } textures/skytest/sun //太陽のテクスチャ { cull none q3map_nofog nofog { map gfx/misc/flare5.tga //太陽の画像 blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_COLOR //ブレンド rgbGen identityLighting } }

ずいぶんと長くなってしまいました..

最後の textures/skytest/sun で太陽を記述しています。
太陽の画像は公式マップのフレアの画像を流用しました。
これを sunshader 命令で呼び出して使っています。

このほか、雲画像を tcMod scroll でスクロールさせて雲が風に流されている効果を演出しています。
雲は最大で8層まで重ねることができるようですが、あまり重ねすぎると処理が重くなるので注意。
普通は低層の雲と上層の雲の2層ぐらいでしょうか。
雲の流れるスピードは上層の雲はゆっくりと。低層の雲は早めのスピードにするとそれらしくなります。

スクリーンショット

実際に textures/skytest/skytest_03 を適用するとこんな感じになります。

no image

参考:dem_skytest.pk3 (リンク切れ) (マップファイルも同梱してます)

自分で書くのもアレですが、かなりいい感じに仕上がりました。
欲を言うともう少し雲に立体感が欲しいのと雲の量を減らして青空を強調してもいいかもしれません。
Photoshop で見ているガンマ値とゲーム内でのガンマが若干違うのでその辺りの修正も必要そうです。
この辺は画像処理の腕次第ですね。

sunshaderで太陽を表現するのではなく、マスク画像に直接描きこんでしまう方法もあります。
また、先に紹介した Venice のように背景の6面画像に描く方法もあります。
いろいろな方法があるようなので、そのへんはアイディア次第でしょうか。

太陽コロナ

陽を見ると眩しく光るコロナ(corona)の追加は、コロナのページを読んでください。

no image