HLSL-2Dでの影の作成


7

シャドウを作成する方法は、次のテクニックです。http//www.catalinzima.com/2010/07/my-technique-for-the-shader-based-dynamic-2d-shadows/

しかし、HLSLに質問があります。私が現在行っている方法は、白黒の画像です。ここで、黒は「オブジェクト」を意味し、白は「何もない」を意味します。次に、チュートリアルのように画像を変形します。これはピクセルシェーダーで行いますが、画面にレンダリングするのではなく、テクスチャにレンダリングして、アプリケーションに戻します。次に、これを取得して影を作成し、グラフィックカードに送り返して歪みを元に戻します。影が追加された後、これが戻ってきて、影のステンシルがあります。これを元の画像の上に配置してグラフィックスカードに送り返すと、画面に表示されます。

私にとってこれはたくさんのやり取りです。これを回避する方法はありますか?

私が抱えている問題は、基本的にテクスチャのすべての位置を3回通過し、元のテクスチャの代わりに毎回新しい新しいテクスチャを使用する必要があることです。パスを読み上げてみましたが、正しい方向に進んでいるとは思いません。

助けて?

回答:


2

私はかなり長い間カタリンの方法を研究してきました。この方法の問題は、ピクセルが完璧であることです。効果は大きいものの、機能するにはピクセルシェーダーで多大な作業が必要です。

シャドウを作成するより高速な方法は、頂点シェーダーを使用することです。私はクリプトンを試してみましたが、それを使用するためだけにコンテンツにシャドウメッシュを追加することを考えています。 ビデオ


0

あなたができる最高のことは、2つのライトを持つことです。

後のステップの1つで、水平位置の歪みが赤のチャネルに保存され、垂直位置が緑のチャネルに保存されていることに気付くでしょう。青とアルファチャネルは現在使用されていません。つまり、このシェーダーを2つの光源で実行できます。

これは非常に複雑で高価なシェーダーなので、1ステップを超えるカットアウトはできないと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.