OpenGL FrameBuffer オブジェクト(FBO)

GrafikaRecordFBOActivity を見ながら、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

コメント

このブログの人気の投稿

Mac → Mac のメールアカウントの移行

LiveData と MutableLiveData の使い分け

WireGuard の OpenWrt での運用