了解 glClearColor 值
Understanding glClearColor values
我正在尝试创建一个单一的 OpenGL window,并在 RGB 颜色选择器中选择一些背景颜色,但看起来我在这个函数中遗漏了一些重要的东西。当我想将颜色设置为标准时,例如红色,它起作用了。
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
但是当我想设置一些异国情调的颜色时 184, 213, 238, 1
然后它只显示白色。
glClearColor(184.0f, 213.0f, 238.0f, 1.0f);
我做错了什么? f
的十进制值是多少?
请参阅 glClearColor
的 Khronos 文档页面,其中明确说明:
void glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
glClearColor
specifies the red, green, blue, and alpha values used by glClear to clear the color buffers. Values specified by glClearColor are clamped to the range [0,1].
这意味着参数是在 0.0 到 1.0 范围内的浮点值。
像这样调整您的代码:
glClearColor(184.0f/255.0f, 213.0f/255.0f, 238.0f/255.0f, 1.0f);
这里,rValue、gValue 和 bValue 总是在 0.0 f
到 1.0 f
之间。所以如果你想应用 0 到 225.and 之间的颜色,alpha 也在 0.0 f
到 1.0 f
之间。 (0 表示完全透明)。
rValue= 184.0 / 255.0
gValue= 213.0 / 255.0
bValue= 238.0 / 255.0
glClearColor(rvalue, gValue, bValue, alpha);
我正在尝试创建一个单一的 OpenGL window,并在 RGB 颜色选择器中选择一些背景颜色,但看起来我在这个函数中遗漏了一些重要的东西。当我想将颜色设置为标准时,例如红色,它起作用了。
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
但是当我想设置一些异国情调的颜色时 184, 213, 238, 1
然后它只显示白色。
glClearColor(184.0f, 213.0f, 238.0f, 1.0f);
我做错了什么? f
的十进制值是多少?
请参阅 glClearColor
的 Khronos 文档页面,其中明确说明:
void glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
glClearColor
specifies the red, green, blue, and alpha values used by glClear to clear the color buffers. Values specified by glClearColor are clamped to the range [0,1].
这意味着参数是在 0.0 到 1.0 范围内的浮点值。 像这样调整您的代码:
glClearColor(184.0f/255.0f, 213.0f/255.0f, 238.0f/255.0f, 1.0f);
这里,rValue、gValue 和 bValue 总是在 0.0 f
到 1.0 f
之间。所以如果你想应用 0 到 225.and 之间的颜色,alpha 也在 0.0 f
到 1.0 f
之间。 (0 表示完全透明)。
rValue= 184.0 / 255.0
gValue= 213.0 / 255.0
bValue= 238.0 / 255.0
glClearColor(rvalue, gValue, bValue, alpha);