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

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

也许有人知道解决方案?

===============>>#1 票数:1 已采纳

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

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

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

===============>>#2 票数:0

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

  ask by user1432679 translate from so

未解决问题?本站智能推荐:

2回复

使用OpenGL在Java中更改纹理中的某些颜色

我需要能够创建纹理的副本并将该副本中的某些颜色更改为Java中的其他颜色。 我不太熟悉OpenGL库,也不知道它提供了什么方法来实现此目的。 我需要知道一种更改纹理中单个像素颜色的好方法,以及如何获取纹理中单个像素的颜色,以及如何复制纹理。 如果这个问题过于笼统,很抱歉,但我正在寻找一个广
1回复

JOGL纹理不起作用

我正在尝试填充木材的圆环纹理,但只留下一种颜色: img http://dl.dropbox.com/u/70996029/Screenshots/Screenshot-2012-04-12_01.28.44.png 图像为128x128 png。 我究竟做错了什么?
1回复

LWJGL使用纹理时颜色混乱+经常禁用纹理时FPS较低

最初,我在使用纹理时遇到了混乱的颜色的问题,但我设法解决了这个问题(问题是我没有在需要时禁用纹理化)。 之后,颜色发生了变化,但仍然不是我希望的颜色-白色而不是纯蓝色(0,0,255)RGB。 这是完整的渲染方法: 渲染标题部分出现问题。 那些没有纹理(暂时),我希望它们只是彩色正
1回复

OpenGL纹理显示为实体对象?

因此,据我所知,我正确地加载了纹理,因为我正在制作的桌子上使用了两种不同的纹理,分别应用了不同的棕色阴影。 但是,纹理显示为纯色,没有任何细节。 我不知道是什么原因造成的。 这是我用于加载bmp纹理的代码: 然后在drawTable方法中像这样使用它: 这是完整代码的p
3回复

OpenGL纹理颜色是错误的

我制作了一个简单的程序来创建一个Ortho透视图,然后在四边形上放置一个包含png的纹理但是,我无法弄清楚为什么有些颜色会显示为混乱。 png看起来像这样(中间的白色矩形是透明的): 我的OpenGL程序中的四边形如下所示: 下面是初始化OpenGL的代码以及OpenGL线
3回复

在OpenGL中对纹理进行颜色映射

我正在显示要处理的纹理,而不会影响图像数据。 我希望能够钳位texel值,以使低于下限值的任何值变为0,高于上限值的任何值变为0,并且介于两者之间的任何值从0线性映射到1。 最初,为了显示我的图像,我使用的是glDrawPixels。 为了解决上述问题,我将使用glPixelMap创建
1回复

GLSL / OpenGL-单色而不是纹理

我最近开始学习GLSL,现在我在纹理化方面遇到了问题。 我已经阅读了所有有关此主题的内容,发现了相同的单色问题,但是是由另一个问题引起的。 因此,我有一个简单的四边形(地面),我只想在其上渲染草纹理。 着色器: 分段: 顶点: 我的质感和原始坐标: 缓冲区:
4回复

是否有OpenGL函数将纹理重置为纯色?

有没有办法用纯色初始化或重置OpenGL纹理? 由于我想支持笔记本的Intel HD Graphics 4000,因此我可以使用OpenGL 4.0之前的功能。
2回复

OpenGL ARGB与RGB和纹理压缩

我有一个颜色深度为32位的渲染上下文。 我将使用一些Alpha混合,但不多。 因此对于我需要的大多数纹理使用24位图像将大大减少内存需求。 我的问题是,我可以将32位RGB纹理与32位渲染上下文一起使用,并期望与32位ARGB纹理具有相同的性能吗? 我知道内部格式可能不是一开始的,但是R
2回复

在OpenGL中的片段着色器中获取原始纹理颜色

所以,我需要制作一个着色器,用给定的颜色替换纹理中的灰色。 如果我将颜色设置为给定的特定颜色,片段着色器可以正常工作 但是,当我尝试检索纹理的原始颜色时,我收到错误。 由于某种原因,它总是返回黑色。 从理论上讲,它应该什么也不做 - 纹理应该保持不变。 但它完全变黑了。