Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 使用GL_三角形绑定纹理_Opengl_Render_Gl Triangle Strip - Fatal编程技术网

Opengl 使用GL_三角形绑定纹理

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

在过去,我习惯于将纹理绑定到四边形,然后用它进行渲染。如果我有一个动画,其中我必须绑定到图像的特定部分的四边形,那么我只需要使用通用坐标[0..1],仅此而已

问题是,现在我再次尝试使用openGL,我看到GL_四边形被弃用,现在我看到的只是用三角形渲染。我的问题是我不知道如何使用三角形绑定纹理


谢谢,将四边形拆分为两个三角形,类似于在对角线上切割四边形,而不是单个四边形。有很多例子,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应改为使用。