4

GLSL を使用して 3D エンジンを開発しており、ファー シェーディング エフェクトを追加したいと考えています。

ここに画像の説明を入力

「ファーシェーディング」テクニックを正しく説明するチュートリアルを見つけるためにいくつかの調査を行いましたが、私が見つけた最良のサイトは次のサイトです。

http://www.xbdev.net/directx3dx/specialX/Fur/

ただし、DirectX API と HSLS を使用します。しかし、要するに、OpenGL と GLSL に非常に近いものです。同じ数のシェーダーを使用して、いくつかのパスでシーンをレンダリングする必要があることを理解しました。スパイクの印象を与えるために、各レイヤーのアルファ値を下げただけです。したがって、最後のものはほとんど透明です。

ここに画像の説明を入力

たとえば、平面上に 5 つのレイヤーを持つファーをレンダリングしたい場合、シーンを 5 回レンダリングする必要があります。DirectX を使用すると、HLSL にはマルチパスでシーンをレンダリングするためのキーワード「pass」が統合されているため、OpenGL よりも簡単なようです。しかし、レンダリング バッファまたはテクスチャを使用して、OpenGL API で Frame Buffer Object (FBO) を使用する必要があると思います。シーンを数回レンダリングする必要があると思います。そのたびに、毎回異なるテクスチャにカラー バッファを登録します (すべて FBO またはテクスチャごとに複数の FBO にアタッチされます)。プロセスの最後に、前のテクスチャの重ね合わせの結果である一意のカラー バッファが作成されます。私の考えは正しいですか?

4

0 に答える 0