【发布时间】:2012-08-29 10:01:35
【问题描述】:
我第一次尝试使用 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, 0, 0, 0) 应该是透明的,不是吗?您的问题可能是“(0, 0, 0, 1) 是透明的,而不是黑色的。”
-
@aib 实际上不确定。第四个参数称为alpha。我猜它是
opacity = 1 - alpha,但我无法测试它,因为它没有任何效果。 :) 此外,在链接到上面链接代码的教程中,它会导致黑色背景。 -
@NiklasR:通常情况下不透明度 == alpha。
标签: c linux opengl ubuntu freeglut