Editing Shaders and filters
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | Shaders and filters can be applied to video games to | + | Shaders and filters can be applied to video games to achieve some kind of visual effect. These can be from attempting to replicate [[Display FAQ|aperture grille]] displays, NTSC signals, or something more exotic. |
+ | Visit the [[List_of_shaders_and_filters |List of shaders and filters]] page for more examples. | ||
==Emulator support== | ==Emulator support== | ||
Line 49: | Line 50: | ||
|.slv/.slf, .vp/.fp | |.slv/.slf, .vp/.fp | ||
|Requires Pete's OpenGL2 or gpuBladeSoft. | |Requires Pete's OpenGL2 or gpuBladeSoft. | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| style="text-align: center;"|[[PCSX2]] | | style="text-align: center;"|[[PCSX2]] | ||
Line 70: | Line 67: | ||
|GLSL equiv. of cgp - possible to stack several shaders with this. | |GLSL equiv. of cgp - possible to stack several shaders with this. | ||
|} | |} | ||
− | |||
− | |||
− | |||
==Types== | ==Types== | ||
+ | {{Main|List of shaders and filters}} | ||
[[File:Crt-geom.png|thumb|190px|crt-geom-flat.cg, a popular CRT shader.]] | [[File:Crt-geom.png|thumb|190px|crt-geom-flat.cg, a popular CRT shader.]] | ||
===CRT Shaders=== | ===CRT Shaders=== | ||
Line 86: | Line 81: | ||
These software filters replicate the signals that consoles output to the TV. They vary in quality, with the lowest quality being RF, then composite, then S-Video, and then RGB (SCART) being the highest quality. Many emulators have blargg's NTSC filter libraries<ref name="blargg">http://slack.net/~ant/libs/ntsc.html</ref> built into them. They can also be separately downloaded in filter plugin format. | These software filters replicate the signals that consoles output to the TV. They vary in quality, with the lowest quality being RF, then composite, then S-Video, and then RGB (SCART) being the highest quality. Many emulators have blargg's NTSC filter libraries<ref name="blargg">http://slack.net/~ant/libs/ntsc.html</ref> built into them. They can also be separately downloaded in filter plugin format. | ||
+ | ===LCD Shaders=== | ||
+ | [[File:Lcd-grid.png|thumb|256px|cgwg's lcd-grid-v2 shader with GBA colors.]] | ||
+ | These replicate the look of a low-resolution LCD common on handhelds. These can range from a simple grid drawn around the pixels to a detailed recreation of each pixel's RGB subpixels. May also include motion blurring to simulate ghosting and washed out color gamuts. | ||
− | === | + | ===Game Boy Shader=== |
− | + | [[File:Gb.png|thumb|189px|GameBoy Shader with default palette. Other palettes are available.]] | |
− | + | This .cgp shader replicates the dot matrix screen of a Game Boy, complete with the ghosting problems to reproduce certain visual effects. Made by Harlequin. Requires [[RetroArch]]. | |
− | |||
− | |||
===Smoothing shaders=== | ===Smoothing shaders=== | ||
These shaders, such as 2xSai, Super Eagle, Super 2xSai, scaleX, HQx, xBR and xBRZ attempt to reduce the pixelation by smoothing and rounding. They can cause a lot of false positives and distortions, however, scaling the image 2x or 3x using nearest neighbor, then applying the smoothing shader will reduce the intensity of the smoothing by keeping the pixel shapes intact, eliminating most distortions while keeping a fairly smooth look. | These shaders, such as 2xSai, Super Eagle, Super 2xSai, scaleX, HQx, xBR and xBRZ attempt to reduce the pixelation by smoothing and rounding. They can cause a lot of false positives and distortions, however, scaling the image 2x or 3x using nearest neighbor, then applying the smoothing shader will reduce the intensity of the smoothing by keeping the pixel shapes intact, eliminating most distortions while keeping a fairly smooth look. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Dithering=== | ===Dithering=== | ||
− | |||
− | |||
− | |||
− | |||
− | [[ | + | These are shaders designed to detect and smooth [[dithering]]. [https://github.com/libretro/common-shaders/tree/master/dithering mdapt] is a popular one. There is also a newer gdapt. |
− | + | ||
− | |||
− | |||
===Pixellate=== | ===Pixellate=== | ||
− | + | ||
This shader is supposed to appear the same as the nearest neighbor (aka "unfiltered"), except with minor corrections when using a non-integer scale that is increasingly less noticeable the higher it is scaled. This shader is useful to anyone who wants to keep things as sharp as possible without worrying about scale factors. Available in [https://github.com/hizzlekizzle/quark-shaders/tree/master/Pixellate.shader Quark] and [https://github.com/libretro/common-shaders/blob/master/retro/shaders/pixellate.cg Cg] shader formats. A newer alternative that does the same thing (but may give sharper results) is the sharp-bilinear shader, which prescales the image to a high resolution, then downscales using bilinear scaling. | This shader is supposed to appear the same as the nearest neighbor (aka "unfiltered"), except with minor corrections when using a non-integer scale that is increasingly less noticeable the higher it is scaled. This shader is useful to anyone who wants to keep things as sharp as possible without worrying about scale factors. Available in [https://github.com/hizzlekizzle/quark-shaders/tree/master/Pixellate.shader Quark] and [https://github.com/libretro/common-shaders/blob/master/retro/shaders/pixellate.cg Cg] shader formats. A newer alternative that does the same thing (but may give sharper results) is the sharp-bilinear shader, which prescales the image to a high resolution, then downscales using bilinear scaling. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
===Border=== | ===Border=== | ||
Line 164: | Line 113: | ||
A tone mapping shader allows you to use an external LUT texture to do tone mapping and other color adjustments.<ref name="tonemapping">http://filthypants.blogspot.com/2017/06/retroarch-tone-mapping-lut-shader.html</ref> The LUT texture is PNG image that can be edited in any image editing software to have the desired color adjustment. When the modified LUT is used in the shader, the color adjustment gets applied to the game's video output. | A tone mapping shader allows you to use an external LUT texture to do tone mapping and other color adjustments.<ref name="tonemapping">http://filthypants.blogspot.com/2017/06/retroarch-tone-mapping-lut-shader.html</ref> The LUT texture is PNG image that can be edited in any image editing software to have the desired color adjustment. When the modified LUT is used in the shader, the color adjustment gets applied to the game's video output. | ||
− | |||
− | |||
==Shaders on real CRTs== | ==Shaders on real CRTs== | ||
Line 174: | Line 121: | ||
You can combine those things with these two shader presets: [https://github.com/libretro/common-shaders/blob/master/cgp/tvout/tvout.cgp tvout.cgp] for 240p and [https://github.com/libretro/common-shaders/blob/master/cgp/tvout%2Binterlacing/tvout%2Binterlacing.cgp tvout+interlacing.cgp] for 480p. Both of these allow you to have adjustable signal resolution blur applied horizontally, as well as color controls like gamma, saturation, and the option to use TV color range (16-235) instead of PC color range (0-255), while the 480p version provides a scanline shader that is interlaced on 480-line content. The signal resolution blur works best if you use a large horizontal resolution (1280 or higher recommended) while keeping your vertical resolution at 240 or 480, and setting the aspect ratio of the emulator to stretch to fit. The higher horizontal resolution will make it look natural and convincing, avoiding banding issues. Can be combined with NTSC filters/shaders for maximum authenticity, check out the shader presets in [https://github.com/libretro/common-shaders/tree/master/cgp/tvout /cgp/tvout] and [https://github.com/libretro/common-shaders/tree/master/cgp/tvout%2Binterlacing /cgp/tvout+interlacing] for some examples. | You can combine those things with these two shader presets: [https://github.com/libretro/common-shaders/blob/master/cgp/tvout/tvout.cgp tvout.cgp] for 240p and [https://github.com/libretro/common-shaders/blob/master/cgp/tvout%2Binterlacing/tvout%2Binterlacing.cgp tvout+interlacing.cgp] for 480p. Both of these allow you to have adjustable signal resolution blur applied horizontally, as well as color controls like gamma, saturation, and the option to use TV color range (16-235) instead of PC color range (0-255), while the 480p version provides a scanline shader that is interlaced on 480-line content. The signal resolution blur works best if you use a large horizontal resolution (1280 or higher recommended) while keeping your vertical resolution at 240 or 480, and setting the aspect ratio of the emulator to stretch to fit. The higher horizontal resolution will make it look natural and convincing, avoiding banding issues. Can be combined with NTSC filters/shaders for maximum authenticity, check out the shader presets in [https://github.com/libretro/common-shaders/tree/master/cgp/tvout /cgp/tvout] and [https://github.com/libretro/common-shaders/tree/master/cgp/tvout%2Binterlacing /cgp/tvout+interlacing] for some examples. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Notable ReShade shaders== | ==Notable ReShade shaders== | ||
− | These are not [[Shader_Presets|shader presets]]. But you can create your own custom preset using these .fx shaders. As some of the effects (RTGI and Motion Estimation etc.) require depth access, make sure to have your [https:// | + | These are not [[Shader_Presets|shader presets]]. But you can create your own custom preset using these .fx shaders. As some of the effects (RTGI and Motion Estimation etc.) require depth access, make sure to have your [https://www.youtube.com/watch?v=zMceMD9OzIE depth buffer correctly configured] if you want to use them. |
− | + | [https://www.patreon.com/mcflypg Pascal Gilcher's RTGI shader] ($) | |
− | :Developed by [https://twitter.com/mcflypg Pascal "Marty McFly" Gilcher], RTGI & '''Screen-Space''' Ray Traced Global Illumination is | + | :Developed by [https://twitter.com/mcflypg Pascal "Marty McFly" Gilcher], RTGI & '''Screen-Space''' Ray Traced Global Illumination is an upcoming shader for ReShade which make use of Path Tracing to bring Real Time Global Illumination to every games. Global Illumination is certainly not something new for games but unlike conventional Baked / Precomputed Realtime GI, Marty McFly's Path Traced solution can provide a way more realistic and physically correct Global Illumination for every game. |
− | :[https://www.youtube.com/watch?v=ZOPgXRZSvzQ Ray Tracing Revolution's video about RTGI] | + | ::[https://www.youtube.com/watch?v=ZOPgXRZSvzQ Ray Tracing Revolution's video about RTGI] |
− | + | [https://framedsc.com/ReshadeGuides/lutgenguide.htm qUINT lightroom] | |
− | : | + | :LUTs (Look-up Tables) are a cheap and simple way of changing the colours of your game without having to rely on a huge stack of shaders that eats at your performance. You can use them to make in-game colours look more natural (colour correction), or give your game a certain stylised look (colour grading). |
− | + | [https://gist.github.com/martymcmodding/69c775f844124ec2c71c37541801c053 qUINT Motion Estimation] | |
− | :: | + | :Injecting TAA and per-object motion blurs into games. [https://twitter.com/Dachsjaeger/status/1566850012163735552 Demonstration] |
− | + | [https://github.com/martymcmodding/qUINT/blob/master/Shaders/qUINT_mxao.fx qUINT MXAO] | |
− | : | + | :Alternative to RTGI but there is no need to use MXAO, as RTGI does what it does much better. |
− | + | [https://github.com/lordbean-git/HQAA lordbean HQAA] | |
− | : | + | :Post-rendering Anti-Aliasing. |
− | + | [https://github.com/lordbean-git/ASSMAA lordbean ASMAA] | |
− | + | :Post-rendering Anti-Aliasing. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | : | ||
− | + | [https://github.com/MajorPainTheCactus/AutoHDR-ReShade AutoHDR] | |
− | : | + | :This add on is ideally intended to be used with the Sony Megatron ReShade Port Presets. |
− | + | [https://github.com/Matsilagi/RSRetroArch/ matsilagi's RSRetroArch] | |
:Repository of RetroArch and retro-related shaders / shaders from programs, ported for ReShade | :Repository of RetroArch and retro-related shaders / shaders from programs, ported for ReShade | ||
− | + | [https://github.com/akgunter/crt-royale-reshade akgunter's crt-royale-reshade] | |
− | + | :This is a port of the crt-royale shader by TroggleMonkey from RetroArch/libretro to ReShade 4.9+. | |
− | + | [https://forums.libretro.com/t/crt-guest-advanced-hd-and-ntsc-for-reshade/41880 DevilSingh's CRT-Guest-Advanced, HD and NTSC for ReShade] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Downloads== | ==Downloads== | ||
Line 271: | Line 192: | ||
:*[[CRT_shaders|CRT shaders]] | :*[[CRT_shaders|CRT shaders]] | ||
:*[[NTSC_filters|NTSC filters]] | :*[[NTSC_filters|NTSC filters]] | ||
− | |||
==References== | ==References== |