2013-12-15 19 views
0

我按照這個教程http://open.gl/textures? 我無法理解這些代碼片段,並沒有在我的visual studio項目中運行。 另外,什麼類型的格式是「在vec2」和「out vec3」?opengl-soil嘗試第一次放置紋理

in vec2 texcoord; 

out vec3 Color; 
out vec2 Texcoord; 

void main() 
{ 
    Texcoord = texcoord; 

....

glVertexAttribPointer(posAttrib, 2, GL_FLOAT, GL_FALSE, 
         7*sizeof(float), 0); 
glVertexAttribPointer(colAttrib, 3, GL_FLOAT, GL_FALSE, 
         7*sizeof(float), (void*)(2*sizeof(float))); 

GLint texAttrib = glGetAttribLocation(shaderProgram, "texcoord"); 
glEnableVertexAttribArray(texAttrib); 
glVertexAttribPointer(texAttrib, 2, GL_FLOAT, GL_FALSE, 
         7*sizeof(float), (void*)(5*sizeof(float))); 

回答

2

你報的第一部分應該是一個vertex shader。它寫在GLSL中,不應該被Visual Studio(或者其他任何C/C++編譯器)理解,而是GL實現的GLSL編譯器。您引用的其餘部分是GL客戶端代碼,它在主機CPU上執行,設置通用頂點屬性數組。

在嘗試減少紋理之前,您應該真正瞭解該教程的基本部分。着色器和通用屬性在上述教程的drawing lesson中介紹,這對所有以下所有內容都很重要。

+0

謝謝,我會檢查出來! – maria