OpenGL FrameBuffer オブジェクト(FBO)
Grafika の RecordFBOActivity を見ながら、FBO(FrameBuffer Object)について勉強中。
- DRAW_TWICE (draw x2)
- レンダリング(描画処理;draw メソッド)自体を(デフォルト framebuffer と動画ファイル用に)丸々 2 回行っている。
- FBO (draw x1 + blit x2)
- オフスクリーン用の FBO にレンダリング(draw)を行い、それをデフォルト framebuffer と動画ファイルそれぞれに blit している。
- BLIT_FRAMEBUFFER (draw x1 + blit x1)
- GLES 3.0 の glBlitFramebuffer を使い、デフォルト framebuffer にレンダリング(draw)したものを、先に動画ファイルに blit してから、画面表示用に swap している。
draw は描画オブジェクトの数、blit は転送するデータ(画面)サイズに依るので、DRAW_TWICE がいいのか、それ以外が良いのか一概には言えない。だが明らかに、BLIT_FRAMEBUFFER(draw x1 + blit x1)は FBO(draw x1 + blit x2)より確実に効率が良さそうである。
他、参考:LearnOpenGL: Framebuffers
コメント
コメントを投稿