Compare commits

..

3 commits

Author SHA1 Message Date
e4b1d8b6f4 unify changes 2024-04-20 21:05:38 -04:00
d1737aef6b added interlace to relevant profiles 2024-04-20 20:47:45 -04:00
cce018f620 initial implementation of interlace effect 2024-04-20 20:47:00 -04:00
4 changed files with 33 additions and 9 deletions

View file

@ -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
} }

View file

@ -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

View file

@ -0,0 +1,10 @@
//#define interlacing
#ifdef interlacing
uniform sampler2D colortex1;
const bool colortex1Clear = false;
uniform int worldTime;
#endif

View file

@ -1,12 +1,12 @@
sliders=pixelSize hueSteps satSteps valSteps rgbSteps vWarp worldRadius sliders=pixelSize hueSteps satSteps valSteps rgbSteps vWarp worldRadius
# -- PROFILES -- # -- PROFILES --
profile.DEFAULT=pixelSize=2 colorMode=0 dithering hueSteps=4 satSteps=4 valSteps=4 vWarp=0 !tWarp !hBlur profile.DEFAULT=pixelSize=2 colorMode=0 dithering hueSteps=4 satSteps=4 valSteps=4 vWarp=0 !tWarp !hBlur !interlacing
profile.AEON=pixelSize=1 colorMode=0 dithering hueSteps=8 satSteps=4 valSteps=4 vWarp=0 !tWarp !hBlur profile.AEON=pixelSize=1 colorMode=0 dithering hueSteps=8 satSteps=4 valSteps=4 vWarp=0 !tWarp !hBlur !interlacing
profile.DOS=pixelSize=4 colorMode=1 dithering rgbSteps=2 vWarp=1 !tWarp !hBlur profile.DOS=pixelSize=4 colorMode=1 dithering rgbSteps=2 vWarp=1 !tWarp !hBlur !interlacing
profile.PSX=pixelSize=2 colorMode=1 !dithering rgbSteps=16 vWarp=2 tWarp !hBlur profile.PSX=pixelSize=2 colorMode=1 !dithering rgbSteps=16 vWarp=2 tWarp !hBlur interlacing
profile.REALITY=profile.PSX !tWarp hBlur profile.REALITY=profile.PSX !tWarp hBlur interlacing
profile.VR32=pixelSize=8 colorMode=0 !dithering hueSteps=2 satSteps=2 valSteps=2 vWarp=1 !tWarp !hBlur profile.VR32=pixelSize=8 colorMode=0 !dithering hueSteps=2 satSteps=2 valSteps=2 vWarp=1 !tWarp !hBlur !interlacing
# -- SCREENS -- # -- SCREENS --
# default # default
@ -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