スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

背景シェーダー その4 ディテールマップ

というわけで、前回提示した課題が「近景と遠景の情報密度のバランス」だったんだけど、
それに対する自分なりの解答案の一つが「ディティールマップ」。

ディテールマップは一般的には
「アップ時の情報量を底上げするために追加する高密度なタイリングテクスチャ」
なんだけど、今回はたぶん一般的なものとはちょっと違う形で実装している。
140202d_BG.jpg
遠景では表示されず(=情報量を低く抑えられる)
近景では表示される(=情報量を増やせる)

上の絵では遠景ではただの大雑把な岩が、近くによると凹凸ディテールが追加されているのがわかると思う。
(分かりやすいように本来よりもちょっと大げさに設定している)
仕組みは単純で、シェーダーの中で距離に応じてディテール用のグレースケールテクスチャーを乗算していくだけ。
これで情報密度の問題は、ある程度は改善できる。
ただ、これ以上さらにエクストラアップにした場合には耐えられないのでやはり完璧ではない。
また、カメラの移動ではなく、ズームイン(画角の変更によるアップ)には対応できない。

とはいえ、近距離の情報量を増やしつつ遠景の情報量を削減できるので、こういうテレイン系のシェーダーには適してるんじゃなかろうか。
140202a_BG.jpg
だんだんとカメラを引いていってみたところ。少しずつディテールが薄くなっていく。
一番下は引いたカメラの絵を拡大したもの。ディテールが消えているのがわかるかと。

140202b_BG.jpg
ディテールマップ無しの場合。割り切ってしまえばこれでもいいのかもしれないが、やはり情報量が過密に感じてしまう。
手書きの絵だったら、遠景としては描きこみ過ぎでバランスが悪いと評価されてしまうのではなかろうか。

140202c_BG.jpg
キャラクターと対比してみた場合。ディティールマップなしだとさすがにきつい。
ディティールマップありでも、ちょっとサイズが大きすぎてこれでも情報密度が足りないくらい。
これ以上カメラを近づける必要がある場合はちょっと対応できなさそう。どうしたものか。
もう少しキャラクターと背景の大きさのバランスを調整する必要があるかもしれない。


もちろん本当は、遠中近あらゆる距離に対応できる超高解像度なテクスチャーを持つのが理想なんだけど、
そのテクスチャーを作る労力やらメモリ容量やらを考えるとある程度のところで落としどころを見つけなくてはならない。
処理不可的には今回のディテールマップはまあ許容できる程度。グレースケールのテクスチャもノーマルマップの空いているαチャンネルに格納すれば余分なテクスチャも必要ない。
本当はこのディテールマップの凹凸にもノーマルマップが欲しいところだけど、今回はちょっとオーバースペックと判断したので、ひとまずこのままで行こうかと考えている。



思えば背景表現の模索は数年前からやっているんだけど、シェーダーが触れるようになってからはホントに
飛躍的にできることが増えて楽しい。当時はこんなことができるようになるとは全く思ってなかったし。
昔の涙ぐましい努力が懐かしくかつまたほほえましい。

背景シェーダーについてはまだ微妙に納得いってない部分もあるけど、ひとまずこの辺で切り上げて
次は別のことをやろうかなと。モデルかモーションか、UNITYの続きをやるか…はてさて。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

JNY

Author:JNY
某ゲーム会社勤務
趣味と修行をかねて個人製作中
Softimage & Cgfx & Unity

最新記事
最新コメント
月別アーカイブ
カテゴリ
カウンター
twitter

Twitter Updates

    follow me on Twitter
    リンク
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。