2017-11-17 3 views
0

ブールデータの使用に単にR8Uint形式を使用した例をいくつか見てきました。しかし、ストレージを節約する他のソリューションはありますか?ブールデータストレージに最適なバッファテクスチャ形式?

+0

[有効なバッファテクスチャ形式](https://www.khronos.org/opengl/wiki/Buffer_Texture#Image_formats)のリストは長くありません。そこから選択するものはあまりありません。正確にあなたのアドバイスが必要ですか? –

+0

@NicolBolas私は他の返答で私の質問を指定しました。ビットのパッキング/アンパック操作のパフォーマンスへの影響についての洞察があれば、それは理解できます。 –

答えて

0

まあ、最小のフォーマットは1バイトです。
明らかに:あなたの状況によっては、そのバイトに8ビット(ブール値)をパックすることができます。

+0

真。私はデータを異なる精度のフォーマットにパックするコードについて読んだ。しかしブーリアンのためにそれをやっている誰も見ていない。だから私はすべての実行可能なソリューションと、そのような状況でシェーダのパッキング/アンパック操作がパフォーマンスを犠牲にするかどうかを知りたかったのです。 –

+1

シェーダには実際には特有ではありません。これはプレーンなC++にも関係します。ビットフィールドへの/からの1つの 'bool'のパッキング/アンパックは、ちょうど1つのbitwise-&(通常は最速のopがあります)です。小さなメモリはキャッシュ(シェーダの/テクスチャの読み込み)を助けるかもしれないので、場合によってはいくつかのパフォーマンスを取り戻すことができます。 – krOoze

関連する問題