0

Android では、YUV420sp をフラグメント シェーダーに渡すために、データを YUV に分割する情報を渡し、各 sugin glTexImage2D を GL_LUMINANCE 形式で渡します。

しかし今、FBO が必要な Offscren-Rendering を実行する必要があります。問題は、FBO が GL_LUMINANCE をサポートしていないことです。

では、GL_LUMINANCE を使用せずに YUV データを渡す最良の方法は何でしょうか?

ちなみに、YUVをそのままGPUに渡すのがポイントなので、CPUでYUVを処理してRGBなどに変換することはできません。

編集: これは Android 用であるため、シングル チャネル GL_RED は実装されていないため機能しません。

4

1 に答える 1

1

GL_LUMINANCEプログラム可能なパイプラインでは完全に不要です。

最も基本的なレベルでは、固定機能パイプラインの時代にテクスチャのスウィズルを可能にするハックでした。最近GL_REDでは、シングル チャネル テクスチャに使用し、フラグメント シェーダーで好きなようにスウィズルできます。

複製したいのGL_LUMINANCEは: vec4 (texture (...).rrr, 1.0). を使用して、最近の OpenGL 実装の固定関数パイプラインでこれを行うこともできますARB_texture_swizzle

于 2013-09-08T01:42:49.037 に答える