【问题标题】:Java OpenGL only blue TexturesJava OpenGL 只有蓝色纹理
【发布时间】:2012-06-27 16:58:18
【问题描述】:

我在纹理和 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();

它画了一个蓝色的四边形,其他的都是蓝色的。

也许有人知道解决方案?

【问题讨论】:

  • 到底是什么问题?纯色,错误的颜色,还是根本没有颜色?你想达到什么目的?
  • 在我加载一个纹理后,所有的东西都是蓝色的,所以它有错误的颜色。我想加载一个正常的纹理并用正常的颜色绘制它。我读了一些关于 RGB 和 BGR 的东西,我认为这是我的问题。但我不知道如何在 RBG 和 BGR 之间切换

标签: java opengl colors textures


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 哦,对不起,我想我解释得不对。我不希望在这个四边形上绘制加载的纹理。这只是一个例子。我想表明,在绑定 1 个纹理后,普通四边形和纹理上总是有蓝色。
    • 现在我尝试在四边形上绘制红色纹理。如果纹理是红色的,当我渲染它时它会变成蓝色。如果它是蓝色的,它会变成红色。可能是 RGB 和 BGR 的问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    相关资源
    最近更新 更多