過去我曾經將紋理綁定到QUADS,然後使用它進行渲染。如果我有一個動畫,我必須綁定到圖像的特定部分,然後我只需使用通用座標[0..1]即可。將紋理與GL_TRIANGLES結合
現在的問題是我再次嘗試openGL,我已經看到GL_QUADS被棄用,現在我看到的所有正在呈現與三角形。我的問題是我不知道如何使用三角形綁定紋理。
由於
過去我曾經將紋理綁定到QUADS,然後使用它進行渲染。如果我有一個動畫,我必須綁定到圖像的特定部分,然後我只需使用通用座標[0..1]即可。將紋理與GL_TRIANGLES結合
現在的問題是我再次嘗試openGL,我已經看到GL_QUADS被棄用,現在我看到的所有正在呈現與三角形。我的問題是我不知道如何使用三角形綁定紋理。
由於
下面是一個例子,你可如何結合紋理爲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);
代替單一的四邊形,分割成四三角形2,類似切割的對角線的四邊形。例子很多存在,計算器最近的討論低於:
您的示例是okey,但代碼使用的是不推薦使用的功能。應該使用'glVertexAttribPointer'代替。 –