我试图创建一个单一的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?
请参阅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)
在这里,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)
| 归档时间: |
|
| 查看次数: |
3013 次 |
| 最近记录: |