2016-12-31 8 views

答えて

6

8ビットグレースケールの場合はVK_FORMAT_R8_UNORM、倍精度浮動小数点グレースケールの場合はVK_FORMAT_R16_SFLOAT、単精度浮動小数点グレースケールの場合はVK_FORMAT_R32_SFLOATなどの任意の単一チャネルフォーマットを使用します。

あなたのニーズに合わせてサポートされているものを選んでください。

+0

答えは正しいです。 GL_LUMINANCEはグレースケール以外の意味を持ちます。それはアクセスするときr = g = b = aである。それはイメージフォーマットではなくイメージビューに関するものです。 –

4

ラチェットフリークは質問に正しく答えます。しかし、なぜ輝度が消えているのか疑問に思っているのであれば、Khronos here in EXT_texture_rgから、現代​​のグラフィックスAPIでは、輝度と輝度 - アルファのフォーマットがRedとRed-Greenのフォーマットに置き換えられた理由があります。

歴史的には、輝度または輝度アルファ(L/LA)形式を使用して、OpenGL ESで1成分と2成分のテクスチャが指定されています。プログラマブルシェーダとレンダリングテクスチャ機能の出現により、これらのレガシーフォーマットは、もはや有用ではない歴史的なアーティファクトをいくつか持ちます。

たとえば、このようなテクスチャからサンプリングする場合、ルミナンス値はカラーコンポーネント間で複製されます。これはプログラマブルシェーダではもはや必要ありません。

フレームバッファオブジェクト(FBO)などの機能を使用して1コンポーネントおよび2コンポーネントのフォーマットテクスチャにレンダリングすることも可能ですが、L/LAフォーマットへのレンダリングは不十分です(具体的にはR/L/Aテクスチャチャネルに対するG/B/A値)。

関連する問題