Page 1 of 1

[SOLVED] HOW TO MAKE RGB SPLIT EFFECT?

Posted: Sat Jan 19, 2019 12:47 am
by Darlex
Image
This is solved!

Re: How i can do this effects on my games?

Posted: Sat Jan 19, 2019 5:39 am
by ivan
It's called chromatic abberation and can be achieved using shaders:

Code: Select all

// jangsy5 code
extern number aberration = 2.0;

vec4 effect(vec4 color, Image tx, vec2 tc, vec2 pc)
{
  // fake chromatic aberration
  float sx = aberration/love_ScreenSize.x;
  float sy = aberration/love_ScreenSize.y;
  vec4 r = Texel(tx, vec2(tc.x + sx, tc.y - sy));
  vec4 g = Texel(tx, vec2(tc.x, tc.y + sy));
  vec4 b = Texel(tx, vec2(tc.x - sx, tc.y - sy));
  number a = (r.a + g.a + b.a)/3.0;

  return vec4(r.r, g.g, b.b, a);
}

Re: How i can do this effects on my games?

Posted: Sat Jan 19, 2019 3:33 pm
by Darlex
ivan wrote: Sat Jan 19, 2019 5:39 am It's called chromatic abberation and can be achieved using shaders:

Code: Select all

// jangsy5 code
extern number aberration = 2.0;

vec4 effect(vec4 color, Image tx, vec2 tc, vec2 pc)
{
  // fake chromatic aberration
  float sx = aberration/love_ScreenSize.x;
  float sy = aberration/love_ScreenSize.y;
  vec4 r = Texel(tx, vec2(tc.x + sx, tc.y - sy));
  vec4 g = Texel(tx, vec2(tc.x, tc.y + sy));
  vec4 b = Texel(tx, vec2(tc.x - sx, tc.y - sy));
  number a = (r.a + g.a + b.a)/3.0;

  return vec4(r.r, g.g, b.b, a);
}
Wow! Thanks!