我对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();
它绘制蓝色四边形,其他一切都是蓝色。
也许有人知道解决方案?
答案 0 :(得分:1)
没有纹理,因为您没有使用glTexCoord2f
指定纹理坐标。
颜色错误可能是由于glTexImage
的参数不正确。
其他一切都是蓝色的,因为你对所有东西使用相同的纹理。绑定不同的纹理或使用默认纹理0。
答案 1 :(得分:0)
这是问题,因为你没有在每个顶点使用glTexCoord2f。请尝试使用每个顶点,因为它可以解决它,因为目前你的颜色没有绑定到所有区域。