4

OpenGLでは、適切な透明効果を実現するために使用する必要がありますglBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)が、そのブレンド関数を使用すると、のアルファパラメータはglClearColor無意味になります。でアルファパラメータを変更しglClearColorても、同じ効果が得られます。いつalphaパラメータを使用できますglClearColorか?どのような効果が得られますか?

4

2 に答える 2

11

glClearColorRGBAフレームバッファがクリアされる色(およびアルファ値)を。で設定しglClear(GL_COLOR_BUFFER_BIT)ます。GL_DST_ALPHAフレームバッファのアルファ値は、関数またはGL_ONE_MINUS_DST_ALPHAブレンド関数で考慮されます。

ただし、通常の画面上のウィンドウフレームバッファには、通常、アルファ値は含まれていません。もちろん、注目すべき例外があります。たとえば、背景が透けて見える透明なウィンドウですが、設定が少し面倒で、「透明な」領域を超えていても、すべてのマウスイベントを受信します。

アルファチャネルを備えたフレームバッファは、ほとんどの場合、テクスチャターゲットにレンダリングするのに役立ちます。

したがって、あなたの場合、クリアカラーは特に重要ではありません。glColor4fアルファチャネルの4番目のパラメータまたはテクスチャに興味がある可能性がはるかに高くなります。

于 2012-06-26T15:30:18.470 に答える
0

不透明度はアルファであり、透明度ではありません。0の場合はまったく見えないことを意味します。1の場合は完全に見ることができます。0.5fの場合、半分の電力で表示できます。

于 2020-01-19T05:08:10.320 に答える