2010-04-25 49 views
0

我正在使用FreeType以允許在OpenGL中使用字體。但是,我遇到了一個問題,即無論何時執行紋理映射都無法更改字體顏色。不管我用glColor3f選擇什麼,它都會變成白色。紋理工作正常。FreeType上的OpenGl紋理映射阻塞顏色?

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); 

這是問題代碼,我可以確認在此代碼下繪製多邊形確實會使其變爲紅色。文本不會變成紅色,但它應該;如果你刪除上面的紋理貼圖,它會再次變成紅色,我只能認爲這是啓用和禁用的問題,我忘記了做些什麼......?

回答

1

修正了它。剛剛禁用貼圖之後,我忘記將環境設置爲調製模式:

glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);

禁用紋理/混合修復問題之後加入此。