glReadPixels

最終更新日07 Dec 2017 06:20

フレームバッファからピクセルデータを読み込む関数。

glReadPixels(x, y, width, height, format, type, data);

x 取得する座標
y 取得する座標
width 取得する範囲
height 取得する範囲
glPixelStorei(GL_PACK_ALIGNMENT,1);

が関連してくる。

使用例

unsigned char data[4];
glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data);
    std::cout << "R: " << (int)pixel[0] << std::endl;
    std::cout << "G: " << (int)pixel[1] << std::endl;
    std::cout << "B: " << (int)pixel[2] << std::endl;
    std::cout << std::endl;

もし上記のようにtypeをGL_UNDIGNED_BYTEに指定したら、
各要素は$2^8-1$倍になる。
formatをGL_RGBAにしたら1ピクセルあたり4要素のデータが返ってくる。
GL_ALPHAを指定したら、1ピクセルあたり1要素になる。

どのバッファを読むのか?

もし何も指定しなかったらGL_COLOR_ATTACHMENT0、つまり現在画面に見えているそのままのバッファを読むことになる

Bibliography


ファイル

サポートサイト Wikidot.com