I verwenden einen einheitlichen Block wie folgt aus:die Offsets in einem in mehrere UBO Shadern verwendet
uniform matrices
{
mat4 pv_matrix;
mat4 screen_matrix;
};
in verschiedenen Shadern mit der gleichen Bindungsstelle definiert explizit durch UniformBlockBinding
.
mit einem Uniform Buffer Objekt arbeiten müssen die Offsets auf diese Weise abfragen:
int offsets = new int[Length];
GL.GetActiveUniforms(id_program, Length, indices,
ActiveUniformParameter.UniformOffset, offsets);
Und ich nenne diesen Code für jedes Shader-Programm mit dem gleichen Ergebnis.
Wenn ich richtig verstanden habe, repräsentieren die Offsets die Struktur des einheitlichen Pufferobjekts, das eins für alle aufgerufenen Programme ist.
Macht es Sinn, viele Male anzurufen, oder sollte es genug sein, es zu nennen?