3

私は MS WindowsXP で作業しています。私のビデオ カードは itel GMA4500 です。私のコードは次のとおりです。

glClearStencil(0);
glClear(GL_STENCIL_BUFFER_BIT);

unsigned char* data = new unsigned char[width*height];
glPixelStorei(GL_PACK_ALIGNMENT,1);
glReadPixels(0,0,width,height,GL_STENCIL_INDEX,GL_UNSIGNED_BYTE,data);

しかし、データ バッファーを確認すると、バイトがすべてゼロではないことがわかります。何が問題なのですか?


はい、確かにステンシル バッファがあり、glReadPixels を呼び出した後、glGetError をチェックしましたが、エラーはありませんでした。また、memset を使用してデータ バッファーをゼロで埋めようとしましたが、結果は変わりませんでした。

4

2 に答える 2

5

実際にステンシルバッファはありますか?そうでない場合、glReadPixelsはエラーを発生させ(glGetError(…)をチェック)、ターゲットバッファの内容を変更しないままにします。

于 2011-08-16T16:57:38.633 に答える
0

使うつもりでしたか

glPixelStorei(GL_UNPACK_ALIGNMENT,1);

ステンシルバッファからコンテンツを取得しようとしているので?

于 2011-08-16T17:04:41.240 に答える