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