Next Generation Emulation banner

1 - 2 of 2 Posts

·
Registered
Joined
·
90 Posts
Discussion Starter #1
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
 
1 - 2 of 2 Posts
Top