initial implementation of interlace effect
This commit is contained in:
parent
9edd7782c6
commit
cce018f620
4 changed files with 27 additions and 3 deletions
|
@ -14,12 +14,12 @@ float renderRes = pixelSize;
|
||||||
#define rgbSteps 4 // the number of rgb values to use [2 4 8 16 32 64]
|
#define rgbSteps 4 // the number of rgb values to use [2 4 8 16 32 64]
|
||||||
|
|
||||||
uniform sampler2D gcolor;
|
uniform sampler2D gcolor;
|
||||||
uniform sampler2D colortex1;
|
|
||||||
uniform float viewWidth, viewHeight;
|
uniform float viewWidth, viewHeight;
|
||||||
|
|
||||||
varying vec2 texcoord;
|
varying vec2 texcoord;
|
||||||
|
|
||||||
#include "/module/dof.frag"
|
#include "/module/dof.frag"
|
||||||
|
#include "/module/interlace.frag"
|
||||||
|
|
||||||
// All components are in the range [0…1], including hue.
|
// All components are in the range [0…1], including hue.
|
||||||
vec3 rgb2hsv(vec3 c)
|
vec3 rgb2hsv(vec3 c)
|
||||||
|
@ -151,6 +151,19 @@ void main() {
|
||||||
final = vec3(lightnessStep(color.r, rgbSteps), lightnessStep(color.g, rgbSteps), lightnessStep(color.b, rgbSteps)).rgb;
|
final = vec3(lightnessStep(color.r, rgbSteps), lightnessStep(color.g, rgbSteps), lightnessStep(color.b, rgbSteps)).rgb;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
gl_FragData[0] = vec4(vec3(final), 1.0); //gcolor
|
|
||||||
|
#ifdef interlacing
|
||||||
|
/* DRAWBUFFERS:01 */
|
||||||
|
// pull previous buffer
|
||||||
|
vec3 prev = texture2D(colortex1, texcoord).rgb;
|
||||||
|
// interlace alternates between odd and even lines on world time
|
||||||
|
if(mod(int(gl_FragCoord.y / pixelSize), 2) == mod(worldTime, 2))
|
||||||
|
gl_FragData[0] = vec4(prev, 1);
|
||||||
|
else
|
||||||
|
gl_FragData[0] = vec4(final, 1);
|
||||||
|
gl_FragData[1] = vec4(final, 1);
|
||||||
|
#else
|
||||||
|
gl_FragData[0] = vec4(final, 1.0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ option.satSteps=Saturation Depth
|
||||||
option.valSteps=Value Depth
|
option.valSteps=Value Depth
|
||||||
|
|
||||||
screen.SCREEN=Screen
|
screen.SCREEN=Screen
|
||||||
|
option.interlacing=Interlacing
|
||||||
option.aberration=Chromatic Aberration
|
option.aberration=Chromatic Aberration
|
||||||
|
|
||||||
screen.CONSOLE=Consoles
|
screen.CONSOLE=Consoles
|
||||||
|
|
10
shaders/module/interlace.frag
Normal file
10
shaders/module/interlace.frag
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
|
||||||
|
//#define interlacing
|
||||||
|
|
||||||
|
#ifdef interlacing
|
||||||
|
uniform sampler2D colortex1;
|
||||||
|
const bool colortex1Clear = false;
|
||||||
|
|
||||||
|
uniform int worldTime;
|
||||||
|
#endif
|
||||||
|
|
|
@ -17,7 +17,7 @@ screen.COLOR.columns=3
|
||||||
screen.COLOR=colorMode dithering <empty> rgbSteps <empty> <empty> hueSteps satSteps valSteps
|
screen.COLOR=colorMode dithering <empty> rgbSteps <empty> <empty> hueSteps satSteps valSteps
|
||||||
|
|
||||||
# screen effects
|
# screen effects
|
||||||
screen.SCREEN=aberration
|
screen.SCREEN=interlacing aberration
|
||||||
|
|
||||||
# console effects
|
# console effects
|
||||||
screen.CONSOLE.columns=1
|
screen.CONSOLE.columns=1
|
||||||
|
|
Loading…
Reference in a new issue