ProjectArcade

Форк
0
37 строк · 1.0 Кб
1
// Retro (CRT) shader, created to use in PPSSPP.
2

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

8
uniform sampler2D sampler0;
9
varying vec2 v_texcoord0;
10
uniform vec4 u_time;
11
uniform vec4 u_setting;
12

13
void main()
14
{
15
    // scanlines
16
    int vPos = int( ( v_texcoord0.y + u_time.x * u_setting.x * 0.5 ) * 272.0 );
17
    float line_intensity = mod( float(vPos), 2.0 );
18
    
19
    // color shift
20
    float off = line_intensity * 0.0005;
21
    vec2 shift = vec2( off, 0 );
22
    
23
    // shift R and G channels to simulate NTSC color bleed
24
    vec2 colorShift = vec2( 0.001, 0 );
25
    float r = texture2D( sampler0, v_texcoord0 + colorShift + shift ).x;
26
    float g = texture2D( sampler0, v_texcoord0 - colorShift + shift ).y;
27
    float b = texture2D( sampler0, v_texcoord0 ).z;
28
    
29
    vec4 c = vec4( r, g * 0.99, b, 1.0 ) * clamp( line_intensity, 0.85, 1.0 );
30

31
    if (u_setting.x > 0.0) {
32
        float rollbar = sin( ( v_texcoord0.y + u_time.x * u_setting.x ) * 4.0 );
33
        c += rollbar * 0.02;
34
    }
35

36
    gl_FragColor.rgba = c;
37
}
38

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

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

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

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