了解glClearColor值

时间:2017-10-02 11:49:11

标签: c++ opengl rgb

我正在尝试创建一个单独的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

2 个答案:

答案 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 f1.0 f之间。因此,如果要在0到225之间应用颜色,并且alpha也在0.0 f1.0 f之间。 (0表示完全透明)。

rValue= 184.0 / 255.0

gValue= 213.0 / 255.0

bValue= 238.0 / 255.0

glClearColor(rvalue, gValue, bValue, alpha);