後でまったく同じ状態とデータで復元できるように、任意のOpenGLテクスチャオブジェクトをシリアル化する必要があります。
テクスチャ画像データを取得する方法を探しています。これが私がこれまでに見つけたものです:
あり
glGetTexImage
ます。テクスチャ画像を取得することはできますが、変換を実行するための指定されたフォーマット/タイプのペア((
GL_RGB
、 )など)が必要です。GL_HALF_FLOAT
ただし、許可されている形式とタイプは1:1で画像形式にマッピングされておら
GL_R3_G3_B2
ず、追加の変換なしのように、よりあいまいな形式を取得することはできません。また、基本内部フォーマット(サイズなしなど)のCタイプを正しく決定するには、
GL_RGB
重要な労力が必要です。ARB_internalformat_query2
求めることができ、特定のテクスチャの最良の選択を表すものがありGL_GET_TEXTURE_IMAGE_FORMAT
ます。GL_GET_TEXTURE_IMAGE_TYPE
glGetTexImage
素晴らしいですが、同じ制限が
glGetTexImage
あり、広く利用可能ではありません。圧縮されたテクスチャのデータをそのままエレガントに返すという素晴らしい機能があり
glGetCompressedTexImage
ますが、非圧縮の画像では機能せず、対応するものもありません。
これらのいずれも、非圧縮テクスチャの生データを取得または設定することはできません。方法はありますか?