RGBAテクスチャが1024 x 1024で読み込まれています。オンメモリテクスチャサイズが1024 x 1024 x 4 => 4 MBになると予想しました。しかし、私がメモリ消費量を印刷しようとすると、テクスチャが約7 - 8 MB、ほぼ倍増していることがわかります。 IPadがすべてのチャンネルをバイトからハーフフロートに変換するかどうかは疑問だった すべてのピクセルが8バイトではなく4バイトをとるように指定する方法はありますか?iPad OpenGL ES:メモリテクスチャサイズ
答えて
あなたがタイプと内部形式あなたはglTexImage2Dを使用して作成し、あなたのテクスチャのを指定する必要があります。
あなたはおそらくGL_FLOATなどに設定されています。ここ
参照ドキュメント:私はこれらがESでサポートされているかはわからないが、http://www.opengl.org/sdk/docs/man/xhtml/glTexImage2D.xml
glTexImage2Dのtype引数は、テクスチャデータを作成するCPU配列の型を指定します。内部フォーマットにのみ依存するGPUのデータには影響しません。 –
さらに、GL_FLOATを指定しても、少なくとも16 MBになります。 –
それを指定する最も簡単な方法は、(代わりにGL_RGBAのGL_RGBA8など)サイズの内部フォーマットを使用しています。しかし、ESデバイスがチャンネルあたり8ビット以上の標準RGBAテクスチャを保存するなら、私は驚くでしょう。
どのようにGPUのメモリ消費量を決定しますか? VBOのような他の重要なGPUリソースや、フレームバッファ自体(レンダリングするメモリ)を忘れないように、追加のメモリが妥当な量のメモリを必要としていると推測します。また、ミップマップを使用する場合は、基本テクスチャのメモリの約33%が追加で必要になります。
あなたがテクスチャを作成するCPUデータのサイズについて言えば、これはテクスチャのサイズとは何の関係もなく、自分のデータのサイズにのみ依存します。
@downvoter downvoteの理由は?確かに、私はESデバイスのハードウェアアーキテクチャに適合しないかもしれませんが、特に間違っていたことを知りたいと思います。それとも、私はその質問を誤解したでしょうか? –
- 1. iPhone/iPad、OpenGL ES、CADisplayLink
- 2. iPhone OpenGL ESペイントアプリブラシエフェクト
- 3. iPhone/iPadキーボードをフルスクリーンで表示する方法OpenGL ESアプリ
- 4. OpenGLまたはOpenGL ES
- 5. OpenGL-ESへのOpenGL - glBegin();
- 6. OpenGLフォグとOpenGL ESフォグ
- 7. OpenGL vs OpenGL ES(GLcharなど)
- 8. OpenGL ESとOpenGL互換シェーダ
- 9. OpenGL ESシェイクエフェクト
- 10. 2D OpenGL ESアーキテクチャ
- 11. OpenGL ESテクスチャレンダリング
- 12. のOpenGL ESシェーダマルチテクスチャ
- 13. OpenGL ESのソースファイル
- 14. のOpenGL ES FBO
- 15. のOpenGL-ES 2
- 16. のOpenGL ES 2.0
- 17. OpenGL ESのインデックス
- 18. OpenGL ESのスワップピクセル
- 19. OpenGL ESのクォータニオン
- 20. android opengl esスケール
- 21. OpenGL ESテクスチャメモリ
- 22. OpenGL ES 2.0テクスチャ
- 23. OpenGL ESテクスチャマスキング
- 24. OpenGL ESテクスチャマッピングオーバーフロー
- 25. glPushMatrixとOpenGL ES
- 26. Swift OpenGL ESアプリテンプレート?
- 27. OpenGL ES 1.1フォントオーバーテクスチャ
- 28. OpenGL ESデプスバッファ
- 29. OpenGL ESのクロスプラットフォームレンダラー
- 30. Android OpenGL ESカラーバイトオーダー
2048x1024のテクスチャを間違って読み込んだり(またはパディングアウトしていない)本当にありますか? – bobobobo