0

我对纹理和 OpenGL 有一点问题。我做了一个小的 .obj 加载器(带有纹理加载),但一切都被绘制成蓝色。例子:

我加载一个纹理。我用 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();

它绘制了一个蓝色四边形,其他所有内容也是蓝色的。

也许有人知道解决方案?

4

2 回答 2

1

没有纹理,因为您没有使用glTexCoord2f.

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

其他所有内容都是蓝色的,因为您对所有内容都使用相同的纹理。绑定不同的纹理或使用默认纹理 0。

于 2012-06-26T11:27:05.033 回答
0

这是问题所在,因为您没有对每个顶点使用 glTexCoord2f。请尝试对每个顶点进行此操作,因为它可以解决它,因为目前您的颜色并未绑定到所有区域。

于 2012-06-26T11:31:38.963 回答