2011-03-09 12 views
1

私はWebGLとOpenGLについても比較的新しいですが、最近ではほとんどの時間を使い果たしました。しかし、熱波のようなものや何らかの歪みを実装したいと思った時、私は立ち往生しました。WebGLのひずみ/水

フラグメントシェーダーを使用してテクスチャリップルを作ることができますが、オブジェクトの背後にあるコンテンツを歪ませるようなときに何かが欠けているような気がします。すでにフラグメントシェーダー内でレンダリングされているピクセルの色を取得する方法はありますか?

私はテクスチャをレンダリングしようとしましたが、オブジェクトのテクスチャをそのままにしましたが、シーンをテクスチャにレンダリングすると表示されますが、スクリーンにもレンダリングできません。それを超えると、テクスチャにレンダリングしたい場合、そのテクスチャは2の累乗でなければなりません(多くの画面解像度はあまり適合しません)。

助けてください。

答えて

1

テクスチャにレンダリングし、そのテクスチャを歪ませて画面に描画する必要があります。また、フレームバッファオブジェクトがOpenGL ES 2.0(WebGLが使用するグラフィックスAPI)で2のべき乗のサイズでなければならないという要件はありません。しかし、非2のテクスチャは、ミップマッピングやテクスチャラッピングを行うことはできません。

+0

私はフレームバッファを描画して残りの要素を画面に描画する方法はないと思いますか?つまり、フレームバッファをテクスチャとしてレンダリングするために、正方形にする必要があると仮定します。しかし、フレームバッファを取って画面に直接適用することができます。 – Skiphs

+0

いいえ、あなたは手作業でそれをテクスチャ付きクワッドでスクリーンに描かなければならないでしょう。とにかくそれを歪める運動の全体的なポイントではありませんでしたか? – kusma

+0

はい、いいえ。私は非常に小さな領域だけを歪ませようとしています。 (つまり、火の上の歪み)、スクリーン全体を歪ませる必要はありません。 – Skiphs

関連する問題