2012-03-22 18 views
0

私は一度に複数のイメージをレンダリングする必要があるビューを持っており、多くのテクスチャを扱うことができます。 問題は、ある時点で限られた量の画像をキャッシュするため、テクスチャが変化しているので、その場でテクスチャをロードする必要があるため、レンダリングが非常に重くなってしまいます。 どうすればこの問題を回避できますか?OpenGL ES 2.0動的テクスチャをロードする

+0

どのようなタイプの圧縮を使用していますか? – Maz

+0

565の設定でMediaStoreを使ってサムネイルを読み込んでいます。もしそれが意味するのであれば... 圧縮はどのように使いますか? – saarraz1

答えて

0

圧縮は、画像を使用可能な形式にするために圧縮アルゴリズムを実行するのに時間を費やす必要があるため、実際にあなたを後押しします。

どのくらいのテクスチャで作業していますか、どのサイズですか?

テクスチャが小さい場合は、いくつかのテクスチャを1つの大きなテクスチャに詰め込み、テクスチャ座標を使用して正しいテクスチャを選択します。これは、glGenTextureとglBindTextureを何回行う必要があるかを減らします。また、テクスチャがどのようにアクセスされるかについてのパターンがあれば、それを利用してテクスチャをより大きなテクスチャにインテリジェントにグループ化することができます。

テクスチャの内容に関する変更やその他の変更などの追加情報を提供できる場合は、さらに役立つ回答を得ることができます。

+0

テクスチャはSDカードの画像で、平均で約500x500ピクセルです。それらは、正方形の画像のグリッド内に提示される。それらは、別々のロードスレッドによって重要度の高い順にロードされ、GLスレッドに渡されてGLコンテキストにロードされます。私は、各行がGLテクスチャであるように行にグループ化しようとしましたが、問題は、メディアストレージからロードされたビットマップを行テクスチャを保持するビットマップに描画する必要があることです。テクスチャの読み込み時間に引き戻され、新しいビットマップが追加されたときに行テクスチャをリロードする必要があります。 – saarraz1

+0

正しく理解していれば、各行テクスチャに対して、AndroidのCanvasクラスを介してメディアストレージから小さな画像(サムネイルなど)をオーバーレイする必要がありますか?このような場合は、OpenGLで行のテクスチャを描画してから、その上にサムネイルを描画してください。次に、2つのテクスチャを混在させるためにキャンバスクラスに行く必要はありません。 – MyReliableSchreck

関連する問題