2010-12-04 23 views
5

どのようにすればいいですか?今私はキューブマップを動的に生成しました。これはトーラスの反射テクスチャとして使用します。キューブマップをぼかす

両側を別々にぼかしても、そのトリックはありませんか?ボーダーの近くにあるピクセルのために、近隣の人からのぼやけの影響を受けません。

FBOを作成してバインドし、スクリーンにキューマップを「展開」し、基本的なぼかしシェーダを適用し、そのぼかしたテクスチャを6面に分ける必要がありますか? "分かち合う"部分をどうやって行うのか分かりません。

答えて

4

キューブマップをぼかしますか?それはかなり難しいです。

数学的に正しいガウスぼかしを実行するには、周波数領域(球面調和関数)に変換し、そこにローパスフィルタを適用して逆変換を行う必要があります。これは単純な作業ではありません。

近似すれば、次のようになります。

  1. 空の宛先キューブマップを作成します。
  2. キューブの各顔Fについて、顔Fと、このような他の4面からの隣接画素をレンダリングする:隣接する画素の

    ___________ 
    |\   /| 
    | \  /| 
    | \-----/ | 
    | |  | | 
    | | F | | 
    | |  | | 
    | /-----\ | 
    |/  \ | 
    |/_________\| 
    

    量は、ぼかし半径に依存します。

  3. お気に入りのぼかしアルゴリズムを適用します。
  4. Fを宛先キューマップにコピーします。
  5. 顔ごとに2-4を繰り返します。
+0

これは "球面的に正しい"結果には必要かもしれないが、実際には "平坦な"立方体マップ上の単純なガウスのぼかしとは区別でき、 ? – Kos

+0

@Kos:2番目の提案は、球形的に正しいものではなく、顔の真ん中にbluredと表示されます。また、これはシーム上の隣接ピクセルを処理する最も簡単な方法です。 – ybungalobill

+0

私はそれが正しくないことを理解します、私の質問は "それは*知覚可能ではありません*間違っています"です。例えば、Phong-Blinnの鏡面照明モデルは「正しい」わけではありませんが、まだよく見えます。 – Kos

関連する問題