Mesh
ロード画面で libGDX ゲームのオブジェクトをプリロードしようとしています。独自のローダーの作成については、こちらのプロセスに従いました。だから私は基本的にlibGDXをコピーしてそれPixmapLoader
を呼び出しましたMeshLoader
。唯一の問題は、非同期であるため、 のMesh
作成時に OpenGL コンテキストを使用できないことです。Mesh
withを非同期にロードする方法を知っている人はいますAssetManager
か? SynchronousAssetLoader
の代わりにを正常に使用しましたAsynchronousAssetLoader
が、ロード画面で遅延が発生します。何か案は?
質問する
1045 次
1 に答える
2
AssetLoadingTask API、update() メソッド (AssetManager で使用) を参照してください。
/*Updates the loading of the asset. In case the asset is loaded with an
* AsynchronousAssetLoader, the loaders AsynchronousAssetLoader#loadAsync(AssetManager, String, AssetLoaderParameters)
* method is first called on a worker thread.
* Once this method returns, the rest of the asset is loaded on the rendering
* thread via AsynchronousAssetLoader#loadSync(AssetManager, String, AssetLoaderParameters).
したがって、 Pixmap をロードするときにメッシュを完全に非同期でロードすることはできません。後者は openGL アセットではないからです。
TextureLoader
ピクセル データを非同期的に (ピックスマップのように) ロードしてコピーし、レンダリング スレッドで同期的にテクスチャを作成することができます。
あなたができる最善のことは、頂点/インデックスを非同期的に計算し、バインディングを同期的に行うことです。
編集 コメントを読まない人のために... ObjLoader を使用して大きなメッシュをロードしている場合は、3 番目のコメントにある Kieran のアプローチに従うことができます。
于 2012-12-27T23:00:08.437 に答える