如何在opengl中将纹理应用到QUAD_STRIP?

时间:2009-05-15 14:03:28

标签: opengl

我正在尝试将纹理应用于2个方格,但我只能应用于第一个方格。

我使用原始QUAD__STRIP绘制正方形。继承人代码:    

glBegin(GL_QUAD_STRIP);
            glTexCoord2f(0.0,1.0);  glVertex3f(-1.0f * size, -1.0f* size, 0);    //1
            glTexCoord2f(0.0,0.0);  glVertex3f(-1.0f* size,  1.0f* size, 0);   //2
            glTexCoord2f(1.0,1.0);  glVertex3f(1.0f* size, -1.0f* size, 0);   //3
            glTexCoord2f(1.0,0.0);  glVertex3f(1.0f* size,  1.0f* size, 0);//4
                                    glVertex3f(3.0f* size,  -1.0f* size, 0);//5
                                    glVertex3f(3.0f* size,  1.0f* size, 0);//6

    glEnd();

glEnd();

2 个答案:

答案 0 :(得分:2)

当你看到这行代码时:

glTexCoord2f(0.0,1.0);  glVertex3f(-1.0f * size, -1.0f* size, 0);    //1

第一个语句, glTexCoord2f()指定要连接到指定顶点的纹理的哪个点( glVertex3f())。 对于每个顶点,您必须告诉纹理的哪个点映射到它。

您可以查看此处:GameDev.NET - OpenGL texture mapping: An introduction 特别是“纹理坐标系”的一部分。

希望这有帮助!

*编辑,同时尝试http://nehe.gamedev.net/!很多OpenGL教程/文章,教程第6课中有纹理映射。 :) (虽然这不是良好编码实践的一个很好的例子)

答案 1 :(得分:0)

您没有为第二个四边形上的最后2个顶点(5和6)设置纹理坐标。