2010-09-29 157 views
0

我成功地在OpenGL中显示文本:OpenGL:设置文本颜色?

GLUT glut = new GLUT(); 
    gl.glWindowPos2d(10, 20); 
    glut.glutBitmapString(GLUT.BITMAP_HELVETICA_12, DISPLAYED_TEXT); 

但是,我不知道如何设置的颜色。 (当我移动相机时,我可以看到颜色变化,看着不同的模型,但我不确定是什么导致它改变。)

我正在使用JOGL。

如何指定我想要的颜色?

回答

0

你有任何照明设置?这可能会导致颜色改变。

1

要设置颜色,使用glColor调用(例如,glColor3f(1.0, 1.0, 0.0)来设置颜色为黄色) 有一点要注意的是,glutBitmapString使用光栅图形渲染文本,其中有一些怪癖。特别是,你需要你设定的位置之前设置的颜色 - 即:

gl.glColor3f(1,0,0) # RED 
gl.glWindowPos2d(10, 20); 
gl.glColor3f(0,0,1) # BLUE 
glut.glutBitmapString(GLUT.BITMAP_HELVETICA_12, DISPLAYED_TEXT); 

将呈现文本为红色,即使它看起来像它应该以蓝色呈现。正如史蒂文指出的那样,照明也会影响颜色。如果您正在使用照明,最好在绘制文字时暂时关闭照明。