5

iOS 4.3 で OpenGL ES2 の深度バッファ値を読み取れないようです

afDepthPixels = (float*)malloc(sizeof(float) * iScreenWidth * iScreenHeight);
glReadPixels(0, 0, iScreenWidth, iScreenHeight, GL_DEPTH_COMPONENT, GL_FLOAT, afDepthPixels);

私の深度バッファは現在、所定の位置にバインドされて動作していますが、その関数は 0 値しか読み取らず、ほとんどすぐに返されるようです。GL_RGBA を指定すると、かなり時間がかかり、実際に結果が返されます。この機能は、iOS の ES2 ではサポートされていませんか?

ありがとう!

4

1 に答える 1

5

ご想像のとおり、深度バッファーの読み取りは ES 2.x ではサポートされていません。glReadPixels のman ページ(Khronos から直接) によると、ES 2 で「フォーマット」に許可される値は、GL_ALPHA、GL_RGBA、および GL_RGB のみです。

メモリから、デプス テクスチャは iOS の最近のバージョンでサポートされているため、ピクセル シェーダーを実行してデプス バッファーを RGBA として読み取ることができるものに変換することができるはずです。

于 2011-07-04T02:19:00.090 に答える