mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-11-30 05:14:14 +01:00
94870ed334
fuzzy head ps: 1.33333333 is actually the original offset is this shader, divide by it then left with whatever you need maybe could also change vertex shader tho
36 lines
1.4 KiB
Plaintext
36 lines
1.4 KiB
Plaintext
#version 420
|
|
#extension GL_ARB_texture_gather : enable
|
|
// shader 45d85f1d25e7d0de // vertical blur 1440
|
|
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4601800 res 320x180x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
|
layout(location = 0) in vec4 passParameterSem0;
|
|
layout(location = 0) out vec4 passPixelColor0;
|
|
uniform vec2 uf_fragCoordScale;
|
|
|
|
float data = passParameterSem0.z - passParameterSem0.w;
|
|
float h = data / 1.33333333 * uf_fragCoordScale.y;
|
|
|
|
uniform float o_weight[] = float[]( 0.29411765, 0.35294118 );
|
|
uniform float o_offset[] = float[]( 0.00000000, 1.33333333 );
|
|
|
|
uniform float weight[] = float[]( 0.15644460, 0.26148598, 0.12689761, 0.03339411 );
|
|
uniform float offset[] = float[]( 0.00000000, 1.44444444, 3.37037037, 5.29629630 );
|
|
|
|
void main()
|
|
{
|
|
vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
|
|
|
|
vec4 R1f = texture( textureUnitPS0, R0f ) * weight[0];
|
|
for (int i=1; i<4; i++) {
|
|
R1f += texture( textureUnitPS0, R0f + vec2(0.0, offset[i]*h) ) * weight[i];
|
|
R1f += texture( textureUnitPS0, R0f - vec2(0.0, offset[i]*h) ) * weight[i];
|
|
}
|
|
|
|
vec4 R2f = texture( textureUnitPS0, R0f ) * o_weight[0];
|
|
for (int i=1; i<2; i++) {
|
|
R2f += texture( textureUnitPS0, R0f + vec2(0.0, o_offset[i]*h) ) * o_weight[i];
|
|
R2f += texture( textureUnitPS0, R0f - vec2(0.0, o_offset[i]*h) ) * o_weight[i];
|
|
}
|
|
|
|
passPixelColor0 = ( (uf_fragCoordScale.y == 1.0) ? R2f : R1f );
|
|
}
|