Java OpenGL只有蓝色纹理

时间:2012-06-26 11:22:19

标签: java opengl colors textures

我对Textures和OpenGL有一点问题。我做了一个小的.obj Loader(带纹理加载),但一切都是蓝色的。例如:

我加载纹理。我用GL11.glBindTexture(GL11.GL_TEXTURE_2D,textureId)绑定纹理。 如果我这样做:

    glColor3f(1f,1f,1f);
    glBegin(GL_QUADS);
    glVertex3f(50f,0,-50);
glVertex3f(-50f,0,-50f);
glVertex3f(-50f,0,50f);
glVertex3f(50f,0,50f);
glEnd();
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId);

它绘制了一个白色四边形...但如果我这样做:

    GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId);
    glColor3f(1f,1f,1f);
    glBegin(GL_QUADS);
    glVertex3f(50f,0,-50);
glVertex3f(-50f,0,-50f);
glVertex3f(-50f,0,50f);
glVertex3f(50f,0,50f);
glEnd();

它绘制蓝色四边形,其他一切都是蓝色。

也许有人知道解决方案?

2 个答案:

答案 0 :(得分:1)

没有纹理,因为您没有使用glTexCoord2f指定纹理坐标。

颜色错误可能是由于glTexImage的参数不正确。

其他一切都是蓝色的,因为你对所有东西使用相同的纹理。绑定不同的纹理或使用默认纹理0。

答案 1 :(得分:0)

这是问题,因为你没有在每个顶点使用glTexCoord2f。请尝试使用每个顶点,因为它可以解决它,因为目前你的颜色没有绑定到所有区域。