Next Generation Emulation banner

My shader with best graphic - colors fix, texture, levels, saturation

3K views 5 replies 3 participants last post by  DanilaZabiaka 
#1 · (Edited)
Privet! It's the next version of my shader. All you need - opengl2 plugin, disable all pete's improvements - they sucks (but you can keep screen filtering), hires. I recommend PCSXR-PGXP with enabled pgxp, also this version has shutdown command
Also, I like shader level 3 (its strength of blur, but you can set offset in gpuPeteOGL2.slv)

So, comparing









Sheders mission is providing REALLY natural view and settings

Just pause emulation and open gpuPeteOGL2.slf (also gpuPeteOGL2.slv with blur offset is available)


Suggestions discussion are welcome. By the way, I wanna improve pgxp version, may be some coder who have a little knowledge help me..

So, gpuPeteOGL2.slv
CSS:
uniform vec4 OGL2Param;

void main()
{
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;

    gl_TexCoord[0]=gl_MultiTexCoord0.xyxy+vec4(-0.5,-0.5,-1.5,-1.5) * OGL2Param.xyxy*2;
    gl_TexCoord[1]=gl_MultiTexCoord0.xyxy+vec4( 0.5,-0.5, 1.5,-1.5) * OGL2Param.xyxy*2;
    gl_TexCoord[2]=gl_MultiTexCoord0.xyxy+vec4(-0.5, 0.5,-1.5, 1.5) * OGL2Param.xyxy*2;
    gl_TexCoord[3]=gl_MultiTexCoord0.xyxy+vec4( 0.5, 0.5, 1.5, 1.5) * OGL2Param.xyxy*2;
}
gpuPeteOGL2.slf
CSS:
//patched by Danila Zabiaka - white black noise
#define white 200.0
#define black 10.0
#define noise 7.0
#define offset -25.0
#define satoffset 5.0 //5 as start point. sat=satoffset-5.0, 6 means 1.1


float pseudoNoise(vec2 co)
{
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453)*fract(sin(dot(co.xy ,vec2(12.9898,78.233)*2.0)) * 43758.5453); //pseudo random number generator
}

vec3 czm_saturation(vec3 rgb, float adjustment)
{
    // Algorithm from Chapter 16 of OpenGL Shading Language
    const vec3 W = vec3(0.2125, 0.7154, 0.0721);
    vec3 intensity = vec3(dot(rgb, W));
    return mix(intensity, rgb, adjustment);
}

uniform sampler2D OGL2Texture;

const vec3 RGBtoY = vec3(0.299, 0.587, 0.114);
const vec3 RGBtoI = vec3(0.596,-0.275,-0.321);
const vec3 RGBtoQ = vec3(0.212,-0.523, 0.311);
const vec3 YIQtoR = vec3(1.0, 0.95568806036115671171, 0.61985809445637075388);
const vec3 YIQtoG = vec3(1.0,-0.27158179694405859326,-0.64687381613840131330);
const vec3 YIQtoB = vec3(1.0,-1.10817732668266195230, 1.70506455991918171490);

void main()
{
    vec3 c0, c1;

    c0 = (texture2D(OGL2Texture,gl_TexCoord[0].xy).rgb +
         (texture2D(OGL2Texture,gl_TexCoord[0].zy).rgb) * 0.25 +
         (texture2D(OGL2Texture,gl_TexCoord[0].xw).rgb) * 0.25 +
         texture2D(OGL2Texture,gl_TexCoord[1].xy).rgb +
         (texture2D(OGL2Texture,gl_TexCoord[1].zy).rgb) * 0.25 +
         (texture2D(OGL2Texture,gl_TexCoord[1].xw).rgb) * 0.25 +
         texture2D(OGL2Texture,gl_TexCoord[2].xy).rgb +
         (texture2D(OGL2Texture,gl_TexCoord[2].zy).rgb) * 0.25 +
         (texture2D(OGL2Texture,gl_TexCoord[2].xw).rgb) * 0.25 +
         texture2D(OGL2Texture,gl_TexCoord[3].xy).rgb +
         (texture2D(OGL2Texture,gl_TexCoord[3].zy).rgb) * 0.25 +
         (texture2D(OGL2Texture,gl_TexCoord[3].xw).rgb) * 0.25 ) / 6.0;

    c1 = vec3(pow(dot(c0, RGBtoY), 1.2), dot(c0, RGBtoI) * 1.2, dot(c0, RGBtoQ) * 1.2);

    gl_FragColor = vec4(dot(c1, YIQtoR), dot(c1, YIQtoG), dot(c1, YIQtoB), 0.0);
    gl_FragColor.xyz = czm_saturation(gl_FragColor.xyz, 1.0+(satoffset-5.0)/10.0);
  
    gl_FragColor = gl_FragColor *white/255.0+black/255.0-gl_FragColor*black/255.0+(pseudoNoise(gl_TexCoord[1].xy)+offset/100.0)*noise/100.0;
}
By the way! I recommend you to make display calibration. At least my old laptop with intel hd 4000 has saturation glitch, i've set -34 in intel panel

AND there is LCD problem - it has to white 255-255-255 color, you can reduce it using windows's dccw. I prefer warm colors so my settings like this


Also, LCD displays has problem with black point, normally you should increase black point, but you cant. But you can make it with shader.

Bye!

Sensitive content, not recommended for those under 18
Show Content
 
See less See more
7
#3 ·
Hi you there, i've tested your shader filter. I have to say. It's a great one !!!!!

Well, i tested inside at the GpuBladesoft Plugin. I won't tasted this inside at the PETE Plugins as well. Because, i rather prefer those Pixels / Graphics PSX Graphics. But later i will using this inside on a OpenGL plugin.
I used first some games; such Quake II, Alien Trilogy, Alien Resurrection and Castlevania Symphony Of The Night.
That's for sure, it makes a lot of the images so blurry. But if i increment the internal resolutions, moving the brightness, contrast feeling. And on using some graphic filters such; 2sal, 2x, 3x, SuperEagle, Hq2, Hq3 and others. The image quality increments notably.

That's for sure, the colors feeling that you've added and the grainy effects; it makes the whole experience a lot better upon these games. it was like if i were watching upon on a film or something.

By the way. I tested your Scanliness shader / Filter too as well. It's a really great one at this. Those games looked more "natural" like if i playing them on a real old TV or something. It feels great.

Dude you did a great job here, i really appreciate your efforts. Your shader filters are great inside at the Software kind of Graphics, because later i tested them at the PETE Plugins, but the results are minimal, won't rather like at the Software kind of graphics.

Got something more? I want on test them !!!!!


Thank You !!!!
 
#4 ·
thanks, i made better solution (in some things) for every console which retroarch supports
 
#6 ·

I made things what i want in retroarch, finally i tuned it, cause its unusable out of box
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top