Compare commits

..

7 commits

14 changed files with 111 additions and 21 deletions

View file

@ -1,7 +1,7 @@
# ɅEON 199X
My fork of [SlinkousArt's Aeon Shader](https://github.com/slinkousart/aeon),
aimed at expanding its concept to other "retro" graphic effects.
A Minecraft demake shader and my fork of [SlinkousArt's Aeon Shader](https://github.com/slinkousart/aeon),
aimed at providing a variety of effects in the vein of its parent project.
## Features
@ -9,8 +9,10 @@ aimed at expanding its concept to other "retro" graphic effects.
- Depth of Field
- Dithering
- Downscaling
- PSX Vertex Warping
- PSX Texture Warping
- Horizontal Blur
- Screen-Space Vertex Warping
- Affine Texture Warping
- World Curvature
## Acknowledgements

47
shaders/final.fsh Normal file
View file

@ -0,0 +1,47 @@
#version 120
#define pixelSize // [1 2 4 8 16]
//#define hBlur
varying vec2 texcoord;
uniform sampler2D gcolor;
uniform float viewWidth;
#ifdef hBlur
vec2 neighbor = vec2(1 / viewWidth, 0);
float avg(float l, float c, float r) {
return (l + c + r) / 3;
}
void main() {
vec3 color = texture2D(gcolor, texcoord).rgb;
vec2 left = texcoord - neighbor;
vec2 right = texcoord + neighbor;
vec3 lColor;
if(left.x >= 0)
lColor = texture2D(gcolor, left).rgb;
else
lColor = color;
vec3 rColor;
if(right.x <= viewWidth)
rColor = texture2D(gcolor, right).rgb;
else
rColor = color;
vec3 blurred = vec3(avg(lColor.r, color.r, rColor.r), avg(lColor.g, color.g, rColor.g), avg(lColor.b, color.b, rColor.b));
gl_FragData[0] = vec4(blurred, 1);
}
#else
void main() {
gl_FragData[0] = texture2D(gcolor, texcoord);
}
#endif

3
shaders/final.vsh Normal file
View file

@ -0,0 +1,3 @@
#version 120
#include "/module/empty.vert"

View file

@ -2,6 +2,8 @@
#define pixelSize 2 // [1 2 4 8 16]
#define worldCurvature 0 // [0 1 2]
varying vec2 texcoord;
varying vec4 color;
varying vec2 lmcoord;
@ -26,5 +28,9 @@ void main() {
#ifdef tWarp
texture_warp();
#endif
#ifndef NON_WORLD
#include "/module/world.vert"
#endif
}

View file

@ -0,0 +1 @@
#include "/gbuffers_basic.fsh"

View file

@ -0,0 +1,2 @@
#define NON_WORLD
#include "/gbuffers_basic.vsh"

View file

@ -1,5 +1,6 @@
#define tWarp_mod 1.5
#define NON_WORLD
#include "/gbuffers_basic.vsh"

View file

@ -0,0 +1 @@
#include "/gbuffers_basic.fsh"

View file

@ -0,0 +1,2 @@
#define NON_WORLD
#include "/gbuffers_basic.vsh"

View file

@ -0,0 +1 @@
#include "/gbuffers_basic.fsh"

View file

@ -0,0 +1,2 @@
#define NON_WORLD
#include "/gbuffers_basic.vsh"

View file

@ -3,6 +3,7 @@ profile.DEFAULT=Default
profile.AEON=Aeon Upstream
profile.DOS=DOS
profile.PSX=PSX
profile.REALITY=Project Reality
profile.VR32=VR32
option.pixelSize=Downscaling
@ -22,9 +23,13 @@ option.hueSteps=Hue Depth
option.satSteps=Saturation Depth
option.valSteps=Value Depth
screen.PSX=PSX
screen.SCREEN=Screen
screen.CONSOLE=Consoles
screen.PSX=PSX (1994)
option.vWarp=Vertex Warping
option.vWarp.comment=Emulates screen-space vertex snapping responsible for vertex wobble on the PSX
option.vWarp.comment=Emulates screen-space vertex snapping responsible for vertex wobble on the Playstation
value.vWarp.0=Off
value.vWarp.1=Minimal (1x)
value.vWarp.2=Low (2x)
@ -33,7 +38,11 @@ value.vWarp.8=High (8x)
value.vWarp.16=Extreme (16x)
value.vWarp.32=Silly (32x)
option.tWarp=Texture Warping
option.tWarp.comment=Emulates affine texture mapping responsible for warping textures on the PSX
option.tWarp.comment=Emulates affine texture mapping responsible for warping textures on the Playstation
screen.REALITY=Project Reality (1996)
option.hBlur=Horizontal Blur
option.hBlur.comment=Emulates the blur responsible for reducing LCD clarity on the N64
screen.FX=FX
option.dof=Depth of Field
@ -44,8 +53,6 @@ value.dofRes.0=Static
value.dofRes.1=Dynamic
option.worldCurvature=World Curvature
value.worldCurvature.0=Off
value.worldCurvature.1=Chunk
value.worldCurvature.2=Cylinder
value.worldCurvature.3=Polyhedron
value.worldCurvature.4=Sphere
value.worldCurvature.1=Cylinder
value.worldCurvature.2=Round

View file

@ -0,0 +1,8 @@
#if worldCurvature == 1
float z = gl_Position.z * gl_Position.z;
gl_Position.y -= z / 256;
#elif worldCurvature == 2
vec2 xz = gl_Position.xz;
gl_Position.y -= ceil(( dot(xz, xz) * 5 ) / 512) / 5;
#endif

View file

@ -1,25 +1,32 @@
sliders=pixelSize hueSteps satSteps valSteps rgbSteps vWarp
# -- PROFILES --
profile.DEFAULT=pixelSize=2 colorMode=0 dithering hueSteps=4 satSteps=4 valSteps=4 vWarp=0 !tWarp
profile.AEON=pixelSize=1 colorMode=0 dithering hueSteps=8 satSteps=4 valSteps=4 vWarp=0 !tWarp
profile.DOS=pixelSize=4 colorMode=1 dithering rgbSteps=2 vWarp=1 !tWarp
profile.PSX=pixelSize=2 colorMode=1 !dithering rgbSteps=16 vWarp=2 tWarp
profile.VR32=pixelSize=8 colorMode=0 !dithering hueSteps=2 satSteps=2 valSteps=2 vWarp=1 !tWarp
profile.DEFAULT=pixelSize=2 colorMode=0 dithering hueSteps=4 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
profile.DOS=pixelSize=4 colorMode=1 dithering rgbSteps=2 vWarp=1 !tWarp !hBlur
profile.PSX=pixelSize=2 colorMode=1 !dithering rgbSteps=16 vWarp=2 tWarp !hBlur
profile.REALITY=profile.PSX !tWarp hBlur
profile.VR32=pixelSize=8 colorMode=0 !dithering hueSteps=2 satSteps=2 valSteps=2 vWarp=1 !tWarp !hBlur
# -- SCREENS --
# default
screen=<profile> <empty> pixelSize <empty> [COLOR] [PSX] [FX]
screen=<profile> <empty> pixelSize <empty> [COLOR] [SCREEN] [CONSOLE] [FX]
# colors
screen.COLOR.columns=3
screen.COLOR=colorMode dithering <empty> rgbSteps <empty> <empty> hueSteps satSteps valSteps
# psx
screen.PSX=vWarp tWarp
# screen effects
screen.SCREEN=<empty>
# fx
screen.FX=dof dofRes
# console effects
screen.CONSOLE.columns=1
screen.CONSOLE=[PSX] [REALITY]
screen.PSX=vWarp tWarp # playstation
screen.REALITY=hBlur # nintendo 64
# custom effects
screen.FX=dof dofRes worldCurvature
# -- CONDITIONALS --
gbuffers_hand.enabled=tWarp