Changes

Jump to navigation Jump to search

CRT shaders

514 bytes added, 00:50, 23 July 2013
no edit summary
[[File:CrtRetroarch_2013-geom07-22_17-21-17-60.png|thumb|350px298px|crtCRT-geomGeom-flatFlat, with default settings]]These replicate aperture grille CRTs, which have sharp images and strong scanlines. If you find that this doesn't look a damn thing like your old TV, it's probably because you owned a shadow-mask style CRT, which has less noticeable scanlines (the easiest way to tell the difference is to feel the curve of the screen; aperture grilles only curve horizontally if at all). Unfortunately, shadow masks require resolutions of upwards of 3000x4000 to emulate accurately, so all we have for the time being are aperture grille shaders.
Use integer scaling. This means either using windowed mode (x2,x3,x4) or setting an integer scaling option in the video options. The reason is that non-integer scaled scanlines will result in uneven lines with artifacts.
==Tweaking CRT Geom==
You can open up CRT Geom in notepad and edit it.
 
[[File:Retroarch_2013-07-22_17-22-39-87.png|thumb|298px|CRT-Geom-Flat, with brighter scanlines]]
 
 
===Scanline Brightness===
Raise the 0.3 to a higher value to make the scanlines brighter. I do not recommend going past 0.4, as at that point on bright colors scanlines completely disappear, and going further makes them appear again, but on the wrong field in said bright colors, which is inaccurate. Try 0.35.
  ===Sharpness[[File:Retroarch_2013-07-22_19-24-11-41.png|thumb|298px|CRT-Geom-Flat, at 2x sharpness]]===  
If you find the shader looks too blurry, you can increase the sharpness by going to the sections in the code that have the following lines (should be at the beginning of both the vertex and fragment portions of the shader code):
uniform vec2 rubyInputSize;
vec2 InputSize = vec2(n*rubyInputSize.x, rubyInputSize.y);
vec2 TextureSize = vec2(n*rubyTextureSize.x, rubyTextureSize.y);
[[File:Retroarch_2013-07-22_19-27-22-65.png|thumb|298px|CRT-Geom-Flat, at 4x sharpness]]Replace "n" with either 2 for increased sharpness, or 4 for maximum sharpness. Then Ctrl+F and seek out any portions of the code that say "rubyInputSize" and "rubyTextureSize", and replace them with "InputSize" and "TextureSize" respectively.
===Scanline Size===
To obtain thinner, 480p-esque scanlines, first tweak the shader to apply greater sharpness, but only apply it to the TextureSize. The code should look like this:
uniform vec2 rubyTextureSize;
vec2 TextureSize = vec2(2*rubyTextureSize.x, 2*rubyTextureSize.y);
[[File:Retroarch_2013-07-22_19-31-23-11.png|thumb|298px|CRT-Geom-Flat, with thin scanlines]]Again, this is for both the vertex and fragment portions. Don't forget to seek out any other instances of rubyTextureSize, and replace them with simply TextureSize.
Now, go to the beginning of the fragment portion, and modify it as such:
ilfac = vec2(1.0,1.0);
===Phosphor===
[[File:Retroarch_2013-07-22_19-33-30-35.png|thumb|298px|CRT-Geom-Flat, with phosphor disabled]]To disable phosphor emulation (which alternately tints pixels green and magenta), comment out the following lines, found at the bottom of the shader code:
vec3 dotMaskWeights = mix(
Anonymous user

Navigation menu