ページ 11

3Dゲームでの歪みエフェクトについて

Posted: 2014年12月28日(日) 03:21
by こぐこ
お世話になっております。

3Dゲームで部分的に歪ませたいです。
例えば、剣の軌跡後が歪むような。
しかし、一体どういう考え方で歪ませたらいいのかと。
軌跡の部分の板ポリをマスクで抜いてポストエフェクトでそこだけ複数枚ずらして描画して
最終的にレンダリングとかなのでしょうか...

ただ、ネット配信でプログラムでエフェクト作りをしている方が作業をしていらっしゃった時にお聞きしたのが
テクスチャでマスク?みたいな事をして歪ませている。シェーダー使っても出来るけど使ってない。
とおっしゃってました。
そこで拝見したテクスチャは全体が霧状の白黒のテクスチャでした。(白が霧部分)
それで動的な歪みを表現なさってました。
他の所でも白黒のテクスチャだけでエフェクトを表現しているのを見かけた事がありましたが(ソースコードは見れない)
あれはどういう作業をしているのでしょうか。
それも白の部分だけマスクで抜いて...でもシェーダーを使わないとなると...と考えてしまいます。
一般的な考え方はどのようなものなのでしょうか。

DirecrX、VC++を使用しております。
よろしくお願いします。

Re: 3Dゲームでの歪みエフェクトについて

Posted: 2014年12月28日(日) 11:41
by softya(ソフト屋)
一度テクスチャ化しないといけませんが、バンプマッピングの応用かな?の気がします。
エフェクト用として、やったことがないので断言できません。
不確かすぎる情報ですが参考になれば。

Re: 3Dゲームでの歪みエフェクトについて

Posted: 2014年12月28日(日) 15:47
by h2so5
もしかして固定機能パイプラインの機能だけで実現可能な方法はあるのかもしれませんが、基本的にはシェーダーを利用してテクスチャのディスプレースメントを行うのが簡単だと思います。

「シェーダーを使っていない」というのも、単に直接シェーダーのコードを書いていないというだけで、何らかの内部的にシェーダーを使うモジュールの機能は利用しているという意味ではないでしょうか。

Re: 3Dゲームでの歪みエフェクトについて

Posted: 2014年12月28日(日) 17:33
by ISLe()
技術的には鏡や水面に背景が映るのと同じですから、固定機能では最低でも背景を2回レンダリングすることになります。

シェーダーを使ってピクセルをずらすのなら、1回のレンダリングで済みます。

Re: 3Dゲームでの歪みエフェクトについて

Posted: 2014年12月28日(日) 21:44
by こぐこ
softyaさん、 h2so5さん、ISLe()さん
ご解答ありがとうございます。
全部試してみます。
また結果や質問等をさせていただきます。