2016-07-15 5 views
2

vkCreateImageと3コンポーネント画像(rgb)を使用しようとしています。 しかし、すべてrgbフォーマットが与える:3つのコンポーネントを持つVulkan vkCreateImage

vkCreateImage format parameter (VK_FORMAT_R8G8B8_xxxx) is an unsupported format

をこれは私がメモリ内のデータを再形成する必要があることを意味していますか?だから、それぞれ3の後に空のバイトを追加し、それをRGBAとしてロードしますか? 私もR8R8G8のフォーマットが動作することに気付いたので、3が2の累乗ではないため、RGBはサポートされていません。

実際にこのデータを再構成する前に、これが唯一の方法であることを確認してください。性能があまり良くないため、読み込みに役立つオフセットやパディング値があるかもしれませんRGBデータをRGBA形式に変換します。だから誰かがRGBAへの再構成を確認することができますRGBフォーマットをロードするために必要なステップです(オーバーヘッドは33%ですが)?

ありがとうございます。

答えて

1

まず、のどの部分がサポートされているかを確認してから、イメージを作成しようとしています。あなたはあなたを止めるために検証層に頼るべきではありません。それはあなたがチェックするのを忘れたときに何かをキャッチするためのデバッグ援助です。サポートされているものとサポートされていないものは、静的ではなく動的です。それはあなたの実装に基づいています。したがって、使用するフォーマットが利用可能かどうかをアプリケーションが起動するたびに尋ねなければなりません。

そうでない場合は、それに応じて計画する必要があります。

実装が3チャネルフォーマットをサポートしていない場合は、4チャネルフォーマットでエミュレートする必要があります。新しいフォーマットに合わせてデータを再調整する必要があります。

そうしたくない場合は、画像を読み込み、不透明なアルファ1.0を追加してもう一度保存するために使用できる画像エディタがあると思います。

+0

サポートの一般的なチェックは次のとおりです。 https://i.gyazo.com/7f56cdef5023147ac7bacf7264ead096.png(最適なタイリングが必要な場合) – Aedoro

関連する問題