OpenGLでは、適切な透明効果を実現するために使用する必要がありますglBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
が、そのブレンド関数を使用すると、のアルファパラメータはglClearColor
無意味になります。でアルファパラメータを変更しglClearColor
ても、同じ効果が得られます。いつalphaパラメータを使用できますglClearColor
か?どのような効果が得られますか?
質問する
5685 次
2 に答える
11
glClearColor
RGBAフレームバッファがクリアされる色(およびアルファ値)を。で設定し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 に答える