我第一次尝试使用OpenGL。我在线查看一些代码然后尝试编写自己的代码,但我总是只有一个空的(透明)窗口。 (我用GLUT打开窗户)。
我认为我做错了,所以我将代码从here复制到我的C源代码,我的窗口仍然是透明的。此外, glClearColor()的 alpha 参数似乎没有任何效果。相反,alpha值似乎由 red , green 和 blue 参数决定。
glClearColor(0, 0, 0, 0)
glClearColor(0, 0, 0, 1)
glClearColor(1, 0, 0, 0)
glClearColor(1, 0, 0, 1)
glClearColor(1, 1, 0, 0)
glClearColor(1, 1, 0, 1)
glClearColor(1, 0, 0, 0)
glClearColor(1, 0, 0, 1)
alpha 参数不会更改结果。
我使用的是Ubuntu 12.04 LTS, libgl1-mesa-dev 。
这是一个错误还是我做错了什么?
答案 0 :(得分:7)
默认情况下,GLUT不会请求alpha缓冲区,我怀疑你所看到的可能是窗口透明度的故障安全,临时实现。尝试添加:
glutInitDisplayMode(GLUT_RGBA | GLUT_ALPHA);
靠近其他GLUT初始化调用。请记住this function,因为如果需要深度或模板缓冲区或双缓冲,则需要再次修改调用。
答案 1 :(得分:0)
在显示模式下使用glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)