osci-render/Source/visualiser/WideBlurFragmentShader.glsl

80 wiersze
5.7 KiB
GLSL

std::string wideBlurFragmentShader = R"(
uniform sampler2D uTexture0;
uniform vec2 uOffset;
varying vec2 vTexCoord;
void main() {
vec4 sum = vec4(0.0);
sum += texture2D(uTexture0, vTexCoord + uOffset * -32.0) * 7.936396739629738e-9;
sum += texture2D(uTexture0, vTexCoord + uOffset * -31.0) * 2.1238899047869243e-8;
sum += texture2D(uTexture0, vTexCoord + uOffset * -30.0) * 5.5089512435892845e-8;
sum += texture2D(uTexture0, vTexCoord + uOffset * -29.0) * 1.3849501900610678e-7;
sum += texture2D(uTexture0, vTexCoord + uOffset * -28.0) * 3.37464176550827e-7;
sum += texture2D(uTexture0, vTexCoord + uOffset * -27.0) * 7.969838069860066e-7;
sum += texture2D(uTexture0, vTexCoord + uOffset * -26.0) * 0.0000018243141024985921;
sum += texture2D(uTexture0, vTexCoord + uOffset * -25.0) * 0.000004047417737721991;
sum += texture2D(uTexture0, vTexCoord + uOffset * -24.0) * 0.000008703315823121481;
sum += texture2D(uTexture0, vTexCoord + uOffset * -23.0) * 0.000018139267838241068;
sum += texture2D(uTexture0, vTexCoord + uOffset * -22.0) * 0.00003664232826522744;
sum += texture2D(uTexture0, vTexCoord + uOffset * -21.0) * 0.0000717421959978491;
sum += texture2D(uTexture0, vTexCoord + uOffset * -20.0) * 0.00013614276559291948;
sum += texture2D(uTexture0, vTexCoord + uOffset * -19.0) * 0.00025040486855393973;
sum += texture2D(uTexture0, vTexCoord + uOffset * -18.0) * 0.00044639494279724747;
sum += texture2D(uTexture0, vTexCoord + uOffset * -17.0) * 0.00077130129517095;
sum += texture2D(uTexture0, vTexCoord + uOffset * -16.0) * 0.0012916865959769006;
sum += texture2D(uTexture0, vTexCoord + uOffset * -15.0) * 0.0020966142949301195;
sum += texture2D(uTexture0, vTexCoord + uOffset * -14.0) * 0.003298437274607801;
sum += texture2D(uTexture0, vTexCoord + uOffset * -13.0) * 0.005029516233086111;
sum += texture2D(uTexture0, vTexCoord + uOffset * -12.0) * 0.007433143141769405;
sum += texture2D(uTexture0, vTexCoord + uOffset * -11.0) * 0.010647485948997013;
sum += texture2D(uTexture0, vTexCoord + uOffset * -10.0) * 0.014782570282805454;
sum += texture2D(uTexture0, vTexCoord + uOffset * -9.0) * 0.019892122581030056;
sum += texture2D(uTexture0, vTexCoord + uOffset * -8.0) * 0.02594421881668063;
sum += texture2D(uTexture0, vTexCoord + uOffset * -7.0) * 0.03279656561871859;
sum += texture2D(uTexture0, vTexCoord + uOffset * -6.0) * 0.040183192177668754;
sum += texture2D(uTexture0, vTexCoord + uOffset * -5.0) * 0.04771872140419803;
sum += texture2D(uTexture0, vTexCoord + uOffset * -4.0) * 0.05492391166591576;
sum += texture2D(uTexture0, vTexCoord + uOffset * -3.0) * 0.06127205113483162;
sum += texture2D(uTexture0, vTexCoord + uOffset * -2.0) * 0.06625088366795348;
sum += texture2D(uTexture0, vTexCoord + uOffset * -1.0) * 0.06943032995966593;
sum += texture2D(uTexture0, vTexCoord + uOffset * 0.0) * 0.07052369856294818;
sum += texture2D(uTexture0, vTexCoord + uOffset * 1.0) * 0.06943032995966593;
sum += texture2D(uTexture0, vTexCoord + uOffset * 2.0) * 0.06625088366795348;
sum += texture2D(uTexture0, vTexCoord + uOffset * 3.0) * 0.06127205113483162;
sum += texture2D(uTexture0, vTexCoord + uOffset * 4.0) * 0.05492391166591576;
sum += texture2D(uTexture0, vTexCoord + uOffset * 5.0) * 0.04771872140419803;
sum += texture2D(uTexture0, vTexCoord + uOffset * 6.0) * 0.040183192177668754;
sum += texture2D(uTexture0, vTexCoord + uOffset * 7.0) * 0.03279656561871859;
sum += texture2D(uTexture0, vTexCoord + uOffset * 8.0) * 0.02594421881668063;
sum += texture2D(uTexture0, vTexCoord + uOffset * 9.0) * 0.019892122581030056;
sum += texture2D(uTexture0, vTexCoord + uOffset * 10.0) * 0.014782570282805454;
sum += texture2D(uTexture0, vTexCoord + uOffset * 11.0) * 0.010647485948997013;
sum += texture2D(uTexture0, vTexCoord + uOffset * 12.0) * 0.007433143141769405;
sum += texture2D(uTexture0, vTexCoord + uOffset * 13.0) * 0.005029516233086111;
sum += texture2D(uTexture0, vTexCoord + uOffset * 14.0) * 0.003298437274607801;
sum += texture2D(uTexture0, vTexCoord + uOffset * 15.0) * 0.0020966142949301195;
sum += texture2D(uTexture0, vTexCoord + uOffset * 16.0) * 0.0012916865959769006;
sum += texture2D(uTexture0, vTexCoord + uOffset * 17.0) * 0.00077130129517095;
sum += texture2D(uTexture0, vTexCoord + uOffset * 18.0) * 0.00044639494279724747;
sum += texture2D(uTexture0, vTexCoord + uOffset * 19.0) * 0.00025040486855393973;
sum += texture2D(uTexture0, vTexCoord + uOffset * 20.0) * 0.00013614276559291948;
sum += texture2D(uTexture0, vTexCoord + uOffset * 21.0) * 0.0000717421959978491;
sum += texture2D(uTexture0, vTexCoord + uOffset * 22.0) * 0.00003664232826522744;
sum += texture2D(uTexture0, vTexCoord + uOffset * 23.0) * 0.000018139267838241068;
sum += texture2D(uTexture0, vTexCoord + uOffset * 24.0) * 0.000008703315823121481;
sum += texture2D(uTexture0, vTexCoord + uOffset * 25.0) * 0.000004047417737721991;
sum += texture2D(uTexture0, vTexCoord + uOffset * 26.0) * 0.0000018243141024985921;
sum += texture2D(uTexture0, vTexCoord + uOffset * 27.0) * 7.969838069860066e-7;
sum += texture2D(uTexture0, vTexCoord + uOffset * 28.0) * 3.37464176550827e-7;
sum += texture2D(uTexture0, vTexCoord + uOffset * 29.0) * 1.3849501900610678e-7;
sum += texture2D(uTexture0, vTexCoord + uOffset * 30.0) * 5.5089512435892845e-8;
sum += texture2D(uTexture0, vTexCoord + uOffset * 31.0) * 2.1238899047869243e-8;
sum += texture2D(uTexture0, vTexCoord + uOffset * 32.0) * 7.936396739629738e-9;
gl_FragColor = sum;
}
)";