我第一次尝试使用OpenGL。我当时在网上看一些代码,然后尝试编写自己的代码,但是我总是只有一个空的(透明的)窗口。 (我使用GLUT打开窗口)。
我以为自己做错了什么,所以将代码从here复制到了C源代码,并且窗口仍然透明。此外,glClearColor()的alpha参数似乎没有任何作用。相反,alpha值似乎由红色,绿色和蓝色参数确定。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。
这是一个错误还是我做错了什么?
最佳答案
GLUT默认情况下不请求alpha缓冲区,我怀疑您所看到的可能是故障保护,临时的窗口透明实现。尝试添加:
glutInitDisplayMode(GLUT_RGBA | GLUT_ALPHA);
在其他GLUT初始化调用附近。请记住this function,因为如果需要深度或模板缓冲区或双缓冲,则需要再次修改该调用。