OpenGLのオフスクリーンフレームバッファオブジェクトにレンダリングして、イメージとして保存したい。 FBOが表示サイズより大きいことに注意してください。私は、オフスクリーンのバッファにレンダリングして、テクスチャとして使うことができます。私はこの大きなテクスチャをオフセットを使ってディスプレイにスクロールすることができます。これは、私がウィンドウよりも大きなコンテキストにレンダリングすることを私に自信を持たせるものです。OpenGL FBOをウィンドウより大きく保存する問題
オフスクリーンバッファを画像ファイルに保存すると、常に切り取られます。
void ofFBOTexture::saveImage(string fileName) {
glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
// get the raw buffer from ofImage
unsigned char* pixels = imageSaver.getPixels();
glReadPixels(0, 0, 1024, 1024, GL_RGB, GL_UNSIGNED_BYTE, pixels);
imageSaver.saveImage(fileName);
}
(ピクセルフォーマット、GL_RGB問題等に誤りがないことを意味する)画像のコンテンツがトリミングされ、可視部分が正しく保存されていることを、注意してくださいが、残りの空間である。節約のためのコード断片であります1つの色で満たされています。
私の質問は - 私は間違っているのですか?
私はあなたと同じ問題を抱えています。 fbo変数の取得方法を拡張できますか?私はglGenFrameBuffersにアクセスするために何を含めるべきかを見つけることができません。これは私が使用していると思われるものです。 –
1.ここには良い説明があります:http://www.songho.ca/opengl/gl_fbo.html – razong
2. GLuint fbo; glGenFramebuffersEXT(1、&fbo);)作成するfboの番号 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT、fbo); – razong