java - OpenGL:设置文本颜色?

标签 java opengl graphics jogl

我已成功在 OpenGL 中显示文本:

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

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

我正在使用 JOGL。

如何指定我想要的颜色?

最佳答案

要设置颜色,请使用 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);

会将文本渲染为红色,即使它看起来应该渲染为蓝色。

正如史蒂文指出的那样,照明也会影响颜色。如果您使用照明,最好在绘制文本时暂时将其关闭。

关于java - OpenGL:设置文本颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818173/

相关文章:

javascript - 基于网格的照明引擎

java - 无法通过 selenium webdriver(Java)在 Chromedriver 中向下滚动

java - 根据多个按键更改 jtable 行选择

winforms - SharpGL - 用网格绘制球体并为每个球体附加颜色

opengl - 模型 View 投影中的第四行是查看位置吗?

OpenGL 可编程管线点光源

仅颜色着色不同于文本+颜色着色

language-agnostic - 如何在代码中重现这样的潦草图案?

java - 在 Websphere 8.5 上使用 JMS 时出现 NoSuchMethodError 错误

java - 在 Java 中,当 catch block 和 finally block 都抛出异常时会发生什么?