ProjectArcade

Форк
0
/
GaussianDownscale.fsh 
72 строки · 2.6 Кб
1
// PPSSPP: Simple Gauss filter
2
// Made by Bigpet
3

4
#ifdef GL_ES
5
precision mediump float;
6
precision mediump int;
7
#endif
8

9
uniform sampler2D sampler0;
10

11
// The inverse of the texture dimensions along X and Y
12
uniform vec2 u_texelDelta;
13
uniform vec2 u_pixelDelta;
14
varying vec2 v_texcoord0;
15

16
void main() {
17
  // The parameters are hardcoded for now, but could be
18
  // made into uniforms to control fromt he program.
19
  float GAUSS_SPAN_MAX = 1.5;
20

21
  //just a variable to describe the maximu
22
  float GAUSS_KERNEL_SIZE = 5.0;
23
  //indices
24
  //  XX XX 00 XX XX
25
  //  XX 01 02 03 XX
26
  //  04 05 06 07 08
27
  //  XX 09 10 11 XX
28
  //  XX XX 12 XX XX
29

30
  //filter strength, rather smooth 
31
  //  XX XX 01 XX XX
32
  //  XX 03 08 03 XX
33
  //  01 08 10 08 01
34
  //  XX 03 08 03 XX
35
  //  XX XX 01 XX XX
36

37
  vec2 offset = u_pixelDelta*GAUSS_SPAN_MAX/GAUSS_KERNEL_SIZE;
38
  
39
  vec3 rgbSimple0 =  1.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2( 0.0,-2.0)).xyz;
40
  vec3 rgbSimple1 =  3.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2(-1.0,-1.0)).xyz;
41
  vec3 rgbSimple2 =  8.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2( 0.0,-1.0)).xyz;
42
  vec3 rgbSimple3 =  3.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2( 1.0,-1.0)).xyz;
43
  vec3 rgbSimple4 =  1.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2(-2.0, 0.0)).xyz;
44
  vec3 rgbSimple5 =  8.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2(-1.0, 0.0)).xyz;
45
  vec3 rgbSimple6 = 10.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2( 0.0, 0.0)).xyz;
46
  vec3 rgbSimple7 =  8.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2( 1.0, 0.0)).xyz;
47
  vec3 rgbSimple8 =  1.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2( 2.0, 0.0)).xyz;
48
  vec3 rgbSimple9 =  3.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2(-1.0, 1.0)).xyz;
49
  vec3 rgbSimple10=  8.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2( 0.0, 1.0)).xyz;
50
  vec3 rgbSimple11=  3.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2( 1.0, 1.0)).xyz;
51
  vec3 rgbSimple12=  1.0 * texture2D(sampler0, v_texcoord0.xy + offset * vec2( 0.0, 2.0)).xyz;
52
  //vec3 rgbSimple10= vec3(1.0,0.0,0.0);
53
  //vec3 rgbSimple11= vec3(1.0,0.0,0.0);
54
  //vec3 rgbSimple12= vec3(1.0,0.0,0.0);
55
  
56
  vec3 rgb =  rgbSimple0 + 
57
              rgbSimple1 +
58
              rgbSimple2 +
59
              rgbSimple3 +
60
              rgbSimple4 +
61
              rgbSimple5 +
62
              rgbSimple6 +
63
              rgbSimple7 +
64
              rgbSimple8 +
65
              rgbSimple9 +
66
              rgbSimple10 +
67
              rgbSimple11 +
68
              rgbSimple12;
69
  rgb = rgb / 58.0;
70
  gl_FragColor.xyz=rgb;
71
  gl_FragColor.a = 1.0;
72
}
73

74

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.