【问题标题】:OpenGL Textured Cube Not Being Mapped CorrectlyOpenGL 纹理立方体未正确映射
【发布时间】:2013-08-06 01:03:10
【问题描述】:

几天前,我开始使用 opengl 1.1 开发一个小型体素游戏(我知道它已经过时了)。我使用 sfml 库来创建一个 opengl 上下文。我认为问题出在纹理坐标上,但我不确定。渲染代码:

    glPushMatrix();
    glBegin(GL_QUADS);
    glColor3f(0.5, 0.5, 0.5);
    //front
    glTexCoord2f(0, 0); glVertex3f(0, 0, 0);
    glTexCoord2f(1, 0); glVertex3f(0, 1, 0);
    glTexCoord2f(1, 1); glVertex3f(1, 1, 0);
    glTexCoord2f(1, 0); glVertex3f(1, 0, 0);
    //back
    glTexCoord2f(0, 0); glVertex3f(0, 0, 1);
    glTexCoord2f(1, 0); glVertex3f(0, 1, 1);
    glTexCoord2f(1, 1); glVertex3f(1, 1, 1);
    glTexCoord2f(1, 0); glVertex3f(1, 0, 1);
    glColor3f(0.6, 0.6, 0.6);
    //top
    glTexCoord2f(0, 0); glVertex3f(0, 1, 0);
    glTexCoord2f(1, 0); glVertex3f(0, 1, 1);
    glTexCoord2f(1, 1); glVertex3f(1, 1, 1);
    glTexCoord2f(1, 0); glVertex3f(1, 1, 0);
    //bottom
    glTexCoord2f(0, 0); glVertex3f(0, 0, 0);
    glTexCoord2f(1, 0); glVertex3f(0, 0, 1);
    glTexCoord2f(1, 1); glVertex3f(1, 0, 1);
    glTexCoord2f(1, 0); glVertex3f(1, 0, 0);
    glColor3f(0.7, 0.7, 0.7);
    //left
    glTexCoord2f(0, 0); glVertex3f(0, 0, 0);
    glTexCoord2f(1, 0); glVertex3f(0, 1, 0);
    glTexCoord2f(1, 1); glVertex3f(0, 1, 1);
    glTexCoord2f(1, 0); glVertex3f(0, 0, 1);
    //right
    glTexCoord2f(0, 0); glVertex3f(1, 0, 0);
    glTexCoord2f(1, 0); glVertex3f(1, 1, 0);
    glTexCoord2f(1, 1); glVertex3f(1, 1, 1);
    glTexCoord2f(1, 0); glVertex3f(1, 0, 1);
    glEnd();
    glPopMatrix();

这是游戏中的木材纹理之一:

这是木材纹理的图像:

它的映射真的很奇怪。怎么了?有人可以发布一个普通纹理立方体的示例吗?

【问题讨论】:

    标签: c++ opengl


    【解决方案1】:

    尝试更改您的代码:

    glTexCoord2f(0, 0); ...
    glTexCoord2f(1, 0); ...
    glTexCoord2f(1, 1); ...
    glTexCoord2f(1, 0); ...
    

    进入

    glTexCoord2f(0, 0); ...
    glTexCoord2f(1, 0); ...
    glTexCoord2f(1, 1); ...
    glTexCoord2f(0, 1); ... (changed this line)
    

    您将立方体的两个角映射到纹理中的同一点。

    【讨论】:

    • 哦,我觉得自己好蠢!!我为什么这样做?无论如何,非常感谢你!我可以继续我的体素游戏!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多