opengl中纹理的位置

opengl中纹理的位置,opengl,textures,Opengl,Textures,我有一个关于如何声明立方体上纹理的点的问题 确切地说,我指的是: glTexCoord2f(x.f, y.f); 就正面而言,我的声明有效: glBegin(GL_POLYGON); //Vorderseite glNormal3f(0.0f, 0.0f, 1.0f);//normale für vorderseite glTexCoord2f(0.0f, -1.f); glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,+f

我有一个关于如何声明立方体上纹理的点的问题

确切地说,我指的是:

glTexCoord2f(x.f, y.f);
就正面而言,我的声明有效:

glBegin(GL_POLYGON);   //Vorderseite
        glNormal3f(0.0f, 0.0f, 1.0f);//normale für vorderseite

    glTexCoord2f(0.0f, -1.f);
    glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);

    glTexCoord2f(1.f, -1.f);
    glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);

    glTexCoord2f(1.f, 0.0f);
    glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f); 

    glTexCoord2f(0.0f, 0.0f);
    glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    glEnd();
但对于右侧,它不起作用,我建议我需要其他参数,对于glTexCoord2f,但我不知道一个

glBegin(GL_POLYGON);   //Rechte Seite

    glNormal3f(1.0f, 0.0f, 0.0f); //normale für rechte seite

    glTexCoord2f(0.0f, -1.f);
    glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);

    glTexCoord2f(1.0f, -1.f);
    glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,-fSeitenL/0.0f);

    glTexCoord2f(1.0f, 0.0f);
    glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,-fSeitenL/0.0f);

    glTexCoord2f(0.0f, 0.0f);
    glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/0.0f);
    glEnd();
毕竟我关闭了“纹理声明”

提前谢谢

编辑:

正面与图片一起显示,另一面未显示,甚至连“立方边”也未显示。
现在我只使用一张带有随机空格的黑色图片,所以确切的位置并不重要,尽管我对如何正确设置glTexCoord2f很感兴趣。

它到底是如何工作的

如果纹理未显示或应用了错误的纹理,则意味着您必须使用glBindTexture()设置不同的纹理


如果纹理对齐不正确,则必须确保两个面之间共享的顶点具有相同的纹理坐标。

由于使用的是负纹理坐标(或者实际上是0..1范围之外的任何坐标),因此需要确保纹理包裹模式设置为“重复”

glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
如果将这些设置为GL_CLAMP,则任何小于0的值都将设置为0,任何大于1的值都将设置为1。但是,由于您正确地说出了模型纹理的第一部分,这可能不是您的问题


下一个最可能的问题是照明。如果使用
glDisable(GL\u照明)关闭照明整个模型是否显示?如果是这样,那么您需要确保有一个灯光面对模型的问题部分,或者向灯光添加环境光组件。

正面显示,带有纹理,另一面不显示,甚至不显示带有glDisable(GLU照明)的“地面”或“立方体边”;这里只显示了一面
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );