お世話になっております。
3Dゲームで部分的に歪ませたいです。
例えば、剣の軌跡後が歪むような。
しかし、一体どういう考え方で歪ませたらいいのかと。
軌跡の部分の板ポリをマスクで抜いてポストエフェクトでそこだけ複数枚ずらして描画して
最終的にレンダリングとかなのでしょうか...
ただ、ネット配信でプログラムでエフェクト作りをしている方が作業をしていらっしゃった時にお聞きしたのが
テクスチャでマスク?みたいな事をして歪ませている。シェーダー使っても出来るけど使ってない。
とおっしゃってました。
そこで拝見したテクスチャは全体が霧状の白黒のテクスチャでした。(白が霧部分)
それで動的な歪みを表現なさってました。
他の所でも白黒のテクスチャだけでエフェクトを表現しているのを見かけた事がありましたが(ソースコードは見れない)
あれはどういう作業をしているのでしょうか。
それも白の部分だけマスクで抜いて...でもシェーダーを使わないとなると...と考えてしまいます。
一般的な考え方はどのようなものなのでしょうか。
DirecrX、VC++を使用しております。
よろしくお願いします。
3Dゲームでの歪みエフェクトについて
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: 3Dゲームでの歪みエフェクトについて
一度テクスチャ化しないといけませんが、バンプマッピングの応用かな?の気がします。
エフェクト用として、やったことがないので断言できません。
不確かすぎる情報ですが参考になれば。
エフェクト用として、やったことがないので断言できません。
不確かすぎる情報ですが参考になれば。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 3Dゲームでの歪みエフェクトについて
もしかして固定機能パイプラインの機能だけで実現可能な方法はあるのかもしれませんが、基本的にはシェーダーを利用してテクスチャのディスプレースメントを行うのが簡単だと思います。
「シェーダーを使っていない」というのも、単に直接シェーダーのコードを書いていないというだけで、何らかの内部的にシェーダーを使うモジュールの機能は利用しているという意味ではないでしょうか。
「シェーダーを使っていない」というのも、単に直接シェーダーのコードを書いていないというだけで、何らかの内部的にシェーダーを使うモジュールの機能は利用しているという意味ではないでしょうか。
Re: 3Dゲームでの歪みエフェクトについて
技術的には鏡や水面に背景が映るのと同じですから、固定機能では最低でも背景を2回レンダリングすることになります。
シェーダーを使ってピクセルをずらすのなら、1回のレンダリングで済みます。
シェーダーを使ってピクセルをずらすのなら、1回のレンダリングで済みます。
Re: 3Dゲームでの歪みエフェクトについて
softyaさん、 h2so5さん、ISLe()さん
ご解答ありがとうございます。
全部試してみます。
また結果や質問等をさせていただきます。
ご解答ありがとうございます。
全部試してみます。
また結果や質問等をさせていただきます。