これらの 2 つの画像の加算ブレンドが必要だと思いますよね。2 つのアプローチが思い浮かびます。加算ブレンドを使用する場合、値が合計されると自動的に明るい色になることに注意してください。
1) 元の立方体とぼかした立方体の両方がテクスチャにある場合は、次のようにフラグメント シェーダーを使用して単一の画面サイズのクワッドをレンダリングします。
#version 300 es
precision mediump float;
uniform sampler2D originalTexture;
uniform sampler2D blurTexture;
in vec2 texCoord;
void main()
{
vec4 originalColor = texture(originalTexture, texCoord);
vec4 blurColor = texture(blurTexture, texCoord);
gl_FragColor = originalColor+blurColor;
}
このアプローチの利点は、色に乗数を簡単に追加して効果を微調整できることです。たとえば、グローが多すぎる場合はトーンダウンします。
または、ジオメトリからキューブを通常どおりにレンダリングすることもできます。その場合は、ブラー テクスチャからフラグメント シェーダにテクスチャ ルックアップを追加し、カラー値を追加するだけです。
2) 固定関数ブレンディングを活用できます。最初に元の立方体を通常どおりにレンダリングしてから、ブレンド モードを設定します。
glEnable(GL_BLEND);
glBlendEquation(GL_FUNC_ADD);
glBlendFunc(GL_ONE, GL_ONE);
これで、ブラー テクスチャとレンダリングを同じレンダー ターゲットにバインドすると、それらが重なり合い、効果が得られるはずです。これにより、上記のシェーダーと同等の結果が得られます。glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ONE)
あまりにも使用して、結果の明るさを減らすことができます。このアプローチは、シェーダー アプローチよりも高速である必要があります。
ブレンディングが glBlitFramebuffer で機能するかどうかはわかりませんが、試してみる価値はあると思います。これがうまくいくことを願っています!