2014-02-16 45 views
0

過去我曾經將紋理綁定到QUADS,然後使用它進行渲染。如果我有一個動畫,我必須綁定到圖像的特定部分,然後我只需使用通用座標[0..1]即可。將紋理與GL_TRIANGLES結合

現在的問題是我再次嘗試openGL,我已經看到GL_QUADS被棄用,現在我看到的所有正在呈現與三角形。我的問題是我不知道如何使用三角形綁定紋理。

由於

回答

2

下面是一個例子,你可如何結合紋理爲GL_TRIANGLE_STRIP

float verts[] = { 
    0, 0, 
    w, 0, 
    0, h, 
    w, h, 
}; 

const float texcoord[] = { 
    u1 + 0 , v1 + v2, 
    u1 + u2, v1 + v2, 
    u1 + 0 , 0 + v2, 
    u1 + u2, 0 + v2 
}; 

/* 
1. uv(0,1) +-----+ 2. uv(1,1) 
       | /| 
       | /| 
       |/| 
       |/ | 
       |/ | 
3. uv(0,0) +-----+ 4. uv(1,0) 
*/ 

而且你可以把它當作簡單

glEnable(GL_TEXTURE_2D); 

glEnableClientState(GL_VERTEX_ARRAY); 
glEnableClientState(GL_TEXTURE_COORD_ARRAY); 

glTexCoordPointer(2, GL_FLOAT, 0, tex_coord); 
glVertexPointer(2, GL_FLOAT, 0, verts); 

glBindTexture(GL_TEXTURE_2D, texture_id); 
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 

glDisable(GL_TEXTURE_2D); 
+0

您的示例是okey,但代碼使用的是不推薦使用的功能。應該使用'glVertexAttribPointer'代替。 –