私は現在、UBOを使用してOpenGL 4.3でレンダリングして、すべての定数データをGPUに保存しています。(マテリアルの説明、マトリックスなど...)。それは機能しますが、UBO のサイズが小さい (私の実装では 64kB) ため、バッファを何度も切り替える必要があり、レンダリングが遅くなります。数 MB を保存する同様の方法を探しています。
少し調査した結果、SSBO はそれを正確に許可するだけでなく、不要な「機能」も備えていることがわかりました。それらはシェーダーから書き込むことができ、読み取りが遅くなる可能性があります。
シェーダーに大量のデータを提供するための SSBO よりも優れたソリューションはありますか? もっと多くのデータを処理できるより柔軟なソリューションが存在するのに、UBO を数 kB に制限する必要があるのはなぜですか? シェーダー ストレージ バッファーが探しているものである場合、シェーダーによって変更されないようにする方法はありますか?