OpenGL: установить цвет текста?

Я успешно отображаю текст в OpenGL:

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

Однако я не уверен, как установить цвет. (Я вижу, как меняется цвет, когда я перемещаю камеру, глядя на разные модели, но я не уверен, что вызывает его изменение.)

Я использую JOGL.

Как указать желаемый цвет?


person Nick Heiner    schedule 29.09.2010    source источник


Ответы (2)


Чтобы установить цвет, используйте вызов 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);

будет отображать текст красным цветом, даже если он выглядит так, как будто он должен отображаться синим цветом.

Как заметил Стивен, на цвет также влияет освещение. Если вы используете освещение, лучше временно отключить его, пока вы рисуете текст.

person Gretchen    schedule 03.10.2010

Есть ли у вас установка освещения? Это может привести к изменению цвета.

person Steven    schedule 29.09.2010