Difference between revisions of "List of shaders and filters"

From Emulation General Wiki
Jump to navigation Jump to search
(Blanked the page)
(Tag: Blanking)
m
 
(20 intermediate revisions by 15 users not shown)
Line 1: Line 1:
  
 +
{{stub}}
 +
WIP. Barely half done. Finished version will list every known shader, plus description and sample image.
 +
==Types==
 +
 +
===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.
 +
{| 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/anti-aliasing/advanced-aa.cg advanced-aa.cg]
 +
| style="text-align: center;"|[[File:Advanced-aa.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/anti-aliasing/fx-aa.cg fx-aa.cg]
 +
| style="text-align: center;"|[[File:Fx-aa.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/anti-aliasing/fxaa-edge-detect.cg fxaa-edge-detect.cg]
 +
| style="text-align: center;"|[[File:Fxaa-edge-detect.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/anti-aliasing/reverse-aa.cg reverse-aa.cg]
 +
| style="text-align: center;"|[[File:Reverse-aa.png|thumb]]
 +
| style="text-align: center;"|
 +
|}
 +
 +
===Auto-box===
 +
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.
 +
{| 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/auto-box/box-max.cg box-max.cg]
 +
| style="text-align: center;"|[[File:Box-max.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/auto-box/sharpen-lighter-box.cg sharpen-lighter-box.cg]
 +
| style="text-align: center;"|[[File:Sharpen-lighter-box.png|thumb]]
 +
| style="text-align: center;"|
 +
|}
 +
 +
===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;"|
 +
|}
 +
 +
===CRT===
 +
A digital effect used to emulate the appearance of old cathode ray tube monitors and televisions. It does this by adding effects such as scan lines, colour distortion and curvature to the image to recreate the look. It is particularly popular because the majority of developers have used the unique properties of a CRT to their advantage to create certain effects.
 +
{| 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/crt/4xbr-hybrid-crt.cg 4xbr-hybrid-crt.cg]
 +
| style="text-align: center;"|[[File:4xbr-hybrid-crt.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/4xbr-hybrid-crt-b.cg 4xbr-hybrid-crt-b.cg]
 +
| style="text-align: center;"|[[File:4xbr-hybrid-crt-b.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/crt.cg crt.cg]
 +
| style="text-align: center;"|[[File:Crt.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/crt-caligari.cg crt-caligari.cg]
 +
| style="text-align: center;"|[[File:Crt-caligari.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/crt-cgwg.cg crt-cgwg.cg]
 +
| style="text-align: center;"|[[File:Crt-cgwg.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/crt-curved.cg crt-curved.cg]
 +
| style="text-align: center;"|[[File:Crt-curved.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/crt-geom-flat.cg crt-geom-flat.cg]
 +
| style="text-align: center;"|[[File:Crt-geom-flat.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/crt-highgamma.cg crt-highgamma.cg]
 +
| style="text-align: center;"|[[File:Crt-highgamma.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/crt-normalgamma.cg crt-normalgamma.cg]
 +
| style="text-align: center;"|[[File:Crt-normalgamma.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/crt-reverse-aa.cg crt-reverse-aa.cg]
 +
| style="text-align: center;"|[[File:Crt-reverse-aa.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/phosphor.cg phosphor.cg]
 +
| style="text-align: center;"|[[File:Phosphor.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|
 +
[https://github.com/libretro/common-shaders/blob/master/crt/phosphor-normalgamma.cg phosphor-<br />normalgamma.cg]
 +
| style="text-align: center;"|[[File:Phosphor-normalgamma.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|
 +
 +
[https://github.com/libretro/common-shaders/blob/master/crt/snes-hires-blend.cg snes-hires-blend.cg]
 +
| style="text-align: center;"|[[File:Snes-hires-blend.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|
 +
[https://github.com/libretro/common-shaders/blob/master/crt/tv-highcontrast-hd-1152x672.cg tv-highcontrast-<br />hd-1152x672.cg]
 +
| style="text-align: center;"|[[File:Tv-highcontrast-hd-1152x672.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/crt/tv-highcontrast-hd.cg tv-highcontrast-hd.cg]
 +
| style="text-align: center;"|[[File:Tv-highcontrast-hd.png|thumb]]
 +
| 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.
 +
{| 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/ddt/ddt.cg ddt.cg]
 +
| style="text-align: center;"|[[File:Ddt.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/ddt/ddt-extended.cg ddt-extended.cg]
 +
| style="text-align: center;"|[[File:Ddt-extended.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/ddt/ddt-waterpaint.cg ddt-waterpaint.cg]
 +
| style="text-align: center;"|[[File:Ddt-waterpaint.png|thumb]]
 +
| style="text-align: center;"|
 +
|}
 +
 +
===Dithering===
 +
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.
 +
{| 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/tree/master/dithering mdapt]
 +
| style="text-align: center;"|
 +
| style="text-align: center;"|
 +
|}
 +
 +
===Eagle===
 +
{| 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/eagle/super-eagle.cg super-eagle.cg]
 +
| style="text-align: center;"|[[File:Super-eagle.png|thumb]]
 +
| style="text-align: center;"|
 +
|}
 +
===Handheld===
 +
Simulates an LCD screen of a handheld device that has specific artifacts in comparison to newer screens.
 +
{| 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/tree/master/handheld/gameboy Gameboy]
 +
| style="text-align: center;"|[[File:Gameboy.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/tree/master/handheld/lcd-shader lcd]
 +
| style="text-align: center;"|[[File:Lcd.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/handheld/dot.cg dot.cg]
 +
| style="text-align: center;"|[[File:Dot.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/handheld/lcd3x.cg lcd3x.cg]
 +
| style="text-align: center;"|[[File:Lcd3x.png|thumb]]
 +
| style="text-align: center;"|
 +
|}
 +
 +
===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.
 +
{| 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/hqx/hq2x.cg hq2x.cg]
 +
| style="text-align: center;"|[[File:Hq2x.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/hqx/hq4x.cg hq4x.cg]
 +
| style="text-align: center;"|[[File:Hq4x.png|thumb]]
 +
| style="text-align: center;"|
 +
|}
 +
 +
===Lanczos===
 +
{| 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/lanczos/lanczos4.cg lanczos4.cg]
 +
| style="text-align: center;"|[[File:Lanczos4.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/lanczos/lanczos6.cg lanczos6.cg]
 +
| style="text-align: center;"|[[File:Lanczos6.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/lanczos/lanczos12.cg lanczos12.cg]
 +
| style="text-align: center;"|[[File:Lanczos12.png|thumb]]
 +
| style="text-align: center;"|
 +
|-
 +
| style="text-align: center;"|[https://github.com/libretro/common-shaders/blob/master/lanczos/lanczos16.cg lanczos16.cg]
 +
| style="text-align: center;"|[[File:Lanczos16.png|thumb]]
 +
| style="text-align: center;"|
 +
|}
 +
==Unfiltered Image==
 +
Picture as it appears directly from a digital connection.
 +
{| class="wikitable"
 +
! scope="col" style="text-align: center;"|Name
 +
! scope="col" style="text-align: center;"|Image
 +
! scope="col" style="text-align: center;"|Description
 +
|-
 +
|Pixellate
 +
|[[File:Pixellate.png|thumb|left]]
 +
|
 +
|}
 +
----
 +
{{NEL}}
 +
[[Category:FAQs]]
 +
[[Category:Shaders/Filters]]

Latest revision as of 07:43, 23 March 2024

WIP. Barely half done. Finished version will list every known shader, plus description and sample image.

Types[edit]

Anti-aliasing[edit]

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.

Name Image

Description

advanced-aa.cg
Advanced-aa.png
fx-aa.cg
Fx-aa.png
fxaa-edge-detect.cg
Fxaa-edge-detect.png
reverse-aa.cg
Reverse-aa.png

Auto-box[edit]

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.

Name Image

Description

box-max.cg
Box-max.png
sharpen-lighter-box.cg
Sharpen-lighter-box.png

Bicubic[edit]

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.

Name Image

Description

bicubic-fast.cg
bicubic-normal.cg
bicubic-sharp.cg
bicubic-sharper.cg

CRT[edit]

A digital effect used to emulate the appearance of old cathode ray tube monitors and televisions. It does this by adding effects such as scan lines, colour distortion and curvature to the image to recreate the look. It is particularly popular because the majority of developers have used the unique properties of a CRT to their advantage to create certain effects.

Name Image

Description

4xbr-hybrid-crt.cg
4xbr-hybrid-crt.png
4xbr-hybrid-crt-b.cg
4xbr-hybrid-crt-b.png
crt.cg
Crt.png
crt-caligari.cg
Crt-caligari.png
crt-cgwg.cg
Crt-cgwg.png
crt-curved.cg
Crt-curved.png
crt-geom-flat.cg
Crt-geom-flat.png
crt-highgamma.cg
Crt-highgamma.png
crt-normalgamma.cg
Crt-normalgamma.png
crt-reverse-aa.cg
Crt-reverse-aa.png
phosphor.cg
Phosphor.png

phosphor-
normalgamma.cg

Phosphor-normalgamma.png

snes-hires-blend.cg

Snes-hires-blend.png

tv-highcontrast-
hd-1152x672.cg

Tv-highcontrast-hd-1152x672.png
tv-highcontrast-hd.cg
Tv-highcontrast-hd.png

DDT[edit]

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.

Name Image

Description

ddt.cg
Ddt.png
ddt-extended.cg
Ddt-extended.png
ddt-waterpaint.cg
Ddt-waterpaint.png

Dithering[edit]

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.

Name Image

Description

mdapt

Eagle[edit]

Name Image

Description

super-eagle.cg
Super-eagle.png

Handheld[edit]

Simulates an LCD screen of a handheld device that has specific artifacts in comparison to newer screens.

Name Image

Description

Gameboy
Gameboy.png
lcd
Lcd.png
dot.cg
Dot.png
lcd3x.cg
Lcd3x.png

Hqx[edit]

("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.

Name Image

Description

hq2x.cg
Hq2x.png
hq4x.cg
Hq4x.png

Lanczos[edit]

Name Image

Description

lanczos4.cg
Lanczos4.png
lanczos6.cg
Lanczos6.png
lanczos12.cg
Lanczos12.png
lanczos16.cg
Lanczos16.png

Unfiltered Image[edit]

Picture as it appears directly from a digital connection.

Name Image Description
Pixellate
Pixellate.png