【问题标题】:OpenGl texture mapping blocking colours on FreeType?FreeType上的OpenGL纹理映射阻塞颜色?
【发布时间】:2010-04-25 23:48:34
【问题描述】:

我使用 FreeType 是为了允许在 OpenGL 中使用字体。但是,我遇到了一个问题,即每当我进行纹理映射时,我都无法更改字体颜色。无论我使用 glColor3f 选择什么,它都会变成白色。纹理效果很好。

glClear(GL_COLOR_BUFFER_BIT);

glLoadIdentity();

glColor3f(0.5,0.0,0.5);
glPushMatrix();
glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    glEnable(GL_TEXTURE_2D);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
    glBindTexture(GL_TEXTURE_2D, texName);
    glBegin(GL_POLYGON);
        glTexCoord2f(0,1); glVertex2f(-16,-16);
        glTexCoord2f(0,0); glVertex2f(-16,16);
        glTexCoord2f(1,0); glVertex2f(16,16);
        glTexCoord2f(1,1); glVertex2f(16,-16);
    glEnd();
    glDisable(GL_TEXTURE_2D);

    glDisable(GL_BLEND);
glPopMatrix();
    glColor3f(1,0,0);
print(our_font, -300+screenWidth/2.0, screenHeight/2.0, "fifty two - %7.2f", spin);

这是问题代码,我可以确认在此代码下方绘制多边形确实会使其变为红色。文本没有变为红色,但它应该;如果去掉上面的贴图,它又会变红,我只能认为是启用和禁用的问题,我忘了做点什么...?

【问题讨论】:

    标签: opengl freetype


    【解决方案1】:

    修复它。就在我禁用纹理之后,我忘记将环境设置回调制:

    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);

    在禁用纹理/混合后添加它可以解决问题。

    【讨论】:

      猜你喜欢
      • 2010-09-19
      • 1970-01-01
      • 2011-05-04
      • 2011-03-16
      • 1970-01-01
      • 2011-08-25
      • 2012-07-28
      • 2011-05-16
      • 1970-01-01
      相关资源
      最近更新 更多