0

glTexImage2D のドキュメントには、

GL_RED (GL の場合) / GL_ALPHA (GL ES の場合)。「GL はそれを浮動小数点に変換し、緑と青に 0、アルファに 1 を付けて RGBA 要素にアセンブルします。各コンポーネントは [0,1] の範囲にクランプされます。」

GL ES の仕様を読んで、GPU メモリが実際に 32 ビットと 8 ビットのどちらであるかが指定されているかどうかを確認しましたが、かなり曖昧なようです。テクスチャを GL_RED / GL_ALPHA としてアップロードすると、GPU で 8 ビットから 32 ビットに変換されるかどうかを確認できますか?

GL および GL ES の回答に興味があります。

4

2 に答える 2

3

GL ES の仕様を読んで、GPU メモリが実際に 32 ビットと 8 ビットのどちらであるかが指定されているかどうかを確認しましたが、かなり曖昧なようです。

まあ、それはそれです。実際の詳細は、実際の実装が決定するために残されています。仕様にこのような自由を与えることで、実際の実装に、ターゲット システムに合わせて厳密に調整された最適化を含めることができます。たとえば、特定の GPU はチャネルあたり 10 ビットのフォーマットでより適切に処理できる場合があるため、そのようなフォーマットに自由に変換できます。

したがって、一概に言うことはできませんが、特定の実装 (つまり、GPU + ドライバー) では、特定の形式が選択される可能性があります。どちらが GPU とドライバーに依存します。

于 2013-07-04T20:48:20.147 に答える