2

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

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

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

4

1 に答える 1

0

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

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

次に、使用しているフレーム バッファに描画しglCopyTexImage2D、現在のカラー バッファからテクスチャにコピーします。これはコピーであるため少し遅くなりますが、レンダリングされたコンテンツを読み戻して自分でアップロードするよりもおそらくはるかに高速です。

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

于 2012-04-07T02:50:41.800 に答える