了解glClearColor值

Ady*_*y96 2 c++ opengl rgb

我试图创建一个单一的OpenGL窗口,在RGB颜色选择器中选择一些背景颜色,但看起来我在这个函数中缺少一些重要的东西.当我想将颜色设置为标准颜色时,例如红色,它可以工作.

glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)

但是,当我想要设置一些异国情调的颜色时,184, 213, 238, 1它只显示白色.

glClearColor(184.0f, 213.0f, 238.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?什么是十进制值,也是f?

Rab*_*d76 7

请参阅Khronos文档页面glClearColor,其中明确指出:

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);
Run Code Online (Sandbox Code Playgroud)


Mad*_*Gor 5

在这里,rValue、gValue 和 bValue 总是在0.0 fto之间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);
Run Code Online (Sandbox Code Playgroud)