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 enhance visuals or achieve some kind of visual effect. These can be from attempting to replicate [[Display FAQ|aperture grille]] displays, NTSC signals, or something more exotic.
+
Shaders and filters can be applied to video games to achieve some kind of visual effect. These can be from attempting to replicate [[Recommended Displays|aperture grille]] displays, NTSC signals, or something more exotic.
  
 
==Emulator support==
 
==Emulator support==
Line 11: Line 11:
 
|
 
|
 
Old bsnes XML shaders (.shader) and old bsnes filter plugins (.filter) are no longer usable in current versions of RetroArch.
 
Old bsnes XML shaders (.shader) and old bsnes filter plugins (.filter) are no longer usable in current versions of RetroArch.
SoftFilters are dynamic libraries, the extension depends on the platform.
+
SoftFilters are dynamic libraries, the extension depends on platform.
  
 
.cgp stacks several .cg files on top of one another. Same thing with .glslp and .slangp.
 
.cgp stacks several .cg files on top of one another. Same thing with .glslp and .slangp.
Line 19: Line 19:
 
|Only on special builds such as [http://ykhwong.x-y.net/ SVN Daum].
 
|Only on special builds such as [http://ykhwong.x-y.net/ SVN Daum].
 
|-
 
|-
| style="text-align: center;"|[[higan]]
+
| style="text-align: center;"|[[Higan]]
 
|.filter, .shader, folders
 
|.filter, .shader, folders
 
|
 
|
 
.shader removed in future higan releases in favor of Quark shader folders.
 
.shader removed in future higan releases in favor of Quark shader folders.
  
.filter works in old [[higan|bsnes]] versions (circa v082) but not current in current versions of higan.
+
.filter works in old [[higan|bsnes]] versions (circa v82) but not current in current versions of higan.
 
|-
 
|-
| style="text-align: center;"|[[MAME|HqMAME]]
+
| style="text-align: center;"|[[HqMAME]]
 
|.fx
 
|.fx
 
|xBRZ and HQx
 
|xBRZ and HQx
 
|-
 
|-
| style="text-align: center;"|[[OpenEmu]]
+
| style="text-align: center;"|[[OpenEMU]]
 
|.cg,
 
|.cg,
|slangp support coming soon with a new [https://github.com/openemu/openemu-shaders Metal rendering engine]
+
|
 
|-
 
|-
 
| style="text-align: center;"|[[Snes9x]]
 
| style="text-align: center;"|[[Snes9x]]
Line 42: Line 42:
 
|Only with a [http://www.lanpartyguide.com/zelda/shaders.html custom Rice Video plugin].
 
|Only with a [http://www.lanpartyguide.com/zelda/shaders.html custom Rice Video plugin].
 
|-
 
|-
| style="text-align: center;"|[[PCSX-Reloaded]]
+
| style="text-align: center;"|[[PCSX-R]]
 
|.slv/.slf, .vp/.fp
 
|.slv/.slf, .vp/.fp
 
|Requires Pete's OpenGL2 or gpuBladeSoft.
 
|Requires Pete's OpenGL2 or gpuBladeSoft.
Line 49: Line 49:
 
|.slv/.slf, .vp/.fp
 
|.slv/.slf, .vp/.fp
 
|Requires Pete's OpenGL2 or gpuBladeSoft.
 
|Requires Pete's OpenGL2 or gpuBladeSoft.
|-
 
| style="text-align: center;"|[[DuckStation]]
 
| .glsl, .fx
 
|
 
 
|-
 
|-
 
| style="text-align: center;"|[[PCSX2]]
 
| style="text-align: center;"|[[PCSX2]]
Line 59: Line 55:
 
|-
 
|-
 
| style="text-align: center;"|[[Dolphin]]
 
| style="text-align: center;"|[[Dolphin]]
|.txt, .glsl
+
|.txt
 
|Can only be used with OpenGL backend.
 
|Can only be used with OpenGL backend.
 
|-
 
|-
Line 70: Line 66:
 
|GLSL equiv. of cgp - possible to stack several shaders with this.
 
|GLSL equiv. of cgp - possible to stack several shaders with this.
 
|}
 
|}
 
;Before diving in;
 
;*Some of the shaders and filters listed below are already included in the chain for some of the [[Shader Presets]] or present as an enhancement/adjustment option (such as [https://www.nvidia.com/content/Control-Panel-Help/vLatest/en-us/mergedProjects/nvdsp/To_use_Digital_Vibrance_to_make_your_desktop_colors_richer.htm digital vibrance]) from [https://www.pcgamingwiki.com/wiki/Category:Graphics_Adaptor GPU driver control panel] or from your digital [[displays|display]] OSD. Some of those things may cause color clipping, exposure issues (due to using excessive digital adjustments to image) and [[Input lag]]. It's recommended to avoid usage of color or excessive image options/filters. But you can use [[Displays|analog device/CRT]]'s OSD adjustments. Another proper option for this using the RTX Dynamic Vibrance option (see [[#AI-powered filters]]) to avoid color crashing and top of that using a HDR device with [[High_dynamic_range#Inverse_tone_mapping|Inverse tone mapping]].
 
  
 
==Types==
 
==Types==
[[File:Crt-geom.png|thumb|190px|crt-geom-flat.cg, a popular CRT shader.]]
+
{{Main|List of shaders and filters}}
 +
[[File:Crt-geom.png|thumb|190px|crt-geom-flat.cg, a popular CRT shader. ]]
 
===CRT Shaders===
 
===CRT Shaders===
 
{{Main|CRT Shaders}}
 
{{Main|CRT Shaders}}
  
Many of these shaders replicate aperture grille CRTs, which tend to have sharp images and strong scanlines. Only a few replicate shadow mask CRTs, often requiring much higher resolutions to display the mask without aliasing.
+
Most of these replicate aperture grille CRTs, which have sharp images and strong scanlines. Only a few replicate shadow mask CRTs, often requiring much higher resolutions.
 
 
 
===NTSC Filters===
 
===NTSC Filters===
{{Main|NTSC Filters}}
+
{{Main|NTSC filters}}
  
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 replicate the signals that consoles output to the TV. They vary in quality, with the lowest being RF, then composite, then s-video and RGB (scart) being the highest quality. Many emulators have NTSC filters 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 display 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.
  
===Handhelds===
+
===GameBoy Shader===
These shaders replicate the visuals of the Dot matrix and LCD displays of older handhelds and their specific artifacts in comparison to newer screens.
+
[[File:Gb.png|thumb|190px|GameBoy Shader with default urine palette. Other palettes are available.]]
  
For LCDs 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.
+
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]].
[[File:Dot.png|thumb|right|[https://github.com/libretro/common-shaders/blob/master/handheld/dot.cg dot.cg]]][[File:Lcd.png|thumb|left|[https://github.com/libretro/common-shaders/tree/master/handheld/lcd-shader lcd]]][[File:Lcd3x.png|thumb|centre|[https://github.com/libretro/common-shaders/blob/master/handheld/lcd3x.cg lcd3x.cg]]]
 
[[File:Lcd-grid.png|thumb|left|256px|cgwg's lcd-grid-v2 shader with GBA colors.]][[File:Gb.png|thumb|189px|right|GameBoy Shader with default palette. Other palettes are available.]][[File:Gameboy.png|thumb|centre|[https://github.com/libretro/common-shaders/tree/master/handheld/gameboy Gameboy],  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 pixellation 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.
====Lanczos====
 
[https://github.com/libretro/common-shaders/blob/master/lanczos/lanczos4.cg lanczos4.cg], [https://github.com/libretro/common-shaders/blob/master/lanczos/lanczos6.cg lanczos6.cg], [https://github.com/libretro/common-shaders/blob/master/lanczos/lanczos12.cg laczos12.cg], [https://github.com/libretro/common-shaders/blob/master/lanczos/lanczos16.cg laczos16.cg]
 
  
[[File:Lanczos12.png|thumb|right|200px|lanczos12.cg]][[File:Lanczos4.png|thumb|left|200px|lanczos4.cg]][[File:Lanczos6.png|thumb|centre|200px|lanczos6.cg]]
 
[[File:Lanczos16.png|thumb|centre|200px|lanczos16.cg]]
 
====Bicubic====
 
Enlarges images by calculating the colour values of new pixels based on a weighted average of neighbouring pixels in the original image. Popular for its ability to produce smooth, high-quality results when resizing images, especially when significant upscaling is required.
 
{| class="wikitable"
 
! scope="col" style="text-align: center;"|Name
 
! scope="col" style="text-align: center;"|Image
 
! scope="col" style="text-align: center;"|
 
Description
 
|-
 
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/bicubic/bicubic-fast.cg bicubic-fast.cg]
 
| style="text-align: center;"|
 
| style="text-align: center;"|
 
|-
 
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/bicubic/bicubic-normal.cg bicubic-normal.cg]
 
| style="text-align: center;"|
 
| style="text-align: center;"|
 
|-
 
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/bicubic/bicubic-sharp.cg bicubic-sharp.cg]
 
| style="text-align: center;"|
 
| style="text-align: center;"|
 
|-
 
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/bicubic/bicubic-sharper.cg bicubic-sharper.cg]
 
| style="text-align: center;"|
 
| style="text-align: center;"|
 
|}
 
====DDT====
 
Data-Dependent Triangulation Shaders look at the square plane formed by the four nearest neighbours (a basic image resizing technique that assigns each pixel in the resized image the colour value of the nearest pixel in the original image). They divide the square plane into two triangular planes. The pixels are bilinearly interpolated using only the three points of the triangles to which they belong.
 
[[File:Ddt-waterpaint.png|thumb|left|[https://github.com/libretro/common-shaders/blob/master/ddt/ddt-waterpaint.cg ddt-waterpaint.cg]]][[File:Ddt.png|thumb|right|[https://github.com/libretro/common-shaders/blob/master/ddt/ddt.cg ddt.cg]]][[File:Ddt-extended.png|thumb|centre|[https://github.com/libretro/common-shaders/blob/master/ddt/ddt-extended.cg ddt-extended.cg]]]
 
====Hqx====
 
("hq" stands for "high quality" and "x" for magnification) is a pixel art scaling algorithm developed by Maxim Stepin and used in emulators such as Nestopia, bsnes, ZSNES, Snes9x, FCE Ultra and many more. There are 3 hqx filters: hq2x, hq3x and hq4x, which scale by a factor of 2, 3 and 4 respectively.
 
[[File:Hq2x.png|thumb|left|[https://github.com/libretro/common-shaders/blob/master/hqx/hq2x.cg hq2x.cg]]][[File:Hq4x.png|thumb|right|[https://github.com/libretro/common-shaders/blob/master/hqx/hq4x.cg hq4x.cg]]]
 
====Eagle====
 
[[File:Super-eagle.png|thumb|right|[https://github.com/libretro/common-shaders/blob/master/eagle/super-eagle.cg super-eagle.cg]]]
 
 
===Dithering===
 
===Dithering===
{{Main|Dithering#Shaders}}
 
A technique used to increase the amount of colour and shading that can be produced on a system. The effect is achieved by using lines or dots which are then blurred by the low quality NTSC signals (composite or RF) used by the system.
 
===Anti-aliasing===
 
A graphics rendering technique used to reduce or eliminate jagged or stepped edges (aliasing artefacts). It works by applying various methods such as super-sampling, multi-sampling, or post-processing filters to improve the smoothness and visual quality of the image, particularly when displaying diagonal lines, curves, or fine details.
 
  
[[File:Advanced-aa.png|thumb|left|200px|[https://github.com/libretro/common-shaders/blob/master/anti-aliasing/advanced-aa.cg advanced-aa.cg]]]
+
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 newer gdapt.
[[File:Fx-aa.png|thumb|right|200px|[https://github.com/libretro/common-shaders/blob/master/anti-aliasing/fx-aa.cg fx-aa.cg]]]
+
 
[[File:Fxaa-edge-detect.png|centre|thumb|200px|[https://github.com/libretro/common-shaders/blob/master/anti-aliasing/fxaa-edge-detect.cg fxaa-edge-detect.cg]]]
 
[[File:Reverse-aa.png|thumb|centre|200px|[https://github.com/libretro/common-shaders/blob/master/anti-aliasing/reverse-aa.cg reverse-aa.cg]]]
 
 
===Pixellate===
 
===Pixellate===
[[File:Pixellate.png|thumb|200px]]
 
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.
 
===Auto-box===
 
[[File:Box-max.png|thumb|left|200px|[https://github.com/libretro/common-shaders/blob/master/auto-box/box-max.cg box-max.cg]]]
 
[[File:Sharpen-lighter-box.png|thumb|right|200px|[https://github.com/libretro/common-shaders/blob/master/auto-box/sharpen-lighter-box.cg sharpen-lighter-box.cg]]]
 
  
Shaders that scale the image within the viewport. This can be useful for ensuring a certain quality of scaling, often with the intention of applying other effects on top that are picky about scaling.
+
This shader is supposed to appear the same as nearest neighbor (aka "unfiltered"), except with minor corrections when using a non-integer scale that are increasingly less noticeable the higher it is scaled. This shader is very 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.
  
 
===Border===
 
===Border===
Line 159: Line 106:
 
===Image Adjustment===
 
===Image Adjustment===
  
Image adjustment shaders allow you to adjust the color levels of an image, including gamma, luminance, contrast, saturation, and so on, for personal preference, accuracy, or compensating your display. Often, these are used alongside other shaders. There are also [https://github.com/libretro/common-shaders/tree/master/handheld/shaders/color shaders] that simulate the color profiles of specific displays, such as the GBA or DS.
+
Image adjustment shaders allow you to adjust the color levels of an image, including gamma, luminance, contrast, saturation, etc., for personal preference, accuracy, or compensating your display. Very often, these are used alongside other shaders. There are also [https://github.com/Monroe88/common-shaders/tree/color-lcd/handheld/color-lcd shaders] that simulate the color profiles of specific displays, such as the GBA or DS.
 
 
===Tonemapping===
 
 
 
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.
 
 
 
:See [[High_dynamic_range#Inverse_tone_mapping|this page]] for Inverse tone mapping.
 
  
 
==Shaders on real CRTs==
 
==Shaders on real CRTs==
  
On 31+kHz PC CRT monitors displaying in high-resolution modes, most filters/shaders should work fine as is, as most were intended for output scaled 3x or higher.  
+
On 31+kHz PC CRT monitors displaying in high resolution modes, most filters/shaders should work fine as is, as most were intended for output scaled 3x or higher.  
  
However, CRT monitors (and 15kHz CRTs) displaying in low-resolution modes like 240p or 480p, you will find many of them won't work correctly due to the low output resolution. In these cases, you should use shaders that are applied only on the horizontal axis, only make changes to color output without scaling, or those that add scanlines/interlacing for 480p output.  
+
However, CRT monitors (and 15kHz CRTs) displaying in low resolution modes like 240p or 480p, you will find many of them won't work correctly due to the low output resolution. In these cases you should use shaders that are applied only on the horizontal axis, only make changes to color output without scaling, or those that add scanlines/interlacing for 480p output.  
  
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 very 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.
 
 
==AI-powered filters==
 
:[https://www.nvidia.com/en-us/software/nvidia-app/ New Nvidia app features AI-powered filters]
 
:[https://www.nvidia.com/en-us/geforce/news/gfecnt/nvidia-freestyle-ansel-enhancements-geforce-experience-article/ Nvidia FreeStyle]
 
:[https://nvidia.custhelp.com/app/answers/detail/a_id/5521/~/nvidia-app-beta-faq What are the requirements to enable RTX Dynamic Vibrance?]
 
AI-powered filters are a new technology with the potential to further improve the emulation experience. These filters use machine learning to automatically enhance the visuals of content. Nvidia recently release their new Nvidia App[https://www.nvidia.com/en-us/software/nvidia-app/] which comes with new AI-powered filters called "Nvidia FreeStyle", one of the filters is RTX Dynamic Vibrance which is an AI-powered dynamic image enhancement without crashing colors. AI-powered filters offer exciting possibilities for the future of emulation. As the technology matures, expect even more advanced features and use cases to emerge, further improving the way we experience various content such as classic video games.
 
 
 
==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://youtu.be/6C_NuhBVdXc depth buffer correctly configured] if you want to use them. See [https://reshade.me/forum/general-discussion/5442-release-misc-emulators-with-depth-buffer-access this thread] for using reshade and depth buffer access for emulators.
 
 
 
;[https://www.martysmods.com/rtgi/ Pascal Gilcher's RTGI shader] ($)
 
:Developed by [https://twitter.com/mcflypg Pascal "Marty McFly" Gilcher], RTGI & '''Screen-Space''' Ray Traced Global Illumination is a shader for ReShade which make use of Path Tracing to bring Real Time Global Illumination to every game. 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.martysmods.com/regrade/ qUINT ReGrade] ($)
 
:Many shaders for ReShade are designed to apply specific color adjustments similar to industry standard software like Adobe Lightroom or DaVinci Resolve. A common approach in ReShade presets is to use many of these color adjustments at once to achieve their look. 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://framedsc.com/ReshadeGuides/lutgenguide.htm qUINT Lightroom]
 
::Free alternative to qUINT ReGrade, but qUINT ReGrade recommended instead of this one.
 
 
 
;[https://www.martysmods.com/solaris/ qUINT Solaris] ($)
 
:Solaris is a physically based exposure and bloom solution. Together with ReGrade, they replicate the journey of light into the camera, onto the sensor and through the editing software. It uses various tricks to generate a physically plausible glow effect around bright light sources with very little performance overhead. It also supports masking objects by depth for better scene integration and make it look natural. For best practices, only use Solaris to adjust the scene brightness so ReGrade receives a well-balanced image to work with.
 
 
 
;[https://www.martysmods.com/physical-depth-of-field/ qUINT Physical DOF] ($)
 
:Games use a pinhole lens camera model to render their images. As such, they do not exhibit the same visual effects seen in real cameras, and effects exclusive to those have to be artificially reintroduced. A Depth of Field (or DOF) filter simulates the blurring of out-of-focus areas in the image. In a real camera, many factors influence the appearance of the DOF blur, or so-called “Bokeh”, which photographers and filmmakers use extensively as an artistic tool. This physical Depth of Field shader recreates this effect as faithfully as possible.
 
 
 
;[https://www.martysmods.com/clarity/ qUINT Clarity] ($)
 
:Effects like unsharp mask are designed to sharpen or soften the image in a wider range, to enhance medium-sized details in the image and give the content some grip. The balanced, yet contrasty look of movie posters and magazine covers is quite often partially achieved through this effect. Much research is going into the type of filters that enhance local contrast, from the most basic unsharp mask to state of the art “Local Laplacian” filtering. Using this effect in realtime on video games allows to give blurry textures some bite, enhance the overall contrast of a scene or produce some pseudo Depth of Field effect to give the scene some depth. Clarity contains 2 different types of image enhancements, which can be used together.
 
 
 
;[https://github.com/martymcmodding/ReShade-Optical-Flow qUINT Optical Flow]
 
:[[Wikipedia:Motion_estimation#Related_terms|Optical Flow]] for games in realtime. The nature of optical flow is to detect/compare changes between frames over time, and then it gives us the motion vector in pixel color like flow map or normal map.
 
 
 
;[https://gist.github.com/martymcmodding/69c775f844124ec2c71c37541801c053 qUINT Motion Estimation]:
 
:[[Wikipedia:Motion_estimation#Related_terms|Motion estimation]] for games in realtime. Useful for Injecting TAA and per-object motion blurs into games [https://twitter.com/Dachsjaeger/status/1566850012163735552 (Demonstration)]. Also see [https://reshade.me/forum/shader-suggestions/6703-very-close-to-per-object-motion-blur-request-a-small-tweak this ReShade forum thread].
 
 
 
;[https://github.com/lordbean-git/HQAA lordbean HQAA]
 
:Post-rendering Anti-Aliasing.
 
 
 
;[https://github.com/Matsilagi/RSRetroArch/ matsilagi's RSRetroArch]
 
:Repository of RetroArch and retro-related shaders / shaders from programs, ported for ReShade
 
 
 
;[https://github.com/MajorPainTheCactus/SonyMegatron-ReShade MajorPainTheCactus's Sony Megatron ReShade]
 
:Sony Megatron shader ported from Retroarch to ReShade. [https://reshade.me/forum/shader-presentation/8420-sony-megatron-colour-video-monitor-port-updated ReShade forum thread].
 
 
 
:;[https://github.com/MajorPainTheCactus/AutoHDR-ReShade AutoHDR]
 
::This add-on is ideally intended to be used with the Sony Megatron ReShade Port Presets.
 
 
 
;[https://forums.libretro.com/t/crt-guest-advanced-hd-and-ntsc-for-reshade/41880 DevilSingh's CRT-Guest-Advanced, HD and NTSC for ReShade]
 
:This is a port of the CRT-Guest-Advanced, HD and NTSC shaders from RetroArch/libretro to ReShade.
 
 
 
;Obsolete
 
:''[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/ASSMAA lordbean ASMAA]:Post-rendering Anti-Aliasing.''
 
:''[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+. Recommended to use "DevilSingh's CRT-Guest-Advanced, HD and NTSC" instead.''
 
 
 
==Standalone patches and mods for shaders==
 
;[https://icelaglace.com/ iCEnhancer]
 
;[http://enbdev.com/download.html ENB]
 
  
 
==Downloads==
 
==Downloads==
  
- [https://github.com/libretro/common-shaders Libretro Cg shaders repository]
+
[https://github.com/libretro/common-shaders Libretro Cg shader repository]
  
- [https://github.com/libretro/glsl-shaders Libretro GLSL shaders conversion repository]
+
[https://github.com/hizzlekizzle/glsl-shaders Libretro GLSL shader conversion repository]
  
- [https://github.com/libretro/slang-shaders Libretro Vulkan (.slang) shaders repository]
+
[https://mega.nz/#!OJc0DZwT!I_ulxfrXeNuOUxpE2eSKktSxdIktOxx4uzKMyTNdJYs Border Shaders by EndUser]
''(forked from [https://github.com/Themaister/slang-shaders Vulkan (.slang) shaders by Themaister])''
 
  
- [http://www.emu-france.com/emulateurs/5-consoles/51-nintendo-super-nintendo/7270-analog-shader-pack/ Analog Shaders pack]
+
[http://www.emu-france.com/emulateurs/5-consoles/51-nintendo-super-nintendo/3677-snes9x-cg-shaders/ Snes9x Cg shader pack]
  
- [http://www.emu-france.com/emulateurs/5-consoles/51-nintendo-super-nintendo/3677-cg-glsl-slang-shaders-pack/ Libretro (CG/GLSL/Slang) shaders pack (Snes9x/puNES/RetroArch and more)]
+
[http://www.emucr.com/2013/04/epsxe-shaders-pack-20130427.html ePSXe/PCSX-R shaders]
  
- [http://www.emu-france.com/emulateurs/5-consoles-de-salon/59-multi-consoles/6993-higan-shaders-pack/ higan/bsnes shaders pack]
+
[http://www.mediafire.com/?icqpvoc65omra75 PCSX2 shaders]
 
 
- [http://www.emu-france.com/emulateurs/6-arcades/61-multi-games/3729-raine-shaders-pack/ RAINE/bsnes(073 to 091)/FS-UAE shaders pack]
 
 
 
- [http://www.emu-france.com/emulateurs/10-ordinateurs/118-ibm-pc-et-compatibles/6643-dosbox-shaders-pack/ DOSBox shaders pack]
 
 
 
- [http://www.emu-france.com/emulateurs/5-consoles-de-salon/53-sony-playstation-psone/3695-epsxe-shaders-pack/ ePSXe/PCSX-R shaders pack]
 
 
 
- [http://www.emu-france.com/emulateurs/5-consoles-de-salon/57-sony-playstation-2-pstwo/3844-pcsx2-shaders-pack/ PCSX2 shaders pack]
 
 
 
- [http://www.emu-france.com/emulateurs/5-consoles/233-nintendo-game-cube/6501-dolphinfx/ Dolphin shaders pack]
 
  
 
==Further reading==
 
==Further reading==
 
[http://filthypants.blogspot.com/search/label/pixel%20shader All things shaders and filters]
 
[http://filthypants.blogspot.com/search/label/pixel%20shader All things shaders and filters]
  
[https://github.com/libretro/common-shaders/blob/master/docs/README Cg shader spec].
+
[https://github.com/Themaister/Emulator-Shader-Pack/blob/master/Cg/README Cg shader spec].
 
 
[https://github.com/libretro/slang-shaders/blob/master/spec/SHADER_SPEC.md Vulkan GLSL (Slang) shader spec]
 
 
 
[https://github.com/libretro/shader-previews Shader preview thumbnail repository]
 
 
 
==See also==
 
*[[Shader_Presets|Shader Presets]]
 
:*[[CRT_shaders|CRT shaders]]
 
:*[[NTSC_filters|NTSC filters]]
 
*[[High dynamic range]] (HDR)
 
 
 
==References==
 
{{reflist|2}}
 
 
 
 
[[Category:FAQs]]
 
[[Category:FAQs]]
 
[[Category:Shaders/Filters]]
 
[[Category:Shaders/Filters]]
[[Category:Modding]]
 

Please note that all contributions to Emulation General Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Emulation General Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Templates used on this page: