Opengl 使用GL_三角形绑定纹理
在过去,我习惯于将纹理绑定到四边形,然后用它进行渲染。如果我有一个动画,其中我必须绑定到图像的特定部分的四边形,那么我只需要使用通用坐标[0..1],仅此而已 问题是,现在我再次尝试使用openGL,我看到GL_四边形被弃用,现在我看到的只是用三角形渲染。我的问题是我不知道如何使用三角形绑定纹理Opengl 使用GL_三角形绑定纹理,opengl,render,gl-triangle-strip,Opengl,Render,Gl Triangle Strip,在过去,我习惯于将纹理绑定到四边形,然后用它进行渲染。如果我有一个动画,其中我必须绑定到图像的特定部分的四边形,那么我只需要使用通用坐标[0..1],仅此而已 问题是,现在我再次尝试使用openGL,我看到GL_四边形被弃用,现在我看到的只是用三角形渲染。我的问题是我不知道如何使用三角形绑定纹理 谢谢,将四边形拆分为两个三角形,类似于在对角线上切割四边形,而不是单个四边形。有很多例子,stackoverflow最近的讨论如下: 以下是一个示例,说明如何将纹理绑定到GL\u三角形\u条带中 flo
谢谢,将四边形拆分为两个三角形,类似于在对角线上切割四边形,而不是单个四边形。有很多例子,stackoverflow最近的讨论如下:
以下是一个示例,说明如何将纹理绑定到
GL\u三角形\u条带中
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);
您的示例没有问题,但代码使用的是不推荐使用的功能<代码>glvertexattributepointer应改为使用。