win32では、SetDeviceGammaRampを使用して、全体的な明るさ/ガンマを調整できます。ただし、これはディスプレイ全体に影響するため、アプリがフルスクリーンでない限り、これはお勧めできません。
ポータブルな代替手段は、シーン全体を明るくまたは暗くする(面倒です)か、フルスクリーンのアルファブレンドクワッドをシーン全体に叩きつけて、必要に応じて明るくしたり暗くしたりすることです。これらのアプローチはどちらもガンマカーブに影響を与えることはできず、全体的な明るさにのみ影響を与えます。ガンマを調整するには、シーン全体をテクスチャに取り込み、各テクセルをガンマ関数で実行するピクセルシェーダーを介して画面にレンダリングし直す必要があります。
更新された質問を読んだら、必要なのは、その下のすべてを暗くしたり明るくしたりするように設定されたブレンディングを備えたクワッドです。例えば。
if( brightness > 1 )
{
glBlendFunc( GL_DEST_COLOR, GL_ONE );
glColor3f( brightness-1, brightness-1, brightness-1 );
}
else
{
glBlendFunc( GL_ZERO, GL_SRC_COLOR );
glColor3f( brightness, brightness, brightness );
}
glEnable( GL_BLEND );
draw_quad();