Compare commits

..

5 commits

5 changed files with 46 additions and 4 deletions

View file

@ -0,0 +1,4 @@
#version 120
#include "/module/empty.frag"

33
shaders/gbuffers_hand.vsh Normal file
View file

@ -0,0 +1,33 @@
#version 120
#define pixelSize 2 // [1 2 4 8 16]
#define itemFix
in int itemId;
varying vec2 texcoord;
varying vec4 color;
varying vec2 lmcoord;
uniform mat4 gbufferModelView, gbufferModelViewInverse;
uniform float viewWidth, viewHeight;
#include "/module/vertex_warp.vert"
#include "/module/texture_warp.vert"
void main() {
texcoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy;
lmcoord = (gl_TextureMatrix[1] * gl_MultiTexCoord1).xy;
color = gl_Color;
#if vWarp > 0
vertex_warp();
#else
gl_Position = ftransform();
#endif
if(itemId == 0) {
texture_warp();
}
}

View file

@ -28,4 +28,7 @@ value.vWarp.16=Extreme (16x)
value.vWarp.32=Silly (32x) value.vWarp.32=Silly (32x)
option.tWarp=Texture Warping 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 PSX
option.itemFix=Held Item Fix
option.itemFix.comment=Exclude held item from texture warping

View file

@ -7,6 +7,6 @@ vec4 vertex_warp() {
vec4 position = gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex; vec4 position = gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex;
vec2 nearest = round(position.xy / position.w * screen) / screen; vec2 nearest = round(position.xy / position.w * screen) / screen;
position.xy = nearest; position.xy = nearest;
return (gl_ProjectionMatrix * gbufferModelView * position); gl_Position = gl_ProjectionMatrix * gbufferModelView * position;
} }

View file

@ -1,11 +1,13 @@
sliders=pixelSize hueSteps satSteps valSteps rgbSteps vWarp sliders=pixelSize hueSteps satSteps valSteps rgbSteps vWarp
profile.DEFAULT=pixelSize=2 colorMode=0 dithering hueSteps=4 satSteps=4 valSteps=4 vWarp=0 !tWarp profile.DEFAULT=pixelSize=2 colorMode=0 dithering hueSteps=4 satSteps=4 valSteps=4 vWarp=0 !tWarp
profile.PSX=pixelsize=2 colorMode=1 !dithering rgbSteps=16 vWarp=2 tWarp profile.PSX=pixelsize=2 colorMode=1 !dithering rgbSteps=16 vWarp=2 tWarp itemFix
profile.DOS=pixelSize=4 colorMode=1 dithering rgbSteps=2 vWarp=0 !tWarp profile.DOS=pixelSize=4 colorMode=1 dithering rgbSteps=2 vWarp=1 !tWarp
screen=<profile> <empty> pixelSize <empty> [COLOR] [PSX] screen=<profile> <empty> pixelSize <empty> [COLOR] [PSX]
screen.COLOR=colorMode dithering rgbSteps <empty> hueSteps satSteps valSteps screen.COLOR=colorMode dithering rgbSteps <empty> hueSteps satSteps valSteps
screen.PSX=vWarp tWarp screen.PSX=vWarp tWarp <empty> itemFix
gbuffers_hand.enabled=tWarp && itemFix