0

我正在使用 LWJGL 在 Java 中包裹 OpenGL,但显然所有颜色都被转换为基本阴影。我不是 100% 确定这里的英语措辞,所以如果我设置,请尝试使其更清晰:

glClearColor(0.3, 0.3, 0.6, 1.0)

我最终得到的相当于

glClearColor(1.0, 1.0, 1.0, 1.0)

基本上,每当我在颜色的任何红色/绿色/蓝色分量中使用不是 0.0 的东西时,我都会得到与使用 1.0 时相同的行为。

在 OpenGL 初始化期间,我几乎只设置了透视图:

    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    GL11.glOrtho(0, DisplayManager.getWidth(), DisplayManager.getHeight(), 0, 1, -1);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);

在渲染过程中,我只是试图用背景颜色清除:

    // clear buffer
    GL11.glClearColor(0x46, 0x82, 0xb4, 1.0f);
    GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);

基本上背景应该是蓝色,但我得到的是白色(即 1.0、1.0、1.0、1.0)。

我需要设置什么(OpenGL标志或诸如此类)才能发生这种情况吗?我只是在某个地方愚蠢,我不知道在哪里吗?:)

提前致谢

4

1 回答 1

1
GL11.glClearColor(0x46, 0x82, 0xb4, 1.0f);

0x46 大于 1.0,因此被钳制为 1.0。白色的。

glClearColor期望在 0.0 到 1.0 范围内的浮点数作为输入,而不是从 0 到 255 (0xFF) 的整数。

试试这个:

GL11.glClearColor(0x46 / 255.0f, 0x82 / 255.0f, 0xb4 / 255.0f, 1.0f);
于 2013-07-30T12:45:17.767 回答