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
1. glReadPixels