2012-04-07 5 views
2

OpenGL ES 1.1では、複数のテクスチャIDを取得して1つのtextureIdに結合したいと考えています。それで、私はこの結果のテクスチャを将来も何度も使うことができます。私のテクスチャソースは、スタックしたい透明なPNGである可能性があります。私はフレームごとに複数のテクスチャをレンダリングする必要がないので、これは大きな最適化になります。OpenGL ES 1.1 2つのテクスチャを1つの再利用可能テクスチャに結合する

私はwiki Texture_Combinersのような例を見ましたが、結果が再利用可能ではないようです。

また、画像を別のもので再利用可能なテクスチャにマスクする方法があれば、それも非常に役立ちます。

+0

結合テクスチャを頻繁に更新する必要がありますか? –

答えて

0

あなたがしたいことは、テクスチャにレンダリングすることです。 iOS向けに書いているのであれば、OES framebuffer extensionが利用できることが保証されているので、それを使うことができます。 Androidや他のプラットフォーム向けに書いている場合は、その拡張機能が利用可能かもしれませんが、保証されません。利用できない場合は、glCopyTexImage2Dにフォールバックすることができます。

最初のケースでは、色バッファとしてテクスチャを持つフレームバッファを作成します。それをレンダリングして別のフレームバッファに切り替えると、以後テクスチャから描画できます。

2番目のフレームバッファに描画したい場合は、glCopyTexImage2Dを使用して現在のカラーバッファからテクスチャにコピーします。これはコピーであるため少し遅くなりますが、レンダリングされたコンテンツを読み込んで自分でアップロードするよりもずっと速いでしょう。

ES 2.0は、フレームバッファ拡張に含まれる関数を必須にするため、ES 2.0対応GPUは拡張機能をサポートする可能性が非常に高いです。

+0

私はAndroid 2.2をターゲットにしています。 – user1318504

+0

次に、 'glCopyTexImage2D'を使うか、実行時にframebuffer拡張子を調べるかのいずれかが必要です。私が知っているすべてのハードウェアはそれをサポートすることができます。本当に欠けている唯一の理由は、携帯電話メーカーがAndroidの構築を怠っているかどうかということです。 – Tommy

関連する問題