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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
こぐこ

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

#1

投稿記事 by こぐこ » 9年前

お世話になっております。

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

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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#2

投稿記事 by softya(ソフト屋) » 9年前

一度テクスチャ化しないといけませんが、バンプマッピングの応用かな?の気がします。
エフェクト用として、やったことがないので断言できません。
不確かすぎる情報ですが参考になれば。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

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

#3

投稿記事 by h2so5 » 9年前

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

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

ISLe()

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

#4

投稿記事 by ISLe() » 9年前

技術的には鏡や水面に背景が映るのと同じですから、固定機能では最低でも背景を2回レンダリングすることになります。

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

こぐこ

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

#5

投稿記事 by こぐこ » 9年前

softyaさん、 h2so5さん、ISLe()さん
ご解答ありがとうございます。
全部試してみます。
また結果や質問等をさせていただきます。

閉鎖

“C言語何でも質問掲示板” へ戻る