ProjectArcade

Форк
0
47 строк · 1.1 Кб
1
// Simple Bloom shader; created to use in PPSSPP.
2
// Without excessive samples and complex nested loops
3
// (to make it compatible with low-end GPUs and to ensure ps_2_0 compatibility).
4

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

10
uniform sampler2D sampler0;
11
varying vec2 v_texcoord0;	
12

13
uniform vec4 u_setting;
14

15
void main()
16
{
17
  vec3 color = texture2D(sampler0, v_texcoord0.xy).xyz;
18
  vec4 sum = vec4(0);
19
  vec3 bloom;
20
  
21
  for(int i= -3 ;i < 3; i++)
22
  {
23
    sum += texture2D(sampler0, v_texcoord0 + vec2(-1, i)*0.004) * u_setting.x;
24
    sum += texture2D(sampler0, v_texcoord0 + vec2(0, i)*0.004) * u_setting.x;
25
    sum += texture2D(sampler0, v_texcoord0 + vec2(1, i)*0.004) * u_setting.x;
26
  }
27
      
28
  if (color.r < 0.3 && color.g < 0.3 && color.b < 0.3)
29
  {
30
    bloom = sum.xyz*sum.xyz*0.012 + color;
31
  }
32
  else
33
  {
34
    if (color.r < 0.5 && color.g < 0.5 && color.b < 0.5)
35
      {
36
         bloom = sum.xyz*sum.xyz*0.009 + color;
37
      }
38
    else
39
      {
40
        bloom = sum.xyz*sum.xyz*0.0075 + color;
41
      }
42
  }
43
  
44
  bloom = mix(color, bloom, u_setting.y);
45
  gl_FragColor.rgb = bloom;
46
  gl_FragColor.a = 1.0;
47
}
48

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

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

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

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