2013-09-21 128 views
0

我試圖創建一個z = y^2 - x^2的網格來進行單向評估。我創建了一個矩陣數組來保存我想繪製的方位角GL_LINE_STRIPS,調用sqaureMatrix[100]。我想知道的是我如何將它發送到頂點着色器並顯示它。OpenGL,發送矩陣到頂點着色器並顯示GLSL

我會放一些代碼低於該如何IVE一套東西說起來至今

asessment.cpp

mat4 squareMatrix[100]; 

// this is in general how i fill the matrix 

mat4 pseudo = mat4 

(
vec4(1,1,1,1), 
vec4(1,1,1,1), 
vec4(1,1,1,1), 
vec4(1,1,1,1) 
); 

// loop through and actually add to the squarematrix like 

squareMatrix[0] = pseudo; 

vshader.glsl

uniform mat4 mMatrix; 


void 
main() 
{ 
    for (int i = 0; i < 100; i++) 
    { 
     gl_Position = mMatrix[i]; 
    } 
} 

那麼你得到它的精神。矩陣設置良好。我想我只是將它加上來澄清一些事情。

+0

在大多數配置文件中,頂點着色器只需要支持1024個統一組件。一個100'mat4's數組使用1600.我不完全確定你在這裏做什麼,但這當然不可能。 –

回答

1

那麼,你已經有了陣列。因此,您將OpenGL指向它作爲頂點數組(或者將其複製到頂點緩衝對象,然後將其引用爲頂點數組)。谷歌的這些條款,以瞭解他們做什麼。它們是每個現代OpenGL教程的一部分。然後你從這些數據中抽取OpenGL。

碰巧我只是最近添加了一個minimal VBO example to my codesamples GitHub repository,以迴應另一個StackOverflow問題。它也符合你的問題。