私は、ゲームのシーンのコンストラクタで、すべてのゲームデータを同時にロードしようとしています。しかし、テクスチャの読み込みは、OpenGLコンテキストでのみ動作するため、失敗します。たとえば、loadメソッドがdraw frameまたはsurfacechangedから呼び出された場合です。しかし、私は、ドローフレームが最初に呼び出されたときなどにテクスチャを読み込むのは醜いと思う。それで、どういうわけか私の読み込み部分をOpenGL関数から分離することが可能ですか?テクスチャをランダムにロードする
1
A
答えて
3
私はまったく同じ問題を抱えています。 私の解決策はproxy texturesです。これは、メモリまたはファイルのデータを使用してテクスチャを作成するときに、そのメモリデータまたはファイルパスのコピーを保持するダミーテクスチャを作成していることを意味します(高速ロードのためにデータをメモリにプリロードできます)。
その後、レンダラーがglBindTextureのようなbind()を呼び出すと、ロードするデータがあるかどうかをチェックします。存在する場合は、新しいテクスチャを作成してデータをロードします。
私の場合は、どのスレッドからでもいつでもテクスチャを作成できるので、このアプローチは私にとって最適です。
しかし、あなたはonSurfaceCreated
またはonSurfaceChanged
に同じバッファに適用されることだけで行うことができますすべてのテクスチャをプリロードしたい場合。
もう1つのアプローチは、ネイティブアクティビティを使用する方法です(NDKの例を参照)。この場合は、手動でコンテキストを処理できますが、APIレベル9が必要です。
1
しかし、ドローフレームが最初に呼び出されたときなどは、読み込みに醜いと思います。
実際に遅延テクスチャローディングは、最もエレガントな方法です。画面の読み込みを中断することなく世界を旅するゲームの重要な要素の1つです。すぐに全世界を一度に読み込もうとしないでください。すぐに目に見えるようになります。画素バッファオブジェクトを使用して、非同期で処理を行います。
関連する問題
- 1. XNAにテクスチャをロードするには?
- 2. OpenGL ES 2.0動的テクスチャをロードする
- 3. OpenGLテクスチャをSDLでロードする
- 4. TexturePacker(AndEngine)でテクスチャをロード
- 5. テクスチャをロードしていないASSIMPテクスチャ - QtのOpenGL
- 6. 非常に高いランダム性を含むテクスチャ画像の分類
- 7. 数十のテクスチャをロードした後にアプリケーションがクラッシュする
- 8. OBJ + MTLファイルからthree.jsのテクスチャをロードするには?
- 9. 透明領域PVRテクスチャがcocos2dに白をロードする
- 10. 3Dテクスチャをロード:Linux上のSDL/OpenGL Eclipse
- 11. AndEngineのテクスチャをロード中のプログレスバー
- 12. アルファ値のみのテクスチャをロード
- 13. GLKit&テクスチャにテクスチャを追加する
- 14. 効率的なOpenGLテクスチャのロードgxbase
- 15. "ページロード"でランダムな画像をロードするには
- 16. ランダムなテクスチャIDを使用しても構いませんか?
- 17. Android NDK。 .PVRファイルからETC1圧縮テクスチャをロードする
- 18. WebGL - テクスチャがロードされるのを待ちます
- 19. テクスチャをスクリーンバッファに描画せずにテクスチャをコピーする(opengl)
- 20. GoogleマップV2はランダムにマップをロードします。
- 21. COLLADAをロード - ジオメトリ、アニメーション、テクスチャ - 何が適用されますか?
- 22. ランダムなjsファイルをロードまたはリフレッシュする
- 23. テクスチャは3Dオブジェクト(マッピング)にロードされません
- 24. res内のファイルを使用してlibgdx androidにテクスチャをロードしますか?
- 25. OpenGLでauxDIBImageLoadを使用してbmpファイルをテクスチャとしてロード
- 26. java3dのロードされたOBJファイルにテクスチャを割り当てる方法
- 27. テクスチャからバッチノードをロードする最適な方法は何ですか?
- 28. OpenGLはメソッド内にロードされたテクスチャのみを表示しますか?
- 29. GL_RGBテクスチャをロードした後の変なカラーシフト
- 30. OpenGL:異なるテクスチャで同じテクスチャを再利用する