2017-09-12 101 views
0

用於我用一個均勻的塊這樣的:在一個UBO偏移在多個着色器

uniform matrices 
{ 
    mat4 pv_matrix; 
    mat4 screen_matrix; 
}; 
與由 UniformBlockBinding明確定義相同的結合點不同着色器

以均勻的緩衝區對象的工作需要查詢偏移是這樣的:

int offsets = new int[Length]; 
GL.GetActiveUniforms(id_program, Length, indices, 
ActiveUniformParameter.UniformOffset, offsets); 

而且我把這個代碼具有相同的結果每個着色器程序。

如果我理解正確,偏移量表示統一緩衝區對象的結構,它是所有被調用程序的結構。

是否有意義多次調用或應該足夠稱它爲?

回答

3

默認情況下,在shared排序中佈置統一塊。因此,您只需在一個程序中查詢佈局;任何塊聲明也是shared,並且完全匹配那個將具有相同的佈局。

或者你可以只使用std140佈局,而不是查詢什麼。