我正在尝试创建一个单独的OpenGL窗口,在RGB颜色选择器中选择了一些背景颜色,但看起来我在这个函数中缺少一些重要的东西。当我想将颜色设置为标准颜色时,例如红色,它可以工作。
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
但是当我想设置像184, 213, 238, 1
这样的奇特色彩时,它只显示白色。
glClearColor(184.0f, 213.0f, 238.0f, 1.0f);
我做错了什么?什么是十进制值以及f
?
答案 0 :(得分:6)
请参阅glClearColor
的Khronos文档页面,其中明确指出:
void glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
glClearColor
指定glClear用于清除颜色缓冲区的红色,绿色,蓝色和alpha值。 glClearColor指定的值被限制在[0,1]范围内。
这意味着参数是浮点值,范围从0.0到1.0。 像这样调整你的代码:
glClearColor(184.0f/255.0f, 213.0f/255.0f, 238.0f/255.0f, 1.0f);
答案 1 :(得分:3)
此处,rValue,gValue和bValue始终位于0.0 f
到1.0 f
之间。因此,如果要在0到225之间应用颜色,并且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);