2

初めてOpenGLを使用しようとしています。オンラインでいくつかのコードを見て、自分でコードを書こうとしましたが、常に空の (透明な) ウィンドウしか表示されませんでした。(ウィンドウを開くためにGLUTを使用しました)。

何か間違ったことをしたと思ったので、コードをここから C ソース コードにコピーしましたが、ウィンドウはまだ透明です。また、glClearColor()のアルファパラメータは効果がないようです。代わりに、アルファ値はredgreen、および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を使用しています。

これはバグですか、それとも何か間違っていますか?

4

2 に答える 2

7

GLUT はデフォルトではアルファ バッファを要求しません。あなたが見ているのは、フェイル セーフなアドホックなウィンドウ透明度の実装ではないかと思います。追加してみてください:

glutInitDisplayMode(GLUT_RGBA | GLUT_ALPHA);

他の GLUT init 呼び出しの近く。深度バッファ、ステンシル バッファ、またはダブル バッファリングが必要な場合は、呼び出しを再度変更する必要があるため、この関数を覚えておいてください。

于 2012-08-29T10:14:36.147 に答える
1

表示モードで glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB) を使用する

于 2016-10-06T09:48:49.510 に答える