オブジェクトごとに設定されるいくつかのユニフォームを使用するフラグメントシェーダーがあります。これらのユニフォームをグラフィックカードに保存する方法はありますか?頂点バッファオブジェクトについて聞いたことがあります(ただし、チュートリアルは見つかりません)。新しいオブジェクトを描画するたびに変数を再設定する必要がないように、そこに情報を格納するためのトリックはありますか?
各オブジェクトには頂点がほとんどありませんが、完全に静的です。
オブジェクトごとに設定されるいくつかのユニフォームを使用するフラグメントシェーダーがあります。これらのユニフォームをグラフィックカードに保存する方法はありますか?頂点バッファオブジェクトについて聞いたことがあります(ただし、チュートリアルは見つかりません)。新しいオブジェクトを描画するたびに変数を再設定する必要がないように、そこに情報を格納するためのトリックはありますか?
各オブジェクトには頂点がほとんどありませんが、完全に静的です。
OpenGLの新しいバージョンには確かにUniformBufferObjectsがありますhttp://www.opengl.org/wiki/Uniform_Buffer_Object
すべてのオブジェクトに同じシェーダープログラムIDを使用する場合は、オブジェクトをレンダリングする前に一度だけユニフォームを設定できます。これは、オブジェクトを再度設定するまで、オブジェクトの値が同じままであるためです。たとえば、シェーダーソースをロードしてコンパイルするコードでは、すべてのオブジェクトに共通のユニフォーム変数を設定してから、オブジェクトをレンダリングし、オブジェクトごとのユニフォームのみを設定します。
オブジェクトごとに異なるシェーダーがあり、それらの間でデータを共有したい場合は、回答の1つにある均一バッファーのアイデアを使用できます。単一のシェーダーについて言及しているので、これはあなたの場合には必要ありません。