ライトプリパスレンダリングと頂点シェーダスキニングについて

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

ライトプリパスレンダリングと頂点シェーダスキニングについて

#1

投稿記事 by ろびん » 13年前

今、ライトプリパスレンダリングを実装しようと検討しています。
しかし、プリパス系のようなジオメトリの描画が2回行われるレンダリング方法だと、
頂点シェーダによるスキニングも2回行われることになると思います。
同じジオメトリに対して同じスキニングは二度手間なので、1回で済ませる方法があれば知りたいです。
DirectX10以降のAPIを使用すれば、ストリーム出力を使えばどうにかできそうな気がするのですが、
DirectX9では何かよい方法が無いのでしょうか?

ここで質問するような内容ではないのかもしれませんが、他に質問できそうな掲示板が見当たらなかったので、ここで質問させていただきました。
ちなみに、実装環境はWindows7のVisualC++2012Expressです。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: ライトプリパスレンダリングと頂点シェーダスキニングについて

#2

投稿記事 by ISLe » 13年前

ライトプリパスは、ジオメトリパスを2回行うことによって、Gバッファの容量を減らすものです。
遅延シェーディング(遅延レンダリング)ではジオメトリパスは1回で済みますが必要なGバッファの容量は増えます。

頂点シェーダが2回動くことを気にする意味がよく分かりません。
そもそもジオメトリパスで重いシェーダを無駄に動かさないで全体の処理を軽くしようという技術ですよね。

マルチプルレンダーターゲット(MRT)で同時出力できる数が違うくらいで基本的には9も10以降もほとんど変わらないと思いますが。

ろびん

Re: ライトプリパスレンダリングと頂点シェーダスキニングについて

#3

投稿記事 by ろびん » 13年前

すいません、ちょっと勘違いしていたようです。
スキニング後の頂点座標を取得できれば、2回目の描画時に頂点シェーダでの計算を短くできると思っていたのですが、
行列の積一回分しか変わりませんね。素直に2回頂点シェーダを動かして問題なさそうです。
失礼しました。

閉鎖

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