ProjectArcade

Форк
0
52 строки · 1.5 Кб
1
// Modified to use in PPSSPP. Grabbed from:
2
// http://forums.ngemu.com/showthread.php?t=76098
3

4
// Advanced Cartoon shader I
5
// by guest(r) (guest.r@gmail.com)
6
// license: GNU-GPL
7

8
#ifdef GL_ES
9
precision mediump float;
10
precision mediump int;
11
#endif
12

13
uniform vec4 u_setting;
14

15
uniform sampler2D sampler0;
16

17
varying vec4 v_texcoord0;
18
varying vec4 v_texcoord1;
19
varying vec4 v_texcoord2;
20
varying vec4 v_texcoord3;
21
varying vec4 v_texcoord4;
22
varying vec4 v_texcoord5;
23
varying vec4 v_texcoord6;
24

25
void main()
26
{
27
  vec3 c00 = texture2D(sampler0, v_texcoord5.xy).xyz; 
28
  vec3 c10 = texture2D(sampler0, v_texcoord1.xy).xyz; 
29
  vec3 c20 = texture2D(sampler0, v_texcoord2.zw).xyz; 
30
  vec3 c01 = texture2D(sampler0, v_texcoord3.xy).xyz; 
31
  vec3 c11 = texture2D(sampler0, v_texcoord0.xy).xyz; 
32
  vec3 c21 = texture2D(sampler0, v_texcoord4.xy).xyz; 
33
  vec3 c02 = texture2D(sampler0, v_texcoord1.zw).xyz; 
34
  vec3 c12 = texture2D(sampler0, v_texcoord2.xy).xyz; 
35
  vec3 c22 = texture2D(sampler0, v_texcoord6.xy).xyz; 
36
  vec3 dt = vec3(1.0,1.0,1.0); 
37

38
  float d1=dot(abs(c00-c22),dt);
39
  float d2=dot(abs(c20-c02),dt);
40
  float hl=dot(abs(c01-c21),dt);
41
  float vl=dot(abs(c10-c12),dt);
42
  float d = u_setting.x*(d1+d2+hl+vl)/(dot(c11,dt)+0.15);
43

44
  float lc = 4.0*length(c11);
45
  float f = fract(lc); f*=f;
46
  lc = 0.25*(floor(lc) + f*f)+0.05;
47
  c11 = 4.0*normalize(c11); 
48
  vec3 frct = fract(c11); frct*=frct;
49
  c11 = floor(c11)+ 0.05*dt + frct*frct;
50
  gl_FragColor.rgb = 0.25*lc*(1.1-d*sqrt(d))*c11;
51
  gl_FragColor.a = 1.0;
52
}
53

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

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

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

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