1

適用されたエフェクトのライブ プレビューを表示しながら、CameraCaptureActivity がビデオを記録するデモアプリGrafika について言及しています。

CameraCaptureActivity での記録中に、カメラからのフレームに適用される効果は 2 回実行されます。
プレビュー用に 1 回、ビデオをファイルに保存するときに 1 回。

プレビューされている同じフレームがファイルに保存されるため、これを 1 回だけ行うことができれば、多くの処理を節約できます。

フレームのレンダリングは、2 つのサーフェスで直接行われます。1 つは GLSurfaceView (プレビュー用) で、もう 1 つは MediaCodec (保存部分) です。

OpenGL 効果を一度だけレンダリングする方法はありますか?

1 つのサーフェスの内容を別のサーフェスにコピーできれば、それは素晴らしいことです。
これを行う方法はありますか?

4

1 に答える 1

0

はい: FBO にレンダリングしてから、出力を 2 回 (表示用に 1 回、記録用に 1 回) ブリットできます。

Grafika の「GL アプリの記録」アクティビティは、問題に対する 3 つの異なるアプローチを示しています (そのうちの 1 つは GLES 3.0+ でのみ機能します)。doFrame()メソッドが作業を行います。draw-once-blit-twice アプローチは現在ここにあります

于 2015-05-28T15:47:27.317 に答える