Merge pull request #410 from kokoko3k/master

Koko-aio: update to 4.1
This commit is contained in:
hizzlekizzle 2023-04-28 22:17:59 -05:00 committed by GitHub
commit a61e445a4d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
52 changed files with 1351 additions and 691 deletions

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,9 +188,9 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.500000" GAMMA_OUT = "0.500000"
SATURATION = "1.050000"
DO_FXAA = "1.000000" DO_FXAA = "1.000000"
SAT_BLEED_PAL = "1.000000" SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.500000" SAT_BLEED_STRENGTH = "0.500000"
@ -211,27 +211,26 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.800000" DARKLINES_STRENGTH = "0.800000"
DARKLINES_PERIOD = "4.000000" DARKLINES_PERIOD = "4.000000"
HALO_POWER = "0.990000"
HALO_W = "3.000000"
HALO_H = "3.000000"
HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000" SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000" SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000" SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000" SCANLINE_FLICKERING_POWER = "0.170000"
HALO_POWER = "0.990000"
HALO_W = "3.000000"
HALO_H = "3.000000"
HALO_GAMMA = "1.400000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.018000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
AMBI_FALLOFF = "0.400000" AMBI_FALLOFF = "0.400000"
AMBI_POWER = "5.000000" AMBI_POWER = "5.000000"
AMBI_OVER_BEZEL = "0.200000" AMBI_OVER_BEZEL = "0.200000"
DO_DYNZOOM = "0.000000"
V_SIZE = "2.700000" V_SIZE = "2.700000"
V_POWER = "1.050000" V_POWER = "1.050000"
S_POSITION = "194.000000" S_POSITION = "194.000000"

64
bezel/koko-aio/README.md Normal file
View file

@ -0,0 +1,64 @@
# Koko-aio
Koko-aio shader is meant to be an all-in one crt shader.<br>
It can be configured with many parameters, so that can be
scaled to run on even on modest gpus while still developed to
run with heavier presets on at least Haswell+ iGpus.<br>
On that gpu, as in version 3.5, it reaches about 85fps with all features enabled<br>
When dealing with lowres content on 1920x1080 resolution.<br>
While it is not meant to simulate the internal behaviour of CRT displays,<br>
it aims to give users "visual" parameters to make their monitors look similar.<br>
Several presets are included.<br>
***Additional documentation:***
* [See here](docs.md)
***Additional artwork:***
* https://github.com/kokoko3k/koko-aio-slang-presets-and-overlays
***Actually, it provides emulation for:***
* Scanlines
* Screenlines
* RGB phosphors
* RGB deconvergence
* NTSC/PAL CVBS color bleeding
* NTSC color artifacting (early stage)
* Aperture grille and slot mask.
* Input signal glowing
* Output signal glowing
* Blooming
* Gamma, contrast, saturation, luminance, color temperature adjustments
* Black frame insertions through alternate blanking
* Interlace flickering, forcing and emulation
* Antialiasing
* Curvature
* Ambient lights
* Vignette and Spotlight
* Bezel (Thank you HyperspaceMadness for allowing me to rip his automagically generated bezel!)
https://github.com/HyperspaceMadness/
* Background images
* Full screen glowing
***External code by:***
* Nvidia (FXAA)
* EasyMode (curvature related code)
# Examples
***monitor-slotmask-bloom-bezelwider - Arcade - Final fight***
![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/monitor-slotmask-bloom-bezelwider.mame.ffight.png?raw=true)
***monitor-Commodore_1084S-wider - Amiga - ProjectX SE***
![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/monitor-Commodore_1084S-wider.puae.projectx.png?raw=true)
***tv-PAL-my-old - Master System - Trans Bot***
![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/tv-PAL-my-old,mastersystem.transbot.png?raw=true)
***tv-NTSC-1 - Genesis - Sonic 2***
![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/tv-NTSC-1.md.sonic2.png?raw=true)
***tv-NTSC-2 - Snes - Aladdin***
![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/tv-NTSC-2.snes.aladdin.png?raw=true)
***tv-aperturegrille-bloom-bezel - Amiga - Leander***
![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/tv-aperturegrille-bloom-bezel.puae.leander.png?raw=true)

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,21 +205,21 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_MAX = "0.800000"
SCANLINE_MINMAX_GAMMA = "0.700000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.400000" HALO_POWER = "0.400000"
HALO_W = "3.000001" HALO_W = "3.000001"
HALO_H = "3.000001" HALO_H = "3.000001"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "1.000000" HALO_VS_SCAN = "1.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_MAX = "0.800000"
SCANLINE_MINMAX_GAMMA = "0.700000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
BEZEL_INNER_ZOOM = "-0.215000" BEZEL_INNER_ZOOM = "-0.215000"

View file

@ -1,40 +1,48 @@
**koko-aio-slang parameters documentation** **koko-aio-slang parameters documentation**
**Color corrections:** **Color corrections:**<br>
Modify luminance, saturation, contrast, brightness and color temperature of the Modify luminance, saturation, contrast, brightness and color temperature
signal, at "input" stage. of the signal, at "input" stage.<br>
Gamma correction is applied to the final processed picture. Gamma correction is applied to the final processed picture.<br>
It is also possible to emulate a monochrome display with custom colors:
**FXAA:** Monochrome screen colorization:
Apply the well known antialiasing effect by Nvidia. The amount of (de) colorization applied.
Use it if you don't want to blur the image and you still don't like Hue bright, Hue dark:
jagged or too much pixelated images. Set the hue for bright and dark colors.
Hue bright-dark bias:
Controls the distribution of dark and bright hues.
**FXAA:**<br>
Apply the well known antialiasing effect by Nvidia.<br>
Use it if you don't want to blur the image and you still don't like<br>
jagged or too much pixelated images.<br>
**CVBS: NTSC color artifacts: ** **CVBS: NTSC color artifacts: **<br>
Tries to emulate typical NTSC color artifacting without emulating Tries to emulate typical NTSC color artifacting without emulating<br>
full NTSC coding/decoding pipeline. full NTSC coding/decoding pipeline.<br>
While it improves the look of NTSC content, don't expect it to be While it improves the look of NTSC content, don't expect it to be<br>
an accurate emulation (yet?) an accurate emulation (yet?)<br>
As today, it is enough to emulate rainbowing effects on genesis. As today, it is enough to emulate rainbowing effects on genesis.<br>
** RF Noise: ** ** RF Noise: **<br>
Emulates radio frequency noise with a given strength Emulates radio frequency noise with a given strength<br>
**CVBS: Bandwidth limited chroma:** **CVBS: Bandwidth limited chroma:**<br>
Will cause an horizontal chroma bleed which cheaply mimics the effect of Will cause an horizontal chroma bleed which cheaply mimics the effect of<br>
poor composite video signals. poor composite video signals.<br>
It can be used with RGB shifting and image blurring to give the picture It can be used with RGB shifting and image blurring to give the picture<br>
an ntsc look without dealing with specific encoding/decoding stuffs. an ntsc look without dealing with specific encoding/decoding stuffs. <br>
**Deconvergence:** **Deconvergence:**<br>
Shift R,G,B components separately to mimic channel deconvergence. Shift R,G,B components separately to mimic channel deconvergence.<br>
By varying Red, Green and Blue offsets, the relative component will be By varying Red, Green and Blue offsets, the relative component will be<br>
shifted column by column, row by row. shifted column by column, row by row.<br>
**Glow/Blur:** **Glow/Blur:**<br>
Emulate the CRT glowing "feature", so that the brighter areas of Emulate the CRT glowing "feature", so that the brighter areas of<br>
the image will light their surroundings, the image will light their surroundings,<br>
with options to switch to classic blur. with options to switch to classic blur.<br>
Input signal strength: Input signal strength:
The input signal gain The input signal gain
@ -63,8 +71,8 @@
This will help you to set the previous 2 values as it will show only This will help you to set the previous 2 values as it will show only
the artifacts that will modify the blur. the artifacts that will modify the blur.
**Masks and/or Darklines:** **Masks and/or Darklines:**<br>
Emulates CRT RGB phosphors (RGB Mask), Emulates CRT RGB phosphors (RGB Mask),<br>
slotmasks and aperturegrille (Darklines). slotmasks and aperturegrille (Darklines).
(HiDPI) Vmask and Darklines multiplier: (HiDPI) Vmask and Darklines multiplier:
@ -104,26 +112,11 @@
Darklines: affect bright colors: Darklines: affect bright colors:
See "RGB Mask: affect bright colors" See "RGB Mask: affect bright colors"
**Halo:** **Tate mode:**<br>
Emulates the effect of the brighter pixels reflected by the CRT glass Rotates mask and scanlines by 90°<br>
that lights nearby zones (a sort of tight bloom).
The light is meant to be spreaded in a way that it nulls the effect of the
dark scanline parts, darklines and the RGB masks.
So you can use this to restore the brightness and color saturation
loss when using features like scanlines, darklines or RGB masks.
Light up scanlines too: **Scanlines:**<br>
Theoretically Halo have to be applied Emulate CRT scanlines.<br>
"over" everything, because that is the way it works in nature.
But you can choose to cheat and instead apply scanlines over the halo
instead.
Do this if you like much more pronunced scanlines, even at the
price of some graphical artifacts visible on high contrasted areas.
Refer to "Glowing Input/power" for other parameters meaning.
**Scanlines:**
Emulate CRT scanlines.
Scanlines gap brightness: Scanlines gap brightness:
controls how "little" they will look pronunced. controls how "little" they will look pronunced.
@ -164,11 +157,57 @@
. Offset . Offset
This is the slotmask offset/stagger, (available on type 1 only) This is the slotmask offset/stagger, (available on type 1 only)
Keep it around 79 or all the way to max Keep it around 79 or all the way to max
**Dot matrix emulation:**<br>
Emulates low refresh "boxed" screens used in old handheld consoles.<br>
Grid strength:
How much the grid is visible.
Grid sharpness:
Modulates the thickness of the grid around cells.
Strength on background:
How much should the grid be visible on background?
More positive values -> more grid on bright
More negative values -> more grid on dark
Gap brightness:
You may want to use a white grid eg: for gameboy mono emulation.
RGB strength:
Emulate rgb subpixels (Set 0.0 for BW display)
RGB sharpness:
Low values will gradually blend subpixels.<br>
You may want to lower this value to cancel vertical artifacts.<br>
Green gain correction:
R and B cnahhels could be partially cancelled by the grid around.<br>
Lower this if the image looks green.<br>
Refresh inertia:
Emulates a low refresh screen, set the power of the effect.<br>
Inertia on:
0: display is always slow to refresh
1: display is slow to refresh bright pixels
2: display is slow to refresh dark pixels
**Bloom:** **Halo:**<br>
Acts like Halo, but affects a much wider area and is more configurable. Emulates the effect of the brighter pixels reflected by the CRT glass<br>
By using this effect and playing with its parameters, you can achieve funny that lights nearby zones (a sort of tight bloom).<br>
or even artistic results. The light is meant to be spreaded in a way that it nulls the effect of the<br>
dark scanline parts, darklines and the RGB masks.<br>
So you can use this to restore the brightness and color saturation<br>
loss when using features like scanlines, darklines or RGB masks.<br>
Light up scanlines too:
Theoretically Halo have to be applied
"over" everything, because that is the way it works in nature.
But you can choose to cheat and instead apply scanlines over the halo
instead.
Do this if you like much more pronunced scanlines, even at the
price of some graphical artifacts visible on high contrasted areas.
Refer to "Glowing Input/power" for other parameters meaning.
**Bloom:**<br>
Acts like Halo, but affects a much wider area and is more configurable.<br>
By using this effect and playing with its parameters, you can achieve funny<br>
or even artistic results.<br>
Final mix: Final mix:
Modulates between the original images and the bloomed one. Modulates between the original images and the bloomed one.
@ -196,8 +235,8 @@
Use 1.0 to see naked bloom without any modulation applied Use 1.0 to see naked bloom without any modulation applied
Use 2.0 to see naked bloom with modulation applied Use 2.0 to see naked bloom with modulation applied
**Curvature:** **Curvature:**<br>
Emulates a curved CRT display. Emulates a curved CRT display.<br>
WARP X, WARP Y: WARP X, WARP Y:
control how much the display is curved along its axes. control how much the display is curved along its axes.
@ -206,17 +245,17 @@
Cut curvature ears; Cut curvature ears;
If you see weird image repetition try this. If you see weird image repetition try this.
**Bezel:** **Bezel:**<br>
Draws a monitor frame with simulated reflections from the game content. Draws a monitor frame with simulated reflections from the game content.<br>
The monitor frame is an image loaded by the shader and is shipped The monitor frame is an image loaded by the shader and is shipped<br>
in the "textures" shader subdirectory, named "monitor\_body.png" in the "textures" shader subdirectory, named "monitor\_body.png"<br>
It has been made with the following rules that may come handy It has been made with the following rules that may come handy<br>
only if you want to edit it; otherwise go on. only if you want to edit it; otherwise go on.<br>
- The red channel represents the luminance information - The red channel represents the luminance information<br>
- The green channel represents the highlights - The green channel represents the highlights<br>
- The alpha channel in the inner frame represents the part of the bezel - The alpha channel in the inner frame represents the part of the bezel<br>
that will be filled by the game content that will be filled by the game content<br>
- The blue channel represents the part of the bezel that will be filled by the game reflection. - The blue channel represents the part of the bezel that will be filled by the game reflection.<br>
Straight Straight
Use a straight bezel instead of a curved one. Use a straight bezel instead of a curved one.
@ -241,13 +280,13 @@
How much the bezel corners should be darkened How much the bezel corners should be darkened
**Backgound image:** **Backgound image:**<br>
Draws an image on screen picked from the "textures" shader subdirectory, Draws an image on screen picked from the "textures" shader subdirectory,<br>
named: background.png<br> named: background.png<br><br>
**-> It is needed that you set retroarch aspect to "Full" <-** **-> It is needed that you set retroarch aspect to "Full" <-**<br>
( Settings, Video, Scaling, Aspect Ratio = Full ) ( Settings, Video, Scaling, Aspect Ratio = Full )<br>
The image is painted "under" the game content and under the monitor frame by The image is painted "under" the game content and under the monitor frame by<br>
default, and his alpha channel will let you see ambient lighs (see next). default, and his alpha channel will let you see ambient lighs (see next).<br>
Image over content (alpha channel driven)?: Image over content (alpha channel driven)?:
...however you can paint the image over the game content and over the ...however you can paint the image over the game content and over the
@ -271,20 +310,21 @@
3 Plain repeat without mirroring. 3 Plain repeat without mirroring.
**Backdrop support:** **Backdrop support:**<br>
Some old arcades used a mirror trick to overlay the Some old arcades used a mirror trick to overlay the<br>
game content over an high definition printed image.<br> game content over an high definition printed image.<br>
The image used by default, picked from the "textures" shader subdirectory, The image used by default, picked from the "textures" shader subdirectory,<br>
is named: boothill.jpg<br> is named: boothill.jpg<br>
Shift(Zoom) Backdrop over X(Y) axis: Shift(Zoom) Backdrop over X(Y) axis:
move or zoom the whole background image. move or zoom the whole background image.
**Ambient light leds:** **Ambient light leds:**<br>
Emulates the presence of led strips under the monitor that lights the Emulates the presence of led strips under the monitor that lights the<br>
surroundings according to the edges of the game content. surroundings according to the edges of the game content.<br>
**-> It is needed that you set retroarch aspect to "Full" <-** **-> It is needed that you set retroarch aspect to "Full" <-**<br>
( Settings, Video, Scaling, Aspect Ratio = Full ) ( Settings, Video, Scaling, Aspect Ratio = Full )<br>
Slowness: Slowness:
How much will the leds will take to reflect the game content. How much will the leds will take to reflect the game content.
@ -315,23 +355,23 @@
This internally works by adding the amount of your choice to the alpha channel This internally works by adding the amount of your choice to the alpha channel
of the foreground image. of the foreground image.
**Luminosity dependant zoom:** **Luminosity dependant zoom:**<br>
On older CRT monitors, the picture gets bigger when the image was brighter. On older CRT monitors, the picture gets bigger when the image was brighter.<br>
**Vignette:** **Vignette:**<br>
Will cause uneven brightness of the image, more at the center, Will cause uneven brightness of the image, more at the center,<br>
less at the edges. less at the edges.<br>
**Spot:** **Spot:**<br>
Simulates external light reflected by the monitor glass. Simulates external light reflected by the monitor glass.<br>
**Aspect Ratio:** **Aspect Ratio:**<br>
When using effects that need Retroarch aspect ratio option When using effects that need Retroarch aspect ratio option<br>
to be set to "full", you have to provide the source aspect to be set to "full", you have to provide the source aspect<br>
ratio to the shader. ratio to the shader.<br>
Use -6 for MAME cores that pre-rotates the game (TATE mode) Use -6 for MAME cores that pre-rotates the game (TATE mode)<br>
With Mame 2003 plus and fbneo cores, koko-aio detects if the With Mame 2003 plus and fbneo cores, koko-aio detects if the<br>
game is rotated or not without any user intervention. game is rotated or not without any user intervention.<br>
Aspect Ratio Numerator: Aspect Ratio Numerator:
Setting non positive value here will switch to a predefined Setting non positive value here will switch to a predefined
@ -347,12 +387,12 @@
As long as Aspect Ratio Numerator is positive, this will As long as Aspect Ratio Numerator is positive, this will
be used as the denominator of the fraction. be used as the denominator of the fraction.
**Global shift/zoom image:** **Global shift/zoom image:**<br>
Zoom and shift everything on screen, but background pictures. Zoom and shift everything on screen, but background pictures.<br>
**Override content geometry:** **Override content geometry:**<br>
Contrary to the global aspect ratio control, this changes only the game geometry. Contrary to the global aspect ratio control, this changes only the game geometry.<br>
Bezel stays the same. Bezel stays the same.<br>
Integer scale: Game content zoom height is rounded to nearest integer. Integer scale: Game content zoom height is rounded to nearest integer.
Maximum integer scale: Dont allow integer scaling more than this Maximum integer scale: Dont allow integer scaling more than this
@ -362,8 +402,11 @@
Vertical/Horizontal position: Shifts the game position Vertical/Horizontal position: Shifts the game position
Zoom: Change the size Zoom: Change the size
**Tilt:** **Tilt:**<br>
Put the bezel and the game content into perspective. Put the bezel and the game content into perspective.<br>
The implementation is basic, you can expect correct<br>
results when tilting alongside a single axis or when<br>
using both, but with small values.<br>
Tilt along X(Y) axis: Tilt along X(Y) axis:
Rotate the image in space Rotate the image in space
@ -373,11 +416,11 @@
in relation to the game tilt amount in relation to the game tilt amount
**Alternate line blanking:** **Alternate line blanking:**<br>
CRT monitors \*real\* refresh was amazing, today is just "meh" in most cases. CRT monitors \*real\* refresh was amazing, today is just "meh" in most cases.<br>
This emulates the low pixel persistance of CRT monitors This emulates the low pixel persistance of CRT monitors <br>
and reduces the motion blur, typical of LCD displays, by blanking even/odd and reduces the motion blur, typical of LCD displays, by blanking even/odd<br>
screen lines on even/odd frames, by sacrificing image brightness, ofc. screen lines on even/odd frames, by sacrificing image brightness, ofc.<br>
This feature is static, to use it This feature is static, to use it
you have to manually enable it by removing the leading: "//" you have to manually enable it by removing the leading: "//"

View file

@ -0,0 +1,248 @@
shaders = "17"
shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false"
alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false"
alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "2.000000"
scale_type_y1 = "source"
scale_y1 = "2.000000"
shader2 = "shaders/fxaa.slang"
filter_linear2 = "true"
wrap_mode2 = "mirrored_repeat"
mipmap_input2 = "true"
alias2 = "FXAA_pass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders/shift_and_bleed.slang"
filter_linear3 = "true"
wrap_mode3 = "mirrored_repeat"
mipmap_input3 = "false"
alias3 = "shift_and_bleed_pass"
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders/in_glow_x.slang"
filter_linear4 = "true"
wrap_mode4 = "mirrored_repeat"
mipmap_input4 = "false"
alias4 = "in_glow_pass_x"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders/in_glow_y.slang"
filter_linear5 = "true"
wrap_mode5 = "mirrored_repeat"
mipmap_input5 = "false"
alias5 = "in_glow_pass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders/halo_x.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_edge"
mipmap_input6 = "false"
alias6 = "halo_pass_x"
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders/halo_y.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_edge"
mipmap_input7 = "false"
alias7 = "halo_pass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders/avglum_pass.slang"
filter_linear8 = "true"
wrap_mode8 = "mirrored_repeat"
mipmap_input8 = "false"
alias8 = "avglum_pass"
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "0.500000"
scale_type_y8 = "source"
scale_y8 = "0.500000"
shader9 = "shaders/reflection_blur_pre.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "reflected_blurred_pass_pre"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "shaders/reflection_blur.slang"
filter_linear10 = "true"
wrap_mode10 = "mirrored_repeat"
mipmap_input10 = "true"
alias10 = "reflected_blurred_pass"
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
scale_type_x10 = "source"
scale_x10 = "1.000000"
scale_type_y10 = "source"
scale_y10 = "1.000000"
shader11 = "shaders/bloom_pass_1.slang"
filter_linear11 = "true"
wrap_mode11 = "mirrored_repeat"
mipmap_input11 = "false"
alias11 = "bloom_pass_1"
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "source"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders/bloom_pass_2.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_edge"
mipmap_input12 = "false"
alias12 = "bloom_pass_2"
float_framebuffer12 = "false"
srgb_framebuffer12 = "false"
scale_type_x12 = "source"
scale_x12 = "0.500000"
scale_type_y12 = "source"
scale_y12 = "0.500000"
shader13 = "shaders/bloom_pass_3.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_edge"
mipmap_input13 = "false"
alias13 = "bloom_pass_3"
float_framebuffer13 = "false"
srgb_framebuffer13 = "false"
scale_type_x13 = "source"
scale_x13 = "1.000000"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "shaders/bloom_pass_4.slang"
filter_linear14 = "true"
wrap_mode14 = "mirrored_repeat"
mipmap_input14 = "false"
alias14 = "bloom_pass_final"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "source"
scale_x14 = "1.000000"
scale_type_y14 = "source"
scale_y14 = "1.000000"
shader15 = "shaders/ambi_temporal_pass.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = "ambi_temporal_pass"
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "viewport"
scale_x15 = "0.050000"
scale_type_y15 = "viewport"
scale_y15 = "0.050000"
shader16 = "shaders/final_pass.slang"
filter_linear16 = "true"
wrap_mode16 = "mirrored_repeat"
mipmap_input16 = "false"
alias16 = "final_pass"
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000"
BRIGHTNESS = "0.060000"
CONTRAST = "-0.270000"
GAMMA_OUT = "0.500000"
COLOR_MONO_COLORIZE = "1.000000"
COLOR_MONO_HUE1 = "0.180000"
COLOR_MONO_HUE2 = "0.380000"
SATURATION = "0.850000"
DO_SHIFT_RGB = "1.000000"
OFFSET_STRENGTH = "0.250000"
SHIFT_R = "42.000000"
SHIFT_G = "42.000000"
SHIFT_B = "42.000000"
DO_IN_GLOW = "1.000000"
IN_GLOW_GAMMA = "2.000000"
IN_GLOW_W = "7.000000"
IN_GLOW_H = "7.000000"
DO_DOT_MATRIX = "1.000000"
DOT_M_G_STR = "0.110000"
DOT_M_G_TRESH = "0.120001"
DOT_M_G_BRT = "0.849999"
DOT_M_G_SHARP = "20.000000"
DOT_M_RGB_STR = "0.000000"
DOT_M_MBLUR_MODE = "1.000000"
DOT_M_SHADOW_STR = "0.750000"
DOT_M_SHADOW_OFF = "1.000000"
AMBI_FALLOFF = "0.400000"
AMBI_POWER = "1.000000"
DO_DYNZOOM = "0.000000"
DO_VIGNETTE = "1.000000"
V_SIZE = "1.350001"
V_POWER = "1.170000"
DO_SPOT = "1.000000"
S_POSITION = "195.000000"
S_SIZE = "1.000000"
ASPECT_X = "1.000000"
ASPECT_Y = "1.000000"
DO_GAME_GEOM_OVERRIDE = "1.000000"
GAME_GEOM_INT_SCALE = "2.000000"
textures = "monitor_body_curved;monitor_body_straight;bg_under;bg_over;backdrop"
monitor_body_curved = "textures/monitor_body_curved.png"
monitor_body_curved_linear = "true"
monitor_body_curved_wrap_mode = "clamp_to_edge"
monitor_body_curved_mipmap = "true"
monitor_body_straight = "textures/monitor_body_straight.png"
monitor_body_straight_linear = "true"
monitor_body_straight_wrap_mode = "clamp_to_edge"
monitor_body_straight_mipmap = "true"
bg_under = "textures/background_under.png"
bg_under_linear = "true"
bg_under_wrap_mode = "mirrored_repeat"
bg_under_mipmap = "true"
bg_over = "textures/background_over.png"
bg_over_linear = "true"
bg_over_wrap_mode = "mirrored_repeat"
bg_over_mipmap = "true"
backdrop = "textures/boothill.jpg"
backdrop_linear = "true"
backdrop_wrap_mode = "mirrored_repeat"
backdrop_mipmap = "true"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,19 +205,19 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_DARK = "0.050000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_DARK = "0.050000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
BEZEL_INNER_ZOOM = "-0.215000" BEZEL_INNER_ZOOM = "-0.215000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -204,24 +204,24 @@ DO_VMASK_AND_DARKLINES = "1.000000"
RGB_MASK_STRENGTH = "1.000000" RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.300000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "60.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "1.000000" HALO_VS_SCAN = "1.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.300000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "60.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "700.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.600000" BEZEL_INNER_ZOOM = "-0.522000"
BEZEL_FRAME_ZOOM = "-0.247000" BEZEL_FRAME_ZOOM = "-0.247000"
BEZEL_R = "0.030000" BEZEL_R = "0.030000"
BEZEL_G = "0.015000" BEZEL_G = "0.015000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -204,24 +204,24 @@ DO_VMASK_AND_DARKLINES = "1.000000"
RGB_MASK_STRENGTH = "1.000000" RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.300000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "60.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "1.000000" HALO_VS_SCAN = "1.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.300000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "60.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "700.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.440000" BEZEL_INNER_ZOOM = "-0.391000"
BEZEL_FRAME_ZOOM = "-0.140000" BEZEL_FRAME_ZOOM = "-0.140000"
BEZEL_R = "0.030000" BEZEL_R = "0.030000"
BEZEL_G = "0.015000" BEZEL_G = "0.015000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -204,24 +204,24 @@ DO_VMASK_AND_DARKLINES = "1.000000"
RGB_MASK_STRENGTH = "1.000000" RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.300000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "60.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "1.000000" HALO_VS_SCAN = "1.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.300000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "60.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "700.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.600000" BEZEL_INNER_ZOOM = "-0.522000"
BEZEL_FRAME_ZOOM = "-0.247000" BEZEL_FRAME_ZOOM = "-0.247000"
BEZEL_R = "0.030000" BEZEL_R = "0.030000"
BEZEL_G = "0.015000" BEZEL_G = "0.015000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,23 +205,23 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_MAX = "0.700000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.380000" HALO_POWER = "0.380000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_MAX = "0.700000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.185000" BEZEL_INNER_ZOOM = "-0.175000"
BEZEL_FRAME_ZOOM = "0.040000" BEZEL_FRAME_ZOOM = "0.040000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,23 +205,23 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_MAX = "0.700000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.380000" HALO_POWER = "0.380000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_MAX = "0.700000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.014000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,20 +205,20 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_DARK = "0.050000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_DARK = "0.050000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
BEZEL_INNER_ZOOM = "-0.215000" BEZEL_INNER_ZOOM = "-0.215000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,24 +205,24 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.185000" BEZEL_INNER_ZOOM = "-0.173000"
BEZEL_FRAME_ZOOM = "0.040000" BEZEL_FRAME_ZOOM = "0.040000"
BEZEL_R = "-0.115000" BEZEL_R = "-0.115000"
BEZEL_G = "-0.115000" BEZEL_G = "-0.115000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,24 +205,24 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.185000" BEZEL_INNER_ZOOM = "-0.173000"
BEZEL_FRAME_ZOOM = "0.040000" BEZEL_FRAME_ZOOM = "0.040000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,24 +205,24 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.185000" BEZEL_INNER_ZOOM = "-0.173000"
BEZEL_FRAME_ZOOM = "0.040000" BEZEL_FRAME_ZOOM = "0.040000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -204,23 +204,23 @@ IN_GLOW_BIAS = "0.000000"
DO_VMASK_AND_DARKLINES = "1.000000" DO_VMASK_AND_DARKLINES = "1.000000"
RGB_MASK_STRENGTH = "1.000000" RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.013000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,24 +205,24 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.013000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,21 +205,21 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
BEZEL_INNER_ZOOM = "-0.215000" BEZEL_INNER_ZOOM = "-0.215000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -205,20 +205,20 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.430000" HALO_POWER = "0.430000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.250000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
BEZEL_INNER_ZOOM = "-0.215000" BEZEL_INNER_ZOOM = "-0.215000"

View file

@ -31,7 +31,7 @@ void main() {
fstep = (border_max - border_min) / (leds_per_strip-1); fstep = (border_max - border_min) / (leds_per_strip-1);
//Calc a lod for a texture sized led_strip x led_strip //Calc a lod for a texture sized led_strip x led_strip
lod = log2(global.first_passSize.y / leds_per_strip); lod = log2(global.flick_and_noise_passSize.y / leds_per_strip);
//Scale to the original aspect //Scale to the original aspect
@ -40,10 +40,10 @@ void main() {
bool isrotated = is_rotated(); bool isrotated = is_rotated();
vIs_rotated = float(isrotated); vIs_rotated = float(isrotated);
if ( !do_integer_scale() ) if ( need_NO_integer_scale() )
pre_pass_coords = get_scaled_coords_aspect(TexCoord,global.FinalViewportSize, in_aspect, isrotated) + vec2(0.00001); pre_pass_coords = get_scaled_coords_aspect(TexCoord,global.FinalViewportSize, in_aspect, isrotated) + vec2(0.00001);
else else
pre_pass_coords = integer_scale(TexCoord, in_aspect, isrotated) ; pre_pass_coords = integer_scale(TexCoord, in_aspect, isrotated, GAME_GEOM_INT_SCALE-1.0 ) ;
if (DO_GLOBAL_SHZO >0.5) if (DO_GLOBAL_SHZO >0.5)
@ -73,13 +73,13 @@ layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D PastSampler; layout(set = 0, binding = 1) uniform sampler2D PastSampler;
layout(set = 0, binding = 2) uniform sampler2D avglum_pass; layout(set = 0, binding = 2) uniform sampler2D avglum_pass;
layout(set = 0, binding = 3) uniform sampler2D avglum_passFeedback; layout(set = 0, binding = 3) uniform sampler2D avglum_passFeedback;
layout(set = 0, binding = 4) uniform sampler2D first_pass; layout(set = 0, binding = 4) uniform sampler2D flick_and_noise_pass;
vec3 ambi_push_pass(vec2 coords, float f_lod) { vec3 ambi_push_pass(vec2 coords, float f_lod) {
vec3 pixel_out = textureLod(first_pass, coords, f_lod).rgb; vec3 pixel_out = textureLod(flick_and_noise_pass, coords, f_lod).rgb;
pixel_out = apply_fuzzy_main_pass(pixel_out); pixel_out = apply_fuzzy_main_pass(pixel_out);
pixel_out = pixel_push_luminance(pixel_out, AMBI_POWER-1); pixel_out = pixel_push_luminance(pixel_out, AMBI_POWER-1);
return pixel_out; return pixel_out;

View file

@ -31,7 +31,7 @@ void main() {
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 1) in float lod; layout(location = 1) in float lod;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D first_pass; layout(set = 0, binding = 2) uniform sampler2D flick_and_noise_pass;
layout(set = 0, binding = 3) uniform sampler2D avglum_passFeedback; layout(set = 0, binding = 3) uniform sampler2D avglum_passFeedback;
/* The following will allow to sample at reduced interval /* The following will allow to sample at reduced interval
@ -45,7 +45,7 @@ layout(set = 0, binding = 3) uniform sampler2D avglum_passFeedback;
#define RGB_TO_GRAYSCALE = vec3(0.299, 0.587, 0.114) #define RGB_TO_GRAYSCALE = vec3(0.299, 0.587, 0.114)
float get_avg_lum_from_mip() { float get_avg_lum_from_mip() {
vec3 mip = textureLod(first_pass, vec2(0.5,0.5),20.0).rgb; vec3 mip = textureLod(flick_and_noise_pass, vec2(0.5,0.5),20.0).rgb;
mip = apply_fuzzy_main_pass(mip); mip = apply_fuzzy_main_pass(mip);
//return (mip.r+mip.g+mip.b)/3.0; //return (mip.r+mip.g+mip.b)/3.0;
return rgb_to_gray(mip); return rgb_to_gray(mip);
@ -92,7 +92,7 @@ float get_avglum() {
} }
void main() { void main() {
/*Grab a mipmap from the first pass. /*Grab a mipmap from the flick_and_noise_pass.
Calculate the average luminance from the smallest mipmap and put into the alpha channel Calculate the average luminance from the smallest mipmap and put into the alpha channel
So that can be used: So that can be used:
1 - continuously at coordinate 0.5,0.5 1 - continuously at coordinate 0.5,0.5
@ -109,11 +109,11 @@ void main() {
if (DO_BEZEL + DO_BLOOM > 0.0) { if (DO_BEZEL + DO_BLOOM > 0.0) {
//Create a small mipmap to be used to light the bezel corners //Create a small mipmap to be used to light the bezel corners
//and by the bloom pass to identify bright areas. //and by the bloom pass to identify bright areas.
pixel_out.rgb = textureLod(first_pass, vTexCoord, mip_lod).rgb; pixel_out.rgb = textureLod(flick_and_noise_pass, vTexCoord, mip_lod).rgb;
} }
FragColor = pixel_out; FragColor = pixel_out;
//FragColor = texture(first_pass, vTexCoord); //FragColor = texture(flick_and_noise_pass, vTexCoord);
} }

View file

@ -18,7 +18,7 @@ void main() {
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D ntsc_pass; layout(set = 0, binding = 1) uniform sampler2D colortools_and_ntsc_pass;
#include "includes/functions.include.slang" #include "includes/functions.include.slang"
#include "includes/blooms.include.slang" #include "includes/blooms.include.slang"
@ -28,7 +28,7 @@ void main() {
vec3 bloomed = bloom_gamma_power( vec3 bloomed = bloom_gamma_power(
ntsc_pass, colortools_and_ntsc_pass,
vTexCoord, vTexCoord,
params.OriginalSize, params.OriginalSize,
vec2(BLOOM_SIZE), vec2(BLOOM_SIZE),

View file

@ -20,7 +20,7 @@ layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D Source; layout(set = 0, binding = 1) uniform sampler2D Source;
layout(set = 0, binding = 2) uniform sampler2D avglum_pass; layout(set = 0, binding = 2) uniform sampler2D avglum_pass;
layout(set = 0, binding = 3) uniform sampler2D first_pass; layout(set = 0, binding = 3) uniform sampler2D flick_and_noise_pass;
layout(set = 0, binding = 4) uniform sampler2D bloom_pass_finalFeedback; layout(set = 0, binding = 4) uniform sampler2D bloom_pass_finalFeedback;
@ -40,7 +40,7 @@ layout(set = 0, binding = 4) uniform sampler2D bloom_pass_finalFeedback;
float get_avg_lum_from_mip(sampler2D tex, vec2 co, float lod) { float get_avg_lum_from_mip(sampler2D tex, vec2 co, float lod) {
vec3 mip = textureLod(first_pass, co, lod).rgb; vec3 mip = textureLod(flick_and_noise_pass, co, lod).rgb;
mip = apply_fuzzy_main_pass(mip); mip = apply_fuzzy_main_pass(mip);
//return (mip.r+mip.g+mip.b)/3.0; //return (mip.r+mip.g+mip.b)/3.0;
float luminance_from_feedback = rgb_to_gray(mip); float luminance_from_feedback = rgb_to_gray(mip);
@ -105,7 +105,7 @@ void main() {
// (Branching with (if BLOOM_EYE_ADPT_SRT == 0.0) does not gain anything.) // (Branching with (if BLOOM_EYE_ADPT_SRT == 0.0) does not gain anything.)
// Modulate exposure over time too. // Modulate exposure over time too.
//Smooth luminance with specified lod in this alpha channel //Smooth luminance with specified lod in this alpha channel
float zone_luminance = get_avg_lum_from_mip(first_pass, vTexCoord, BLOOM_PUPIL_LUM_ZONE_W); float zone_luminance = get_avg_lum_from_mip(flick_and_noise_pass, vTexCoord, BLOOM_PUPIL_LUM_ZONE_W);
float smoothed_avglum = zone_luminance * BLOOM_EYE_ADPT_SRT; float smoothed_avglum = zone_luminance * BLOOM_EYE_ADPT_SRT;
bloom_mix_adapted = max(0.0, BLOOM_MIX - smoothed_avglum); bloom_mix_adapted = max(0.0, BLOOM_MIX - smoothed_avglum);

View file

@ -17,30 +17,6 @@ layout(location = 4) out float vNTSC_weights[NTSC_FILTER_WIDTH_MAX];
#include "includes/functions.include.slang" #include "includes/functions.include.slang"
vec3 kelvin2rgb(float k) {
//Convert kelvin temperature to rgb factors
k = clamp(k,1000,40000);
k=k/100.0;
float tmpCalc;
vec3 pixel_out;
if (k<=66) {
pixel_out.r = 255;
pixel_out.g = 99.47080258612 * log(k) - 161.11956816610;
} else {
pixel_out.r = 329.6987274461 * pow(k - 60 ,-0.13320475922);
pixel_out.g = 288.12216952833 * pow(k-60, -0.07551484921);
}
if (k >= 66)
pixel_out.b = 255;
else if (k<=19)
pixel_out.b = 0;
else
pixel_out.b = 138.51773122311 * log(k - 10) - 305.04479273072;
return pixel_out/255.0;
}
/* hann() sinc() functions by xot: /* hann() sinc() functions by xot:
* copyright (c) 2017-2018, John Leffingwell * copyright (c) 2017-2018, John Leffingwell
* license CC BY-SA Attribution-ShareAlike * license CC BY-SA Attribution-ShareAlike
@ -98,7 +74,7 @@ layout(location = 4) in float vNTSC_weights[NTSC_FILTER_WIDTH_MAX];
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; layout(set = 0, binding = 2) uniform sampler2D Source;
//layout(set = 0, binding = 3) uniform sampler2D ntsc_passFeedback; layout(set = 0, binding = 3) uniform sampler2D colortools_and_ntsc_passFeedback;
// Colorspace conversion matrix for YIQ-to-RGB // Colorspace conversion matrix for YIQ-to-RGB
@ -151,31 +127,6 @@ vec4 ntscdec(vec2 uv) {
} }
#define W vec3(0.2125, 0.7154, 0.0721)
vec3 color_tools(vec3 pixel_out) {
//Apply color corrections to input signal.
//Push luminance without clipping
pixel_out = pixel_push_luminance(pixel_out,LUMINANCE);
//Modify saturation
if (!(SATURATION == 1.0)) {
vec3 intensity = vec3(dot(pixel_out.rgb, W));
pixel_out.rgb = mix(intensity, pixel_out.rgb, SATURATION);
}
//Modify contrast and brightness
if (CONTRAST != 0.0 || BRIGHTNESS != 0.0)
pixel_out.rgb = apply_contrast_brightness(pixel_out.rgb, CONTRAST, BRIGHTNESS);
//Modify color temperature
if (TEMPERATURE != 6500.0) pixel_out.rgb = pixel_out.rgb * vTemperature_rgb;
return pixel_out;
}
vec3 debug() { vec3 debug() {
vec3 pixel_debug; vec3 pixel_debug;
float blink_time = 120; float blink_time = 120;
@ -190,7 +141,6 @@ void main() {
//FragColor = vec4(debug(), 1.0); return; //FragColor = vec4(debug(), 1.0); return;
//This will go into alpha channel to make glow aware of it and blur more. //This will go into alpha channel to make glow aware of it and blur more.
//It could be configurable. //It could be configurable.
float artifacts = 0.0; float artifacts = 0.0;
@ -202,7 +152,7 @@ void main() {
pixel_out = pixel_out_vec4.rgb; pixel_out = pixel_out_vec4.rgb;
artifacts = pixel_out_vec4.a; artifacts = pixel_out_vec4.a;
//artifacts = mix(artifacts, texture(ntsc_passFeedback, vTexCoord).a, 0.5); <-- this helps //artifacts = mix(artifacts, texture(colortools_and_ntsc_passFeedback, vTexCoord).a, 0.5); <-- this helps
//FragColor = vec4(artifacts); return; //FragColor = vec4(artifacts); return;
/* /*
@ -217,10 +167,24 @@ void main() {
} }
if (DO_CCORRECTION == 1.0) if (DO_CCORRECTION == 1.0)
pixel_out = color_tools(pixel_out); pixel_out = color_tools(pixel_out, vTemperature_rgb);
if (DO_DOT_MATRIX + DOT_M_MBLUR_STR > 1.0) {
vec3 feedback = texture(colortools_and_ntsc_passFeedback, vTexCoord).rgb;
vec3 m_blur_adapted = vec3(DOT_M_MBLUR_STR);
if (DOT_M_MBLUR_MODE > 0.0) {
vec3 adaption = mix_step (pixel_out - feedback,
feedback - pixel_out,
DOT_M_MBLUR_MODE -1);
//adaption = mix_step(adaption, -adaption, DOT_M_MBLUR_MODE -1);
m_blur_adapted *= clamp( adaption, 0.0, 1.0 );
m_blur_adapted = pow(m_blur_adapted, vec3(0.25));
}
pixel_out = mix(pixel_out, feedback, m_blur_adapted );
}
FragColor = vec4(pixel_out, artifacts); FragColor = vec4(pixel_out, artifacts);

View file

@ -55,7 +55,10 @@
#define CONTRAST global.CONTRAST #define CONTRAST global.CONTRAST
#define BRIGHTNESS global.BRIGHTNESS #define BRIGHTNESS global.BRIGHTNESS
#define TEMPERATURE global.TEMPERATURE #define TEMPERATURE global.TEMPERATURE
#define COLOR_MONO_COLORIZE global.COLOR_MONO_COLORIZE
#define COLOR_MONO_HUE1 global.COLOR_MONO_HUE1
#define COLOR_MONO_HUE2 global.COLOR_MONO_HUE2
#define COLOR_MONO_HUE_BIAS global.COLOR_MONO_HUE_BIAS
#define DO_FXAA global.DO_FXAA #define DO_FXAA global.DO_FXAA
@ -252,3 +255,19 @@
#define TILT_Y global.TILT_Y #define TILT_Y global.TILT_Y
#define TILT_FOV global.TILT_FOV #define TILT_FOV global.TILT_FOV
#define TILT_BEZEL_K global.TILT_BEZEL_K #define TILT_BEZEL_K global.TILT_BEZEL_K
#define TATE global.TATE
#define DO_DOT_MATRIX global.DO_DOT_MATRIX
#define DOT_M_G_SHARP global.DOT_M_G_SHARP
#define DOT_M_RGB_SHARP global.DOT_M_RGB_SHARP
#define DOT_M_RGB_STR global.DOT_M_RGB_STR
#define DOT_M_G_TRESH global.DOT_M_G_TRESH
#define DOT_M_G_BRT global.DOT_M_G_BRT
#define DOT_M_G_GAIN global.DOT_M_G_GAIN
#define DOT_M_G_STR global.DOT_M_G_STR
#define DOT_M_MBLUR_STR global.DOT_M_MBLUR_STR
#define DOT_M_MBLUR_MODE global.DOT_M_MBLUR_MODE
#define DOT_M_MULTIPLY global.DOT_M_MULTIPLY
#define DOT_M_SHADOW_STR global.DOT_M_SHADOW_STR
#define DOT_M_SHADOW_OFF global.DOT_M_SHADOW_OFF

View file

@ -1,9 +1,13 @@
// BEZEL STATIC CONFIG ############################################################################################## // BEZEL STATIC CONFIG ##############################################################################################
//The following defines the monitor frame resolution in textures/monitor_body_[curved/straight].png
//and are used to calculate the sampling lod.
//Change if you change the texture resolution or
//you can comment it to let the shader calculates them at runtime (heavier).
#define BEZEL_RES vec2(2923, 2178)
// Uncomment this to improve bezel downscaling. //The following can slightly correct bezel aspect
// If you are using standard bezel, leave commented to gain performance. #define BEZEL_ASPECT_CORRECTION (1.0 - 0.004)
#define STATIC_BEZEL_USE_MIPMAP 1.0
//This is used to skip calculations in the reflection blur code. //This is used to skip calculations in the reflection blur code.
//set it to minimum value that allows you to see reflection entirely //set it to minimum value that allows you to see reflection entirely
@ -183,9 +187,14 @@ layout(std140, set = 0, binding = 0) uniform UBO {
//vec4 monitor_bodySize; //vec4 monitor_bodySize;
//vec4 bgSize; //vec4 bgSize;
vec4 avglum_passSize; vec4 avglum_passSize;
vec4 first_passSize; vec4 flick_and_noise_passSize;
vec4 ntsc_passSize; vec4 colortools_and_ntsc_passSize;
float COLOR_MONO_COLORIZE;
float COLOR_MONO_HUE1;
float COLOR_MONO_HUE2;
float COLOR_MONO_HUE_BIAS;
float DO_SCANLINES; float DO_SCANLINES;
float DO_IN_GLOW; float DO_IN_GLOW;
float DO_VMASK_AND_DARKLINES ; float DO_VMASK_AND_DARKLINES ;
@ -337,16 +346,36 @@ layout(std140, set = 0, binding = 0) uniform UBO {
float BACKDROP_OFFY; float BACKDROP_OFFY;
float BACKDROP_ZOOM; float BACKDROP_ZOOM;
float TATE;
float DO_DOT_MATRIX;
float DOT_M_G_SHARP;
float DOT_M_G_TRESH;
float DOT_M_G_STR;
float DOT_M_G_BRT;
float DOT_M_RGB_SHARP;
float DOT_M_RGB_STR;
float DOT_M_G_GAIN;
float DOT_M_MBLUR_STR;
float DOT_M_MBLUR_MODE;
float DOT_M_MULTIPLY;
float DOT_M_SHADOW_STR;
float DOT_M_SHADOW_OFF;
} global; } global;
// Color correction // Color correction
#pragma parameter DO_CCORRECTION "★ Color corrections enable? ==>" 0.0 0.0 1.0 1.0 #pragma parameter DO_CCORRECTION "★ Color corrections enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter LUMINANCE " Luminance push (>1.0=clip)" 0.0 0.0 1.5 0.05 #pragma parameter LUMINANCE " Luminance push (>1.0=clip)" 0.0 0.0 1.5 0.05
#pragma parameter SATURATION " Saturation in (1.0=off)" 1.0 0.0 2.0 0.01
#pragma parameter CONTRAST " Contrast in (0.0=off)" 0.0 -1.0 1.0 0.01
#pragma parameter BRIGHTNESS " Brightness in (0.0=off)" 0.0 -1.0 1.0 0.01 #pragma parameter BRIGHTNESS " Brightness in (0.0=off)" 0.0 -1.0 1.0 0.01
#pragma parameter CONTRAST " Contrast in (0.0=off)" 0.0 -1.0 1.0 0.01
#pragma parameter TEMPERATURE " Temperature in (6500=off)" 6500.0 3000 10000.0 50.0 #pragma parameter TEMPERATURE " Temperature in (6500=off)" 6500.0 3000 10000.0 50.0
#pragma parameter GAMMA_OUT " Gamma out" 0.69 0.1 4.0 0.01 #pragma parameter GAMMA_OUT " Gamma out" 0.69 0.1 4.0 0.01
#pragma parameter COLOR_MONO_COLORIZE " Monochrome screen colorization" 0.0 0.0 1.0 0.1
#pragma parameter COLOR_MONO_HUE1 " . Hue bright" 0.25 0.0 1.0 0.01
#pragma parameter COLOR_MONO_HUE2 " . Hue dark" 0.3 0.0 1.0 0.01
#pragma parameter COLOR_MONO_HUE_BIAS " . Hue bright-dark bias" 0.0 -2.0 2.0 0.01
#pragma parameter SATURATION " Saturation in (1.0=off)" 1.0 0.0 2.0 0.01
#pragma parameter BLANK1 " " 0.0 0.0 1.0 1.0 #pragma parameter BLANK1 " " 0.0 0.0 1.0 1.0
@ -411,7 +440,6 @@ layout(std140, set = 0, binding = 0) uniform UBO {
#pragma parameter BLANK7 " " 0.0 0.0 1.0 1.0 #pragma parameter BLANK7 " " 0.0 0.0 1.0 1.0
// Mask // Mask
#pragma parameter DO_VMASK_AND_DARKLINES "★ Masks and/or Darklines enable? ==>" 0.0 0.0 1.0 1.0 #pragma parameter DO_VMASK_AND_DARKLINES "★ Masks and/or Darklines enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter MASK_COMPENSATION " Compensate for brightness loss" 0.0 0.0 1.0 0.05 #pragma parameter MASK_COMPENSATION " Compensate for brightness loss" 0.0 0.0 1.0 0.05
@ -428,21 +456,11 @@ layout(std140, set = 0, binding = 0) uniform UBO {
#pragma parameter DRKLN_OVERWHITE " . Affect bright colors" 1.0 0.0 1.0 0.05 #pragma parameter DRKLN_OVERWHITE " . Affect bright colors" 1.0 0.0 1.0 0.05
#pragma parameter BLANK9 " " 0.0 0.0 1.0 1.0 #pragma parameter BLANK9 " " 0.0 0.0 1.0 1.0
#pragma parameter TATE "★ Tate mode (1:auto 2:forced)" 0.0 0.0 2.0 1.0
#pragma parameter BLANK7a " " 0.0 0.0 1.0 1.0
// Halo
#pragma parameter DO_HALO "★ Halo enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter HALO_POWER " Strength" 0.9 0.0 5.0 0.025
#pragma parameter HALO_W " Sharpness, horizontal" 1.75 0.35 7.0 0.05
#pragma parameter HALO_H " Sharpness, Vertical" 1.75 0.35 7.0 0.05
#pragma parameter HALO_GAMMA " Gamma, the higher, the less the halo on dark colors" 2.0 1.0 10.0 0.1
#pragma parameter HALO_VS_SCAN " Light up scanlines gaps too" 0.0 0.0 1.0 0.1
#pragma parameter BLANK10 " " 0.0 0.0 1.0 1.0
// Scanlines // Scanlines
#pragma parameter DO_SCANLINES "★ Scanlines enable? ==>" 0.0 0.0 1.0 1.0 #pragma parameter DO_SCANLINES "★ Scanlines enable? (NOT with dot matrix!) ==>" 0.0 0.0 1.0 1.0
#pragma parameter SCANLINE_MIN " Minimum height" 1.0 0.01 1.0 0.01 #pragma parameter SCANLINE_MIN " Minimum height" 1.0 0.01 1.0 0.01
#pragma parameter SCANLINE_MAX " Maximum height" 0.5 0.05 1.0 0.01 #pragma parameter SCANLINE_MAX " Maximum height" 0.5 0.05 1.0 0.01
#pragma parameter SCANLINE_MINMAX_GAMMA " Min->Max inertia" 1.0 0.0 4.0 0.1 #pragma parameter SCANLINE_MINMAX_GAMMA " Min->Max inertia" 1.0 0.0 4.0 0.1
@ -452,12 +470,38 @@ layout(std140, set = 0, binding = 0) uniform UBO {
#pragma parameter SCANLINE_FLICKERING_POWER " Interlace Flicker power" 0.25 0.0 8.0 0.01 #pragma parameter SCANLINE_FLICKERING_POWER " Interlace Flicker power" 0.25 0.0 8.0 0.01
#pragma parameter SCANLINE_DISABLE_ON_INTERLACE " Disable on interlaced screen" 0.0 0.0 1.0 1.0 #pragma parameter SCANLINE_DISABLE_ON_INTERLACE " Disable on interlaced screen" 0.0 0.0 1.0 1.0
#pragma parameter BLANK11 " " 0.0 0.0 1.0 1.0 #pragma parameter BLANK11 " " 0.0 0.0 1.0 1.0
#pragma parameter SCANLINE_SM_TYPE " Slotmask type (disable (0) with darklines!)" 0.0 0.0 3.0 1.0 #pragma parameter SCANLINE_SM_TYPE " Slotmask type (disable (0) with darklines!)" 0.0 0.0 3.0 1.0
#pragma parameter SCANLINE_SM_STRENGTH " . Slotmask strength" 1.0 0.0 1.0 0.05 #pragma parameter SCANLINE_SM_STRENGTH " . Slotmask strength" 1.0 0.0 1.0 0.05
#pragma parameter SCANLINE_SM_VOFFSET " . Offset (type 1 only)" 45.0 0.0 158.0 1.0 #pragma parameter SCANLINE_SM_VOFFSET " . Offset (type 1 only)" 45.0 0.0 158.0 1.0
#pragma parameter BLANK12 " " 0.0 0.0 1.0 1.0 #pragma parameter BLANK12 " " 0.0 0.0 1.0 1.0
// Dot matrix emulation
#pragma parameter DO_DOT_MATRIX "★ Dot matrix emulation enable? (NOT with scanlines!) ==>" 0.0 0.0 1.0 1.0
#pragma parameter DOT_M_G_STR " Grid strength" 0.0 0.0 1.0 0.01
#pragma parameter DOT_M_G_TRESH " . Paint on bright (<0 on black)" 1.1 -1.1 1.1 0.01
#pragma parameter DOT_M_G_BRT " . Grid brightness" 0.0 0.0 1.0 0.01
#pragma parameter DOT_M_G_SHARP " . Grid sharpness" 2.0 0.0 20.0 0.25
#pragma parameter DOT_M_RGB_STR " RGB strength" 1.0 0.0 1.0 0.01
#pragma parameter DOT_M_RGB_SHARP " . RGB sharpness" 2.0 0.1 16.0 0.01
#pragma parameter DOT_M_G_GAIN " . RGB Green gain correction" 0.85 0.1 1.0 0.01
#pragma parameter DOT_M_MBLUR_STR " Refresh inertia" 0.45 0.0 0.9 0.05
#pragma parameter DOT_M_MBLUR_MODE " . Inertia on: both,white,black" 0.0 0.0 2.0 1.0
#pragma parameter DOT_M_SHADOW_STR " Shadow strength (disables deconvergence)" 0.0 0.0 1.0 0.01
#pragma parameter DOT_M_SHADOW_OFF " Shadow offset" 0.0 -1.0 1.0 0.01
#pragma parameter DOT_M_MULTIPLY " Multiply factor (debug)" 1.0 1.0 50.0 1.0
#pragma parameter BLANK12c " " 0.0 0.0 1.0 1.0
// Halo
#pragma parameter DO_HALO "★ Halo enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter HALO_POWER " Strength" 0.9 0.0 5.0 0.025
#pragma parameter HALO_W " Sharpness, horizontal" 1.75 0.35 7.0 0.05
#pragma parameter HALO_H " Sharpness, Vertical" 1.75 0.35 7.0 0.05
#pragma parameter HALO_GAMMA " Gamma, the higher, the less the halo on dark colors" 2.0 1.0 10.0 0.1
#pragma parameter HALO_VS_SCAN " Light up scanlines and dot grid gaps too" 0.0 0.0 1.0 0.1
#pragma parameter BLANK10 " " 0.0 0.0 1.0 1.0
// Bloom // Bloom
#pragma parameter DO_BLOOM "★ Bloom enable? ==>" 0.0 0.0 1.0 1.0 #pragma parameter DO_BLOOM "★ Bloom enable? ==>" 0.0 0.0 1.0 1.0
@ -477,8 +521,8 @@ layout(std140, set = 0, binding = 0) uniform UBO {
//Curvature parameters: //Curvature parameters:
#pragma parameter DO_CURVATURE "★ Curvature/Border enable? ==>" 0.0 0.0 1.0 1.0 #pragma parameter DO_CURVATURE "★ Curvature/Border enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter GEOM_WARP_X " Warp X" 0.3 0.0 6.0 0.025 #pragma parameter GEOM_WARP_X " Warp X" 0.430 0.0 6.0 0.01
#pragma parameter GEOM_WARP_Y " Warp Y" 0.0 0.0 6.0 0.025 #pragma parameter GEOM_WARP_Y " Warp Y" 0.49 0.0 6.0 0.01
#pragma parameter GEOM_CUT_EARS " Cut curvature ears" 1.4 1.0 10.0 0.01 #pragma parameter GEOM_CUT_EARS " Cut curvature ears" 1.4 1.0 10.0 0.01
#pragma parameter GEOM_CORNER_SIZE " Corner radius" 0.005 0.005 0.1 0.001 #pragma parameter GEOM_CORNER_SIZE " Corner radius" 0.005 0.005 0.1 0.001
#pragma parameter GEOM_CORNER_SMOOTH " Corner sharpness" 350.0 15.0 1000.0 1.0 #pragma parameter GEOM_CORNER_SMOOTH " Corner sharpness" 350.0 15.0 1000.0 1.0
@ -489,8 +533,8 @@ layout(std140, set = 0, binding = 0) uniform UBO {
//Bezel related //Bezel related
#pragma parameter DO_BEZEL "★ Bezel enable? ==>" 0.0 0.0 1.0 1.0 #pragma parameter DO_BEZEL "★ Bezel enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter BEZEL_USE_STRAIGHT " Straight" 0.0 0.0 1.0 1.0 #pragma parameter BEZEL_USE_STRAIGHT " Straight" 0.0 0.0 1.0 1.0
#pragma parameter BEZEL_INNER_ZOOM " Inner zoom (ignored if integer scaled)" -0.18 -1.5 0.5 0.005 #pragma parameter BEZEL_INNER_ZOOM " Inner zoom (ignored if integer scaled)" -0.18 -1.5 0.5 0.001
#pragma parameter BEZEL_FRAME_ZOOM " Frame zoom" 0.0 -1.5 0.5 0.005 #pragma parameter BEZEL_FRAME_ZOOM " Frame zoom" 0.0 -1.5 0.5 0.001
#pragma parameter BEZEL_R " Color: Red" -0.3 -1.0 1.0 0.005 #pragma parameter BEZEL_R " Color: Red" -0.3 -1.0 1.0 0.005
#pragma parameter BEZEL_G " Color: Green" -0.3 -1.0 1.0 0.005 #pragma parameter BEZEL_G " Color: Green" -0.3 -1.0 1.0 0.005
#pragma parameter BEZEL_B " Color: Blue" -0.3 -1.0 1.0 0.005 #pragma parameter BEZEL_B " Color: Blue" -0.3 -1.0 1.0 0.005
@ -517,7 +561,8 @@ layout(std140, set = 0, binding = 0) uniform UBO {
#pragma parameter BG_IMAGE_ZOOM " Zoom Image" 1.0 -1.0 3.0 0.0005 #pragma parameter BG_IMAGE_ZOOM " Zoom Image" 1.0 -1.0 3.0 0.0005
#pragma parameter BG_IMAGE_ROTATION " Rotate image mode (-1 for auto)" -1.0 -1.0 2.0 1.0 #pragma parameter BG_IMAGE_ROTATION " Rotate image mode (-1 for auto)" -1.0 -1.0 2.0 1.0
#pragma parameter BG_IMAGE_NIGHTIFY " Nightify image" 0.0 0.0 1.0 0.1 #pragma parameter BG_IMAGE_NIGHTIFY " Nightify image" 0.0 0.0 1.0 0.1
#pragma parameter BG_IMAGE_WRAP_MODE " Wrap mode: default, clamp to border, edge, repeat" 0.0 0.0 3.0 1.0 #pragma parameter LABEL_0101 " !NEXT FEATURE IS STATIC, SEE docs.md TO ENABLE" 0.0 0.0 1.0 1.0
#pragma parameter BG_IMAGE_WRAP_MODE " Wrap mode: default, clamp to border, edge, repeat" 0.0 0.0 3.0 1.0
#pragma parameter BLANK16 " " 0.0 0.0 1.0 1.0 #pragma parameter BLANK16 " " 0.0 0.0 1.0 1.0
//Backdrop image //Backdrop image
@ -594,8 +639,8 @@ layout(std140, set = 0, binding = 0) uniform UBO {
//Content geomerty overrides //Content geomerty overrides
#pragma parameter DO_GAME_GEOM_OVERRIDE "★ Override content geometry enable? ==>" 0.0 0.0 1.0 1.0 #pragma parameter DO_GAME_GEOM_OVERRIDE "★ Override content geometry enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter GAME_GEOM_INT_SCALE " Integer scale (disables inner zoom)" 0.0 0.0 1.0 1.0 #pragma parameter GAME_GEOM_INT_SCALE " Integer scale (disables inner zoom) 2=No keep aspect" 0.0 0.0 2.0 1.0
#pragma parameter GAME_GEOM_INT_SCALE_MAX " Maximum integer scale" 10.0 1.0 100.0 1.0 #pragma parameter GAME_GEOM_INT_SCALE_MAX " Maximum integer scale" 10.0 1.0 100.0 1.0
#pragma parameter LABEL_WARNING4 " ⚠ The following will override integer scale ⚠" 1.0 1.0 1.0 1.0 #pragma parameter LABEL_WARNING4 " ⚠ The following will override integer scale ⚠" 1.0 1.0 1.0 1.0
#pragma parameter GAME_GEOM_ASPECT " Aspect (0 = unchanged)" 0.0 0.0 3.0 0.005 #pragma parameter GAME_GEOM_ASPECT " Aspect (0 = unchanged)" 0.0 0.0 3.0 0.005
#pragma parameter GAME_GEOM_VSHIFT " Vertical position" 0.0 -10.0 10.0 0.01 #pragma parameter GAME_GEOM_VSHIFT " Vertical position" 0.0 -10.0 10.0 0.01

View file

@ -5,6 +5,7 @@
* Does masks, spot, bezel, vignette, background image (anything else?) * Does masks, spot, bezel, vignette, background image (anything else?)
*/ */
#include "config.inc" #include "config.inc"
#pragma stage vertex #pragma stage vertex
@ -15,7 +16,7 @@ layout(location = 1) in vec2 TexCoord;
layout(location = 0) out vec2 vTexCoord; layout(location = 0) out vec2 vTexCoord;
layout(location = 1) out vec2 vOutputCoord; layout(location = 1) out vec2 vOutputCoord;
layout(location = 2) out vec2 spot_offset; layout(location = 2) out vec2 spot_offset;
layout(location = 3) out vec2 vFragCoord; layout(location = 3) out vec2 vFragCoord_Tated;
layout(location = 4) out float vIsRotated; layout(location = 4) out float vIsRotated;
@ -36,6 +37,9 @@ layout(location = 4) out float vIsRotated;
layout(location = 13) out float vDynamicSeed; layout(location = 13) out float vDynamicSeed;
layout(location = 14) out float vBEZEL_INNER_ZOOM_adapted; layout(location = 14) out float vBEZEL_INNER_ZOOM_adapted;
layout(location = 15) out float vVmask_gap; layout(location = 15) out float vVmask_gap;
layout(location = 16) out float vFcol_Tated;
layout(location = 17) out float vDo_Tate;
layout(location = 18) out vec3 vDotMat_Grid_Color;
#include "includes/functions.include.slang" #include "includes/functions.include.slang"
@ -47,10 +51,10 @@ void main() {
vIn_aspect = get_in_aspect(); vIn_aspect = get_in_aspect();
//Calculate vTexcoord as fractional or integer scaled? //Calculate vTexcoord as fractional or integer scaled?
if ( !do_integer_scale() ) if ( need_NO_integer_scale() )
vTexCoord = get_scaled_coords_aspect(TexCoord,global.FinalViewportSize, vIn_aspect, bool(vIsRotated)) + vec2(0.0001); vTexCoord = get_scaled_coords_aspect(TexCoord,global.FinalViewportSize, vIn_aspect, bool(vIsRotated)) + vec2(0.0000);
else else
vTexCoord = integer_scale(TexCoord, vIn_aspect, bool(vIsRotated)) + vec2(0.0001); //<- without the offset, SCANLINE_MIN doesn't work. vTexCoord = integer_scale(TexCoord, vIn_aspect, bool(vIsRotated), GAME_GEOM_INT_SCALE-1.0 ) + vec2(0.0001); //<- without the offset, SCANLINE_MIN doesn't work.
//if (DO_GLOBAL_SHZO >0.5) //if (DO_GLOBAL_SHZO >0.5)
// vTexCoord = zoom(vTexCoord + vec2(-GLOBAL_OFFX, -GLOBAL_OFFY), GLOBAL_ZOOM ); // vTexCoord = zoom(vTexCoord + vec2(-GLOBAL_OFFX, -GLOBAL_OFFY), GLOBAL_ZOOM );
@ -60,17 +64,17 @@ void main() {
vOutputCoord = TexCoord; vOutputCoord = TexCoord;
vFragCoord = vec2( floor(vOutputCoord.x * params.OutputSize.x),
vec2 vFragCoord = vec2( floor(vOutputCoord.x * params.OutputSize.x),
floor(vOutputCoord.y * params.OutputSize.y)); floor(vOutputCoord.y * params.OutputSize.y));
vDo_Tate = float(TATE+vIsRotated > 1.001);
vFragCoord_Tated = mix_step(vFragCoord.xy, vFragCoord.yx, vDo_Tate );
vBEZEL_INNER_ZOOM_adapted = get_BEZEL_INNER_ZOOM() * DO_BEZEL; vBEZEL_INNER_ZOOM_adapted = get_BEZEL_INNER_ZOOM() * DO_BEZEL;
//Precalc some Curvature/Warp values: //Precalc some Curvature/Warp values:
float warp_adaption = 1 - vBEZEL_INNER_ZOOM_adapted * 4.0; vWarp_vexp = 1.0/ (1 + (vec2(GEOM_WARP_X, GEOM_WARP_Y) * 0.2)) ;
vec2 geom_warp_adapted = vec2(GEOM_WARP_X, GEOM_WARP_Y) * warp_adaption;
vWarp_vexp = 1.0/ (1 + (vec2(geom_warp_adapted.x, geom_warp_adapted.y) * 0.2)) ;
vWarp_arg2 = 1.0 - pow(vec2(0.29289321881345247559915563789515), vWarp_vexp ); vWarp_arg2 = 1.0 - pow(vec2(0.29289321881345247559915563789515), vWarp_vexp );
//SPOT //SPOT
@ -96,7 +100,7 @@ void main() {
//contrast and brightness into account. This is needed so that scanline generation //contrast and brightness into account. This is needed so that scanline generation
//can map the proper input range and strictly obey scanline thickness constraints. //can map the proper input range and strictly obey scanline thickness constraints.
vMax_inLum = max( 1.0, DO_CCORRECTION * apply_contrast_brightness(1.0, CONTRAST, BRIGHTNESS)) * vMax_inLum = max( 1.0, DO_CCORRECTION * apply_contrast_brightness(1.0, CONTRAST, BRIGHTNESS)) *
max( 1.0, DO_IN_GLOW * IN_GLOW_POWER); max( 1.0, DO_IN_GLOW * IN_GLOW_POWER);
} }
//Generate a seed that changes over time for temporal random noise //Generate a seed that changes over time for temporal random noise
@ -107,6 +111,16 @@ void main() {
// vec4 GAP_SIZE_PER_SCALE = vec4(1.0, 1.0, 2.0, 2.0); <--- moved in config.inc // vec4 GAP_SIZE_PER_SCALE = vec4(1.0, 1.0, 2.0, 2.0); <--- moved in config.inc
vec4 vgap_size_per_scale = GAP_SIZE_PER_SCALE / VMASK_DARKLINE_SCALE; vec4 vgap_size_per_scale = GAP_SIZE_PER_SCALE / VMASK_DARKLINE_SCALE;
vVmask_gap = vgap_size_per_scale[int(VMASK_DARKLINE_SCALE-1)]; vVmask_gap = vgap_size_per_scale[int(VMASK_DARKLINE_SCALE-1)];
vFcol_Tated = mix_step(vOutputCoord.x * params.OutputSize.x, vOutputCoord.y * params.OutputSize.y, vDo_Tate);
//Calc dotmat grid color
vDotMat_Grid_Color = vec3(DOT_M_G_BRT);
if (DO_DOT_MATRIX + DO_CCORRECTION > 1.1) {
vDotMat_Grid_Color = color_tools(vec3(DOT_M_G_BRT), kelvin2rgb(TEMPERATURE));
//Since we modify grid brightness via a specific use parameter, explicitely multiply it by that:
vDotMat_Grid_Color *= DOT_M_G_BRT ;
}
} }
@ -114,7 +128,7 @@ void main() {
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 1) in vec2 vOutputCoord; layout(location = 1) in vec2 vOutputCoord;
layout(location = 2) in vec2 spot_offset; layout(location = 2) in vec2 spot_offset;
layout(location = 3) in vec2 vFragCoord; layout(location = 3) in vec2 vFragCoord_Tated;
layout(location = 4) in float vIsRotated; layout(location = 4) in float vIsRotated;
layout(location = 5) in vec2 vWarp_vexp; layout(location = 5) in vec2 vWarp_vexp;
layout(location = 6) in vec2 vWarp_arg2; layout(location = 6) in vec2 vWarp_arg2;
@ -127,7 +141,9 @@ layout(location = 12) in float vIn_aspect;
layout(location = 13) in float vDynamicSeed; layout(location = 13) in float vDynamicSeed;
layout(location = 14) in float vBEZEL_INNER_ZOOM_adapted; layout(location = 14) in float vBEZEL_INNER_ZOOM_adapted;
layout(location = 15) in float vVmask_gap; layout(location = 15) in float vVmask_gap;
layout(location = 16) in float vFcol_Tated;
layout(location = 17) in float vDo_Tate;
layout(location = 18) in vec3 vDotMat_Grid_Color;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
@ -147,7 +163,7 @@ layout(set = 0, binding = 11) uniform sampler2D in_glow_pass;
layout(set = 0, binding = 12) uniform sampler2D halo_pass; layout(set = 0, binding = 12) uniform sampler2D halo_pass;
layout(set = 0, binding = 15) uniform sampler2D first_pass; layout(set = 0, binding = 15) uniform sampler2D flick_and_noise_pass;
@ -196,8 +212,8 @@ vec3 pixel_vmask(vec3 source, float white_reference, float over_white) {
vec4 vec_mod=(vec4(3,1,2,3) + vec4(VMASK_GAP * vVmask_gap,0.0,0.0,0.0))* VMASK_DARKLINE_SCALE; vec4 vec_mod=(vec4(3,1,2,3) + vec4(VMASK_GAP * vVmask_gap,0.0,0.0,0.0))* VMASK_DARKLINE_SCALE;
vec_mod = ceil(vec_mod); vec_mod = ceil(vec_mod);
float fcol = vOutputCoord.x * params.OutputSize.x;
float mod_compare = mod(fcol, vec_mod.x); float mod_compare = mod(vFcol_Tated, vec_mod.x);
if (mod_compare < vec_mod.y) if (mod_compare < vec_mod.y)
vmasked = m1; vmasked = m1;
@ -240,13 +256,12 @@ vec3 pixel_vmask_gm(vec3 source, float white_reference, float over_white) {
vec3 m2 = vec3( 1.0 , ooo , 1.0 ); //col 2 vec3 m2 = vec3( 1.0 , ooo , 1.0 ); //col 2
vec3 gap = vec3( ggg ); vec3 gap = vec3( ggg );
float fcol = vOutputCoord.s * params.OutputSize.x;
vec3 pixel_out; vec3 pixel_out;
vec3 vmasked; vec3 vmasked;
vec3 vec_mod=(vec3(2,1,2) + vec3(VMASK_GAP * vVmask_gap,0.0,0.0))* VMASK_DARKLINE_SCALE ; vec3 vec_mod=(vec3(2,1,2) + vec3(VMASK_GAP * vVmask_gap,0.0,0.0))* VMASK_DARKLINE_SCALE ;
vec_mod = ceil(vec_mod); vec_mod = ceil(vec_mod);
float mod_compare = mod(fcol, vec_mod.x); float mod_compare = mod(vFcol_Tated, vec_mod.x);
/* /*
if (mod_compare < vec_mod.y) if (mod_compare < vec_mod.y)
@ -281,7 +296,7 @@ vec3 pixel_darklines(vec3 source,float darkline_every, float darkline_trans,
float period_x = (3.0 - VMASK_USE_GM + VMASK_GAP * vVmask_gap) * VMASK_DARKLINE_SCALE; float period_x = (3.0 - VMASK_USE_GM + VMASK_GAP * vVmask_gap) * VMASK_DARKLINE_SCALE;
float period_y = darkline_every * VMASK_DARKLINE_SCALE; float period_y = darkline_every * VMASK_DARKLINE_SCALE;
vec2 FragCoord = vFragCoord; vec2 FragCoord = vFragCoord_Tated;
if (over_white != 1.0) { if (over_white != 1.0) {
//less effect on bright colors. //less effect on bright colors.
@ -302,7 +317,88 @@ vec3 pixel_darklines(vec3 source,float darkline_every, float darkline_trans,
return source; return source;
} }
float fn_scanline_mask(vec2 coords, bool do_slotmask, float lum, float min_inLum, float max_inLum) {
vec4 fn_pixel_dotmat(vec2 coords, vec3 pixel_in) {
//Base angle, depends on original size:
vec2 angle_base = coords * pi * params.OriginalSize.xy; //FIXME here we want .yy to make integer scaling
//Zoom to debug:
angle_base/=DOT_M_MULTIPLY;
//Set the rgb and grid sharpness:
vec3 s_rgb = vec3(DOT_M_RGB_SHARP);
float s_grid = DOT_M_G_SHARP;
//Generate bw grid:
vec2 grid = cos(angle_base);
grid = grid * grid;
grid = pow(grid, vec2(s_grid));
grid = 1 - grid;
//Generate rgb mask
vec3 mask_rgb=vec3(1.0);
if (DOT_M_RGB_STR > 0.0) {
//float wideness_k = DOT_M_RGB_WID;
float rgb_wideness = (pi/4.0); // * wideness_k;
//Generates 3 sines with 1/3 pi offset
vec3 angle_rgb = vec3( angle_base.x + rgb_wideness,
angle_base.x - pi,
angle_base.x - rgb_wideness );
mask_rgb = sin(angle_rgb);
mask_rgb *= mask_rgb;
mask_rgb = pow(mask_rgb, s_rgb);
//Adjust green gain
mask_rgb.g *= DOT_M_G_GAIN;
//Apply strength
mask_rgb=mix(vec3(1.0), mask_rgb, DOT_M_RGB_STR);
}
//Combine gridx and gridy into a single one
//float fgrid = min(grid.x, grid.y);
float fgrid = grid.x* grid.y;
//Modify strength for "paint on background" option
//Smoothly fadeout grid on background
//The fadeout size:
float fade_size = 0.3;
//We invert the smooth logic if threshold is negative. this allow to fadeout
//the grid on bright or dark backgrounds.
float lum_scaled = dot(pixel_in, vec3(0.33333));
lum_scaled = clamp(lum_scaled, 0.0, 1.0);
lum_scaled = mix_step(1-lum_scaled, lum_scaled, float(DOT_M_G_TRESH > 0.0));
float smooth_threshold = abs(DOT_M_G_TRESH);
vec2 smooth_range = vec2(smooth_threshold, smooth_threshold+fade_size);
float grid_smoothstep = 1- smoothstep(smooth_range.x, smooth_range.y, lum_scaled);
//Adapt grid strength
float grid_str = DOT_M_G_STR * grid_smoothstep;
//Apply strength modifier
float fgrid_adpt = mix(1.0, fgrid, grid_str);
//Output is the mix of the gap and the rgb masked pixel in.
//In the alpha channel we put the grid because it could be selectiveli brightened by halo
return vec4(
mix(vDotMat_Grid_Color, pixel_in * mask_rgb ,fgrid_adpt),
fgrid_adpt
);
}
float fn_scanline_mask(vec2 coords, bool do_slotmask, float lum, float min_inLum, float max_inLum, float tate) {
/* Produces a B/W scanline shape to be multiplicated by the source /* Produces a B/W scanline shape to be multiplicated by the source
* pixel later on to emulate scanline effect. * pixel later on to emulate scanline effect.
* scanlines can be drawn on odd and even fields alternating on odd and * scanlines can be drawn on odd and even fields alternating on odd and
@ -318,13 +414,21 @@ float fn_scanline_mask(vec2 coords, bool do_slotmask, float lum, float min_inLum
float lum_scaled = map_range(lum, min_inLum, max_inLum, SCANLINE_MIN, SCANLINE_MAX); float lum_scaled = map_range(lum, min_inLum, max_inLum, SCANLINE_MIN, SCANLINE_MAX);
float angle_base = coords.y * pi * params.OriginalSize.y * period;
float lines = 1.0; float lines = 1.0;
//1 - Generate base scanline. //0 - Generate base scanline.
//1 - The base coords is switched from coords.y to coords.x if tate mode is requested.
//2 - offset them on odd frames if needed (vScanlineAlternateOffset via vertex shader) //2 - offset them on odd frames if needed (vScanlineAlternateOffset via vertex shader)
//3 - Dont do it when the screen is interlaced and we have to skip drawing scanlines on interlaced screens. //3 - Dont do it when the screen is interlaced and we have to skip drawing scanlines on interlaced screens
//coords += params.OriginalSize.zw*0.5; //<-- this seems needed when using integer scaling
//due to linear filtering in earlier pass FIXME don't forget me!
coords = mix_step(coords.xy, coords.yx, tate);
float originalsize = mix_step(params.OriginalSize.y, params.OriginalSize.x, tate);
float angle_base = coords.y * pi * originalsize * period;
if (!( is_interlaced && SCANLINE_DISABLE_ON_INTERLACE == 1.0 )) { if (!( is_interlaced && SCANLINE_DISABLE_ON_INTERLACE == 1.0 )) {
lines = pow( sin(angle_base + vScanlineAlternateOffset), 2.0); lines = pow( sin(angle_base + vScanlineAlternateOffset), 2.0);
} }
@ -341,7 +445,7 @@ float fn_scanline_mask(vec2 coords, bool do_slotmask, float lum, float min_inLum
if (do_slotmask) { if (do_slotmask) {
float Darkline_part_w = (3.0 - VMASK_USE_GM + VMASK_GAP) * VMASK_DARKLINE_SCALE; float Darkline_part_w = (3.0 - VMASK_USE_GM + VMASK_GAP) * VMASK_DARKLINE_SCALE;
float Darkline_part_w_x2 = Darkline_part_w*2; float Darkline_part_w_x2 = Darkline_part_w*2;
bool odd_column = mod(vFragCoord.x + Darkline_part_w , Darkline_part_w_x2) < Darkline_part_w; bool odd_column = mod(vFragCoord_Tated.x + Darkline_part_w , Darkline_part_w_x2) < Darkline_part_w;
if (SCANLINE_SM_TYPE == 1.0) { if (SCANLINE_SM_TYPE == 1.0) {
// Slotmask is out oh phase every "odd" triple and mixed with // Slotmask is out oh phase every "odd" triple and mixed with
@ -416,12 +520,14 @@ float fn_scanline_mask(vec2 coords, bool do_slotmask, float lum, float min_inLum
//Apply min brightness //Apply min brightness
lines = lines * (1-SCANLINE_DARK ) + SCANLINE_DARK ; lines = lines * (1-SCANLINE_DARK ) + SCANLINE_DARK ;
return lines; return lines;
} }
float get_clamped_white_reference(vec3 pixel_in){ float get_clamped_white_reference(vec3 pixel_in){
float white_reference = max(max(pixel_in.r,pixel_in.g),pixel_in.b); float white_reference = max(max(pixel_in.r,pixel_in.g),pixel_in.b);
white_reference = min(white_reference,1.0); //Clamp here for both vmask and darklines. // white_reference = min(white_reference,1.0); //Clamp here for both vmask and darklines.
return white_reference; return white_reference;
} }
@ -545,7 +651,10 @@ vec2 get_scaled_coords_for_bezel() {
//But still, i need to access it twice in the code. //But still, i need to access it twice in the code.
//So this is a function that ensures me that i always calc it the same way. //So this is a function that ensures me that i always calc it the same way.
vec2 co = zoomout_coords(vTexCoord,-BEZEL_FRAME_ZOOM,1.0); vec2 co = vTexCoord;
co = zoomout_coords(co, -BEZEL_FRAME_ZOOM, 1.0);
co.y = zoom1D(co.y, BEZEL_ASPECT_CORRECTION);
if (DO_TILT == 1.0) if (DO_TILT == 1.0)
return tilt(co, vIsRotated, vec2(TILT_X, TILT_Y) * TILT_BEZEL_K); return tilt(co, vIsRotated, vec2(TILT_X, TILT_Y) * TILT_BEZEL_K);
@ -601,6 +710,60 @@ vec3 ambi_blend_image(vec4 image, vec3 ambi) {
return image.rgb; return image.rgb;
} }
float gaussian_coefficient(float x, float sigma) {
//restituisce un coefficiente gaussiano per x compreso tra 0 ed 1
float coefficient = 1.0 / sqrt(2.0 * 3.14159265358979323846 * sigma);
float exponent = -((x * x) / (2.0 * sigma));
return coefficient * exp(exponent);
}
vec3 boxed_blur_x(sampler2D tex, vec2 co, float box_size, vec4 output_size) {
/* blur tex in boxes of width box_size.
eg: box_size=4:
in: [abcd][edgh][ijkl]...
out [AVG1][AVG2][AVG3]
were AVG is a gaussian blur applied to each 4 elements separately.
*/
//The current pixel, x:
float x = co.x/output_size.z;
//The group x belongs to, g:
float g = ceil(x/box_size);
//The first element of the group, x0
float x0 = box_size * (g-1);
//Init output color:
vec3 c = vec3(0.0);
//We want a dumb arithmetic average?
#define BOXB_DUMB 0.0
//blurriness of output
#define BOXB_SIGMA 0.5
//Iterate for every pixel in group:
for (float xn = x0; xn < x0 + box_size; xn++) {
//Normalize interval to 0..1 to get gauss coefficients afterwards
float xn_normalizzato = normalize_range(xn, x0, x0 + (box_size-1));
//Get gauss coefficient
float coefficient = 1.0;
if (BOXB_DUMB == 0.0)
coefficient = gaussian_coefficient(xn_normalizzato, BOXB_SIGMA);
else
coefficient = 1.0;
//Translate integer element to offset in 0..1 range:
float off = params.OutputSize.z*xn;
c = c + texture(tex, vec2(off,co.y) ).rgb * coefficient ;
}
//reduce gain (why on earth is needed for gauss?):
if (BOXB_DUMB == 1.0)
c = c/box_size;
else
c = c/(box_size * 0.4);
return c;
}
vec3 fn_pixel_content(vec2 coords) { vec3 fn_pixel_content(vec2 coords) {
vec3 pixel_in; vec3 pixel_in;
@ -614,6 +777,10 @@ vec3 fn_pixel_content(vec2 coords) {
} else { } else {
pixel_in = texture(shift_and_bleed_pass,coords).rgb ; pixel_in = texture(shift_and_bleed_pass,coords).rgb ;
} }
//pixel_in = boxed_blur_x(shift_and_bleed_pass, coords, params.OutputSize.x / params.OriginalSize.y, params.OutputSize);
pixel_bleed = pixel_in; pixel_bleed = pixel_in;
vec3 pixel_out = pixel_in; vec3 pixel_out = pixel_in;
@ -649,19 +816,29 @@ vec3 fn_pixel_content(vec2 coords) {
} }
float scanline_or_dot_mat = 1.0; //init dot grid or scanline mask to 1.0
//Dot mask
if (DO_DOT_MATRIX == 1.0) {
vec4 pixel_grid_mask = fn_pixel_dotmat(coords, pixel_out);
//grid mask only is needed by halo to selectively light the grid.
scanline_or_dot_mat = pixel_grid_mask.a;
//rgb channel goes to pixel_out
pixel_out = pixel_grid_mask.rgb;
}
//Scanlines (non-flickering) //Scanlines (non-flickering)
float scanline_mask = 1.0;
if ( DO_SCANLINES == 1.0 ) { if ( DO_SCANLINES == 1.0 ) {
//Obtain a scanlined screen by multiplying the scanline mask and the pixel color. //Obtain a scanlined screen by multiplying the scanline mask and the pixel color.
float lum = max(max(pixel_out.r, pixel_out.g), pixel_out.b); float lum = max(max(pixel_out.r, pixel_out.g), pixel_out.b);
//The maximum possible brightness of the input color modified by glow,contrast and brightness. //The maximum possible brightness of the input color modified by glow,contrast and brightness.
float max_inLum = vMax_inLum; float scanline_mask = fn_scanline_mask(coords, SCANLINE_SM_TYPE > 0.0, lum, 0.0, vMax_inLum, vDo_Tate );
float min_inLum = 0.0;
scanline_mask = fn_scanline_mask(coords, SCANLINE_SM_TYPE > 0.0, lum, min_inLum, max_inLum );
pixel_out = min(pixel_out, 1.0) * ( scanline_mask + ( pixel_bleed * SCANLINES_BLEEDING * ( 1 - scanline_mask ) )); pixel_out = min(pixel_out, 1.0) * ( scanline_mask + ( pixel_bleed * SCANLINES_BLEEDING * ( 1 - scanline_mask ) ));
//Since scanlines and dot matrix are alternative and halo can white both, just use a single var for both:
scanline_or_dot_mat = scanline_mask;
} }
@ -671,9 +848,9 @@ vec3 fn_pixel_content(vec2 coords) {
if (DO_HALO == 1.0 ) { if (DO_HALO == 1.0 ) {
pixel_haloed = texture(halo_pass,coords).rgb; pixel_haloed = texture(halo_pass,coords).rgb;
//Halo only on scanlines: //Halo only on scanlines:
pixel_out += pixel_haloed * scanline_mask ; pixel_out += pixel_haloed * scanline_or_dot_mat ;
//Halo over scanlines gap too: //Halo over scanlines gap too:
pixel_out += pixel_haloed * (HALO_VS_SCAN) * (1 - scanline_mask) ; pixel_out += pixel_haloed * (HALO_VS_SCAN) * (1 - scanline_or_dot_mat) ;
} }
@ -722,20 +899,19 @@ vec4 fn_pixel_bezel(vec2 coords_for_bezel, vec2 coords_for_mirror, float nightif
) return vec4(0.0); ) return vec4(0.0);
vec4 bezel_in; vec4 bezel_in;
//Sample main bezel texture, Do we want mipmaps?
#ifdef STATIC_BEZEL_USE_MIPMAP //Sample main bezel texture:
vec2 bezel_lut_size = textureSize(monitor_body_curved,0); //no need to branch here if we assume straight and curved textures are the same size. //FIXME? #ifndef BEZEL_RES
float bezel_frame_lod = log2(bezel_lut_size.y * (BEZEL_FRAME_ZOOM+1.0) /global.FinalViewportSize.y); vec2 bezel_lut_size = textureSize(monitor_body_curved, 0); //no need to branch here if we assume straight and curved textures are the same size. //FIXME?
if (BEZEL_USE_STRAIGHT < 0.5)
bezel_in = textureLod(monitor_body_curved,coords_for_bezel,bezel_frame_lod);
else
bezel_in = textureLod(monitor_body_straight,coords_for_bezel,bezel_frame_lod);
#else #else
if (BEZEL_USE_STRAIGHT < 0.5) vec2 bezel_lut_size = BEZEL_RES;
bezel_in = texture(monitor_body_curved,coords_for_bezel);
else
bezel_in = texture(monitor_body_straight,coords_for_bezel);
#endif #endif
float bezel_frame_lod = log2(bezel_lut_size.y * (BEZEL_FRAME_ZOOM+1.0) /global.FinalViewportSize.y);
if (BEZEL_USE_STRAIGHT < 0.5)
bezel_in = textureLod(monitor_body_curved,coords_for_bezel,bezel_frame_lod);
else
bezel_in = textureLod(monitor_body_straight,coords_for_bezel,bezel_frame_lod);
//Exit if the bezel is completely transparent (the tube) //Exit if the bezel is completely transparent (the tube)
@ -808,13 +984,8 @@ void main() {
} }
//Calc initial content coords //Initial content coords
vec2 co_content = vTexCoord; vec2 co_content = vTexCoord;
if (DO_CURVATURE == 1.0 && ((GEOM_WARP_X != 0.0) || (GEOM_WARP_Y != 0.0))) {
co_content = Warp_fast(co_content, vWarp_vexp, vWarp_arg2, GEOM_CUT_EARS);
//co_content = Warp(co_content, GEOM_WARP_X, GEOM_WARP_Y);
}
//Tilt? //Tilt?
if (DO_TILT == 1.0) if (DO_TILT == 1.0)
@ -823,14 +994,19 @@ void main() {
//Precalc Bezel coords, since it modifies content coords. //Precalc Bezel coords, since it modifies content coords.
vec2 co_bezel = vec2(0.0); vec2 co_bezel = vec2(0.0);
vec2 co_mirror;
if (DO_BEZEL == 1.0) { if (DO_BEZEL == 1.0) {
co_content = zoomout_coords(co_content, -vBEZEL_INNER_ZOOM_adapted , 1.0); co_content = zoomout_coords(co_content, -vBEZEL_INNER_ZOOM_adapted , 1.0);
co_mirror = zoom(co_content, 1/BEZEL_REFL_ZOOMOUT_ROOM);
co_bezel = get_scaled_coords_for_bezel(); co_bezel = get_scaled_coords_for_bezel();
} }
//Curvature
//Curvature has to come after inner zoom or bezel curved border will not match content
//curved border when inner zoom changes.
if (DO_CURVATURE == 1.0 && ((GEOM_WARP_X != 0.0) || (GEOM_WARP_Y != 0.0))) {
co_content = Warp_fast(co_content, vWarp_vexp, vWarp_arg2, GEOM_CUT_EARS);
}
//Apply other content coords modifiers //Apply other content coords modifiers
if (DO_GAME_GEOM_OVERRIDE == 1.0) if (DO_GAME_GEOM_OVERRIDE == 1.0)
co_content = content_geom_override(co_content, GAME_GEOM_ASPECT, vIn_aspect, GAME_GEOM_VSHIFT, GAME_GEOM_HSHIFT, GAME_GEOM_ZOOM); co_content = content_geom_override(co_content, GAME_GEOM_ASPECT, vIn_aspect, GAME_GEOM_VSHIFT, GAME_GEOM_HSHIFT, GAME_GEOM_ZOOM);
@ -856,6 +1032,7 @@ void main() {
vec4 pixel_bezel; vec4 pixel_bezel;
//SKIP LOGIC is inside fn_pixel_bezel //SKIP LOGIC is inside fn_pixel_bezel
if (DO_BEZEL == 1.0) { if (DO_BEZEL == 1.0) {
vec2 co_mirror = zoom(co_content, 1/BEZEL_REFL_ZOOMOUT_ROOM);
pixel_bezel = fn_pixel_bezel(co_bezel, co_mirror, BG_IMAGE_NIGHTIFY); pixel_bezel = fn_pixel_bezel(co_bezel, co_mirror, BG_IMAGE_NIGHTIFY);
//If we used a smooth_border, canvas_busy is it, but since the content is in the bezel, //If we used a smooth_border, canvas_busy is it, but since the content is in the bezel,
//we can safely use it to smooth/darken the game border //we can safely use it to smooth/darken the game border
@ -925,9 +1102,9 @@ void main() {
//For debug purposes: //For debug purposes:
//quad split screen //quad split screen
//if ( (vOutputCoord.x < 0.5 && vOutputCoord.y > 0.5) || (vOutputCoord.x > 0.5 && vOutputCoord.y < 0.5) ) pixel_out = texture(first_pass,vOutputCoord).rgb; //if ( (vOutputCoord.x < 0.5 && vOutputCoord.y > 0.5) || (vOutputCoord.x > 0.5 && vOutputCoord.y < 0.5) ) pixel_out = texture(flick_and_noise_pass,vOutputCoord).rgb;
//split screen //split screen
//if (vTexCoord.y < 0.5) pixel_out = texture(first_pass,vTexCoord).rgb; //if (vTexCoord.y < 0.5) pixel_out = texture(flick_and_noise_pass,vTexCoord).rgb;
//pixel_out = texture(reflected_blurred_pass, vTexCoord).rgb; //pixel_out = texture(reflected_blurred_pass, vTexCoord).rgb;

View file

@ -90,13 +90,15 @@ void debug() {
//pixel_debug=vec3(abs(sin(params.FrameCount/3.14/20)),0.0,0.0); //red fade //pixel_debug=vec3(abs(sin(params.FrameCount/3.14/20)),0.0,0.0); //red fade
pixel_debug=vec3(1.0);
//pixel_debug=vec3(0.0,1.0,0.0); //pixel_debug=vec3(0.0,1.0,0.0);
//pixel_debug=vec3(0.38,0.0,1.0)*vTexCoord.x; //pixel_debug=vec3(0.38,0.0,1.0)*vTexCoord.x;
//pixel_debug=vec3(vTexCoord.x); //H bw gradient pixel_debug=vec3(vTexCoord.x); //H bw gradient
//pixel_debug=vec3(1.0); //H bw gradient
//pixel_debug=vec3(floor(vTexCoord.x*16)/16); //H bw gradient 16gray //pixel_debug=vec3(floor(vTexCoord.x*16)/16); //H bw gradient 16gray

View file

@ -263,14 +263,14 @@ void main()
#pragma stage fragment #pragma stage fragment
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D first_pass; layout(set = 0, binding = 2) uniform sampler2D flick_and_noise_pass;
void main() { void main() {
if ( DO_FXAA == 0.0 ) return; if ( DO_FXAA == 0.0 ) return;
//Here lies the blur modifier from ntsc pass to glow. //Here lies the blur modifier from ntsc pass to glow.
//I'm not expecting any performance hit, since the lookup should have been cached alreadyl //I'm not expecting any performance hit, since the lookup should have been cached alreadyl
float pixel_alpha = texture(first_pass, vTexCoord).a; float pixel_alpha = texture(flick_and_noise_pass, vTexCoord).a;
FragColor = vec4(FxaaPixelShader(vTexCoord, first_pass, vec2(global.first_passSize.z, global.first_passSize.w)),pixel_alpha); FragColor = vec4(FxaaPixelShader(vTexCoord, flick_and_noise_pass, vec2(global.flick_and_noise_passSize.z, global.flick_and_noise_passSize.w)),pixel_alpha);
} }

View file

@ -34,7 +34,7 @@ void main() {
return; return;
} }
pixel_haloed = blur9_y(Source, vTexCoord, global.first_passSize.xy, vHALO_H) * HALO_POWER; pixel_haloed = blur9_y(Source, vTexCoord, global.flick_and_noise_passSize.xy, vHALO_H) * HALO_POWER;
FragColor = vec4(pixel_haloed.rgb,1.0); FragColor = vec4(pixel_haloed.rgb,1.0);

View file

@ -57,7 +57,7 @@ void main() {
//Make it resolution independent. //Make it resolution independent.
IN_GLOW_W_ADAPTED = IN_GLOW_W_ADAPTED / NEW_SCALEMOD_X; IN_GLOW_W_ADAPTED = IN_GLOW_W_ADAPTED / NEW_SCALEMOD_X;
FragColor = vec4( blur9_x(shift_and_bleed_pass, vTexCoord, global.first_passSize.xy, IN_GLOW_W_ADAPTED), 1.0); FragColor = vec4( blur9_x(shift_and_bleed_pass, vTexCoord, global.flick_and_noise_passSize.xy, IN_GLOW_W_ADAPTED), 1.0);
//To debug ntsc artifacts mask: //To debug ntsc artifacts mask:
if (IN_GLOW_SHOW_ARTF_MASK > 0.5) if (IN_GLOW_SHOW_ARTF_MASK > 0.5)

View file

@ -8,6 +8,10 @@
return (a * (1 - mix)) + return (a * (1 - mix)) +
(b * mix) ; (b * mix) ;
} }
vec3 mix_step3(vec3 a, vec3 b, float mix){
return (a * (1 - mix)) +
(b * mix) ;
}
vec4 mix_step(vec4 a, vec4 b, float mix){ vec4 mix_step(vec4 a, vec4 b, float mix){
return (a * (1 - mix)) + return (a * (1 - mix)) +
(b * mix) ; (b * mix) ;
@ -178,6 +182,10 @@ float map_range(float value, float min_in, float max_in, float min_out, float ma
return min_out + (value - min_in) * (max_out - min_out) / (max_in - min_in); return min_out + (value - min_in) * (max_out - min_out) / (max_in - min_in);
} }
float normalize_range(float value, float min_in, float max_in) {
//Scales value in [min_in - max_in] to 0..1
return (value - min_in) / (max_in - min_in);
}
vec3 apply_contrast_brightness(vec3 c, float contrast, float brightness) { vec3 apply_contrast_brightness(vec3 c, float contrast, float brightness) {
return scale_to_range_vec3(c, -contrast, 1+contrast) + brightness; return scale_to_range_vec3(c, -contrast, 1+contrast) + brightness;
@ -420,13 +428,16 @@ vec2 Warp_try(vec2 pos, float warpX, float warpY) {
return scale_coord; return scale_coord;
} }
vec2 integer_scale(vec2 in_coords, float target_aspect, bool is_rotated) { vec2 integer_scale(vec2 in_coords, float target_aspect, bool is_rotated, float uncorrected_aspect) {
vec2 izoom;
float raw_in_aspect = params.OriginalSize.x/params.OriginalSize.y; float raw_in_aspect = params.OriginalSize.x/params.OriginalSize.y;
float adapted_aspect = target_aspect /raw_in_aspect; float adapted_aspect = target_aspect / raw_in_aspect;
in_coords.x = zoom1D(in_coords.x, adapted_aspect);
//Keep aspect?
adapted_aspect = mix_step(adapted_aspect, 1.0, uncorrected_aspect);
in_coords.x = zoom1D(in_coords.x, adapted_aspect);
vec2 izoom;
if (!is_rotated) { if (!is_rotated) {
//This is 1X integer zoom: //This is 1X integer zoom:
izoom = params.OriginalSize.xy / global.FinalViewportSize.xy; izoom = params.OriginalSize.xy / global.FinalViewportSize.xy;
@ -436,31 +447,30 @@ vec2 Warp_try(vec2 pos, float warpX, float warpY) {
izoom *= int_zoom; izoom *= int_zoom;
} else { } else {
izoom = params.OriginalSize.xy / global.FinalViewportSize.yx; izoom = params.OriginalSize.xy / global.FinalViewportSize.yx;
float int_zoom = floor(global.FinalViewportSize.y / (params.OriginalSize.x*adapted_aspect) ); float int_zoom = floor(global.FinalViewportSize.y / (params.OriginalSize.x * adapted_aspect) );
int_zoom = clamp(int_zoom, 1.0, GAME_GEOM_INT_SCALE_MAX); int_zoom = clamp(int_zoom, 1.0, GAME_GEOM_INT_SCALE_MAX);
izoom *= int_zoom; izoom *= int_zoom;
} }
return zoomxy(in_coords, izoom); return zoomxy(in_coords, izoom);
} }
bool need_NO_integer_scale() {
//returns if no integer scaling is requested.
return DO_GAME_GEOM_OVERRIDE * GAME_GEOM_INT_SCALE == 0.0;
}
bool need_integer_scale() {
//return if integer scaling is requested.
//return DO_GAME_GEOM_OVERRIDE == 1.0 && GAME_GEOM_INT_SCALE > 0.01;
return DO_GAME_GEOM_OVERRIDE * GAME_GEOM_INT_SCALE != 0.0;
}
float get_BEZEL_INNER_ZOOM() { float get_BEZEL_INNER_ZOOM() {
/*if (GAME_GEOM_INT_SCALE == 1.0 && DO_GAME_GEOM_OVERRIDE == 1.0) //Disables bezel inner zoom when using integer scaling
return 0.0; return BEZEL_INNER_ZOOM * float( !need_integer_scale() );
else
return BEZEL_INNER_ZOOM;
*/
//unbranched versions:
return BEZEL_INNER_ZOOM * (1 - DO_GAME_GEOM_OVERRIDE * GAME_GEOM_INT_SCALE);
//117.2
//return BEZEL_INNER_ZOOM * float( GAME_GEOM_INT_SCALE != 1.0 || DO_GAME_GEOM_OVERRIDE != 1.0 );
} }
bool do_integer_scale() {
return DO_GAME_GEOM_OVERRIDE == 1.0 && GAME_GEOM_INT_SCALE == 1.0;
}
vec2 content_geom_override(vec2 co, float aspect, float in_aspect, float vshift, float hshift, float out_zoom){ vec2 content_geom_override(vec2 co, float aspect, float in_aspect, float vshift, float hshift, float out_zoom){
//Aspect //Aspect
//float bUse_original_aspect = float(aspect < 0.01); //float bUse_original_aspect = float(aspect < 0.01);
@ -679,3 +689,75 @@ bool is_first_inside_rect(vec2 point, vec4 rect) {
return (point.x >= rect.x && point.x < rect.z && return (point.x >= rect.x && point.x < rect.z &&
point.y >= rect.y && point.y < rect.w) ; point.y >= rect.y && point.y < rect.w) ;
} }
// COLOR TOOLS
vec3 kelvin2rgb(float k) {
//Convert kelvin temperature to rgb factors
k = clamp(k,1000,40000);
k=k/100.0;
float tmpCalc;
vec3 pixel_out;
if (k<=66) {
pixel_out.r = 255;
pixel_out.g = 99.47080258612 * log(k) - 161.11956816610;
} else {
pixel_out.r = 329.6987274461 * pow(k - 60 ,-0.13320475922);
pixel_out.g = 288.12216952833 * pow(k-60, -0.07551484921);
}
if (k >= 66)
pixel_out.b = 255;
else if (k<=19)
pixel_out.b = 0;
else
pixel_out.b = 138.51773122311 * log(k - 10) - 305.04479273072;
return pixel_out/255.0;
}
#define W vec3(0.2125, 0.7154, 0.0721)
vec3 color_tools(vec3 pixel_out, vec3 Temperature_rgb) {
//Apply color corrections to input signal.
//Push luminance without clipping
pixel_out = pixel_push_luminance(pixel_out,LUMINANCE);
//Modify contrast and brightness
if (CONTRAST != 0.0 || BRIGHTNESS != 0.0)
pixel_out.rgb = apply_contrast_brightness(pixel_out.rgb, CONTRAST, BRIGHTNESS);
//Modify color temperature
if (TEMPERATURE != 6500.0) pixel_out.rgb = pixel_out.rgb * Temperature_rgb;
//Colorization for monochrome display on hsv colorspace.
//Select different hues for dark and bright pixels and mix them depending on the brightness
if (COLOR_MONO_COLORIZE > 0.01) {
vec3 pixel_grayscale = vec3(dot(pixel_out.rgb, W));
vec3 pixel_in_hsv = rgb2hsv(pixel_grayscale); //FIXME needed? yes, checked.
float lum = pixel_in_hsv.z * pixel_in_hsv.z; //<-- looks way better!
vec2 bias = mix_step( vec2(0.0, COLOR_MONO_HUE_BIAS), vec2(COLOR_MONO_HUE_BIAS, 0.0), float(COLOR_MONO_HUE_BIAS > 0.0));
bias = abs(bias);
lum=scale_to_range(lum, 0.0-bias.x, 1.0+bias.y);
pixel_in_hsv.y=1.0; //sat
//Mix hues in rgb colorspace:
vec3 pixel_rgb_hue1 = hsv2rgb( vec3(COLOR_MONO_HUE1, 1.0, pixel_in_hsv.z ) );
vec3 pixel_rgb_hue2 = hsv2rgb( vec3(COLOR_MONO_HUE2, 1.0, pixel_in_hsv.z ) );
vec3 pixel_rgb_hue12 = mix(pixel_rgb_hue2, pixel_rgb_hue1, vec3(lum));
//Mix original and colorized with a specified strength
pixel_out = mix(pixel_out, pixel_rgb_hue12, COLOR_MONO_COLORIZE);
//pixel_in_hsv.x = mix(COLOR_MONO_HUE2, COLOR_MONO_HUE1, lum); //hue
//pixel_out = mix(pixel_out, hsv2rgb(pixel_in_hsv), COLOR_MONO_COLORIZE);pk
}
//Modify saturation
if (!(SATURATION == 1.0)) {
vec3 intensity = vec3(dot(pixel_out.rgb, W));
pixel_out.rgb = mix(intensity, pixel_out.rgb, SATURATION);
}
return pixel_out;
}

View file

@ -20,7 +20,7 @@ layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D Source; layout(set = 0, binding = 1) uniform sampler2D Source;
layout(set = 0, binding = 2) uniform sampler2D first_pass; layout(set = 0, binding = 2) uniform sampler2D flick_and_noise_pass;
#include "includes/functions.include.slang" #include "includes/functions.include.slang"
@ -70,7 +70,7 @@ void main() {
vec3 pixel_out = mix(s1, s2, lodmix) * BEZEL_REFL_STRENGTH; vec3 pixel_out = mix(s1, s2, lodmix) * BEZEL_REFL_STRENGTH;
//Next simulate a diffused light //Next simulate a diffused light
vec3 pixel_diffused = textureLod( first_pass, coords, 6.0).rgb; vec3 pixel_diffused = textureLod( flick_and_noise_pass, coords, 6.0).rgb;
pixel_out = mix( pixel_out, pixel_diffused, BEZEL_DIFFUSION_STR); pixel_out = mix( pixel_out, pixel_diffused, BEZEL_DIFFUSION_STR);

View file

@ -27,7 +27,7 @@ layout(location = 1) in vec2 vCoordsAdapted;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D first_pass; layout(set = 0, binding = 1) uniform sampler2D flick_and_noise_pass;
layout(set = 0, binding = 2) uniform sampler2D avglum_pass; layout(set = 0, binding = 2) uniform sampler2D avglum_pass;
#include "includes/functions.include.slang" #include "includes/functions.include.slang"
@ -54,7 +54,7 @@ void main() {
} }
FragColor = texture(first_pass, coords); FragColor = texture(flick_and_noise_pass, coords);
} }

View file

@ -7,9 +7,10 @@
layout(location = 0) in vec4 Position; layout(location = 0) in vec4 Position;
layout(location = 1) in vec2 TexCoord; layout(location = 1) in vec2 TexCoord;
layout(location = 0) out vec2 vTexCoord; layout(location = 0) out vec2 vTexCoord;
layout(location = 1) out vec2 r_offset; layout(location = 1) out vec2 vR_offset;
layout(location = 2) out vec2 g_offset; layout(location = 2) out vec2 vG_offset;
layout(location = 3) out vec2 b_offset; layout(location = 3) out vec2 vB_offset;
layout(location = 4) out float vDo_shadow_mode;
#include "includes/functions.include.slang" #include "includes/functions.include.slang"
@ -17,25 +18,35 @@ void main()
{ {
gl_Position = global.MVP * Position; gl_Position = global.MVP * Position;
vTexCoord = TexCoord ; vTexCoord = TexCoord ;
if (DO_SHIFT_RGB == 1.0) {
r_offset=offsets_from_float(SHIFT_R+210.0,RGB_SHIFT_RANGE); //...to tell fragment shader if dot matrix feature requests shadows.
g_offset=offsets_from_float(SHIFT_G+210.0,RGB_SHIFT_RANGE); vDo_shadow_mode = float(DOT_M_SHADOW_STR + DO_DOT_MATRIX > 1 + eps);
b_offset=offsets_from_float(SHIFT_B+210.0,RGB_SHIFT_RANGE);
//Shadow mode disables deconvergence, they do not coexist in real life.
if (vDo_shadow_mode == 1.0) {
vR_offset = vec2(DOT_M_SHADOW_OFF, abs(DOT_M_SHADOW_OFF));
vG_offset = vR_offset;
vB_offset = vR_offset;
} else if (DO_SHIFT_RGB == 1.0) {
vR_offset=offsets_from_float(SHIFT_R+210.0,RGB_SHIFT_RANGE);
vG_offset=offsets_from_float(SHIFT_G+210.0,RGB_SHIFT_RANGE);
vB_offset=offsets_from_float(SHIFT_B+210.0,RGB_SHIFT_RANGE);
} }
} }
#pragma stage fragment #pragma stage fragment
#include "includes/functions.include.slang"
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 1) in vec2 r_offset; layout(location = 1) in vec2 vR_offset;
layout(location = 2) in vec2 g_offset; layout(location = 2) in vec2 vG_offset;
layout(location = 3) in vec2 b_offset; layout(location = 3) in vec2 vB_offset;
layout(location = 4) in float vDo_shadow_mode;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 3) uniform sampler2D FXAA_pass; layout(set = 0, binding = 3) uniform sampler2D FXAA_pass;
layout(set = 0, binding = 4) uniform sampler2D first_pass; layout(set = 0, binding = 4) uniform sampler2D flick_and_noise_pass;
#define bandwidth_mhz_Y_ntsc 4.2 #define bandwidth_mhz_Y_ntsc 4.2
@ -69,28 +80,37 @@ const mat3 mat3_YUV2RGB = mat3(
vec3 pixel_offset(vec3 pixel_cur,vec2 coord, sampler2D in_texture, vec4 sourcesize2) { vec3 deconvergence_shadow(vec3 pixel_cur,vec2 coord, sampler2D in_texture, vec4 sourcesize2) {
//Emulates deconvergence or shadowing for dot matrix screens like Gameboy.
//Since both effects should not coexist in real life, we use a singe function for both.
//The function stays more or less the same, but rgb offsets calculated in vertex shader
//will be the same for shadow mode. Hopefully shader texture cache will take care of
//multiple sampling for the same tex coords.
vec2 d = -vec2(sourcesize2.z, sourcesize2.w)*0.5; vec2 d = -vec2(sourcesize2.z, sourcesize2.w)*0.5;
vec3 pixel_offset; vec3 pixel_offset;
pixel_offset.r=texture(in_texture,coord + r_offset * d).r;
pixel_offset.g=texture(in_texture,coord + g_offset * d).g; pixel_offset.r=texture(in_texture,coord + vR_offset * d).r;
pixel_offset.b=texture(in_texture,coord + b_offset * d).b; pixel_offset.g=texture(in_texture,coord + vG_offset * d).g;
return mix(pixel_cur,pixel_offset,OFFSET_STRENGTH); pixel_offset.b=texture(in_texture,coord + vB_offset * d).b;
/* why did i make this? commit message : https://github.com/kokoko3k/koko-aio-slang/commit/843d71af40d32c2e2b088a71bf3ad18683812a98
* does not help... vec3 deconvergence_mode = mix(pixel_cur, pixel_offset, OFFSET_STRENGTH);
vec3 color_difformity = vec3(pixel_offset.r-pixel_cur.r, +pixel_offset.g-pixel_cur.g, pixel_offset.b - pixel_cur.b); vec3 shadow_mode = pixel_cur - max( (pixel_cur - pixel_offset), vec3(0.0) ) * DOT_M_SHADOW_STR;
vec3 pixel_offset_to_add = pixel_offset * color_difformity;
return pixel_cur + (pixel_offset_to_add *OFFSET_STRENGTH); return mix_step(deconvergence_mode, shadow_mode, vDo_shadow_mode);
//return pixel_cur + (pixel_offset *OFFSET_STRENGTH*color_difformity);
*/
//Shadow mode:
//return pixel_cur -
// max( (pixel_cur - pixel_offset), vec3(0.0) ) * OFFSET_STRENGTH;
} }
vec3 pixel_offset_wrap (vec2 coord) { vec3 deconvergence_shadow_wrap (vec2 coord) {
if ( DO_FXAA == 1.0) { if ( DO_FXAA == 1.0) {
return pixel_offset(texture(FXAA_pass, vTexCoord).rgb, vTexCoord, FXAA_pass, global.FXAA_passSize); return deconvergence_shadow(texture(FXAA_pass, vTexCoord).rgb, vTexCoord, FXAA_pass, global.FXAA_passSize);
} else { } else {
return pixel_offset(texture(first_pass, vTexCoord).rgb, vTexCoord, first_pass, global.first_passSize); return deconvergence_shadow(texture(flick_and_noise_pass, vTexCoord).rgb, vTexCoord, flick_and_noise_pass, global.flick_and_noise_passSize);
} }
} }
@ -103,7 +123,7 @@ vec3 pixel_bleed_side_NTSC(vec3 pixel_in, vec2 co, float size, float side, sampl
w=w/SAT_BLEED_FALLOFF; w=w/SAT_BLEED_FALLOFF;
//w = w * exp(i*i*(1-SAT_BLEED_FALLOFF)*0.1); //w = w * exp(i*i*(1-SAT_BLEED_FALLOFF)*0.1);
//w=clamp(w,0.0,1.0); //w=clamp(w,0.0,1.0);
vec3 smp_YIQ = texture(first_pass, co - side * vec2(sourcesize2.z*i,0.0)).rgb * mat3_RGB2YIQ; vec3 smp_YIQ = texture(flick_and_noise_pass, co - side * vec2(sourcesize2.z*i,0.0)).rgb * mat3_RGB2YIQ;
blur_YIQ.x = mix(blur_YIQ.x, smp_YIQ.x, w/bandwidth_mhz_Y_ntsc); // Blur Y blur_YIQ.x = mix(blur_YIQ.x, smp_YIQ.x, w/bandwidth_mhz_Y_ntsc); // Blur Y
blur_YIQ.y = mix(blur_YIQ.y, smp_YIQ.y, w/bandwidth_mhz_I ); // Blur I blur_YIQ.y = mix(blur_YIQ.y, smp_YIQ.y, w/bandwidth_mhz_I ); // Blur I
blur_YIQ.z = mix(blur_YIQ.z, smp_YIQ.z, w/bandwidth_mhz_Q ); // BlurQ blur_YIQ.z = mix(blur_YIQ.z, smp_YIQ.z, w/bandwidth_mhz_Q ); // BlurQ
@ -122,7 +142,7 @@ vec3 pixel_bleed_side_PAL(vec3 pixel_in, vec2 co, float size, float side, sample
for ( i=1 ; i <= size ; i++ ){ for ( i=1 ; i <= size ; i++ ){
w=w/SAT_BLEED_FALLOFF; w=w/SAT_BLEED_FALLOFF;
//w=clamp(w,0.0,1.0); //w=clamp(w,0.0,1.0);
vec3 smp_YUV = texture(first_pass, co - side * vec2(sourcesize2.z*i,0.0)).rgb * mat3_RGB2YUV; vec3 smp_YUV = texture(flick_and_noise_pass, co - side * vec2(sourcesize2.z*i,0.0)).rgb * mat3_RGB2YUV;
blur_YUV.x = mix(blur_YUV.x, smp_YUV.x, w/bandwidth_mhz_Y_pal); // Blur Y blur_YUV.x = mix(blur_YUV.x, smp_YUV.x, w/bandwidth_mhz_Y_pal); // Blur Y
blur_YUV.y = mix(blur_YUV.y, smp_YUV.y, w/bandwidth_mhz_U ); // Blur U blur_YUV.y = mix(blur_YUV.y, smp_YUV.y, w/bandwidth_mhz_U ); // Blur U
blur_YUV.z = mix(blur_YUV.z, smp_YUV.z, w/bandwidth_mhz_V ); // Blur V blur_YUV.z = mix(blur_YUV.z, smp_YUV.z, w/bandwidth_mhz_V ); // Blur V
@ -154,21 +174,21 @@ void main() {
vec3 pixel_out; vec3 pixel_out;
//Handle case where both are needed: //Handle case where both are needed:
//First shift the right source, then pass it to bleed function. //First shift the right source, then pass it to bleed function.
if (DO_SHIFT_RGB + DO_SAT_BLEED > 1.0) { if (DO_SHIFT_RGB + DO_SAT_BLEED > 1.0 || DOT_M_SHADOW_STR > 0.0 ) {
pixel_out = pixel_offset_wrap(vTexCoord); pixel_out = deconvergence_shadow_wrap(vTexCoord);
if (DO_SAT_BLEED > 0.0) { if (DO_SAT_BLEED > 0.0) {
if ( DO_FXAA == 1.0) { if ( DO_FXAA == 1.0) {
pixel_out = pixel_bleed(pixel_out, vTexCoord, FXAA_pass, global.FXAA_passSize); pixel_out = pixel_bleed(pixel_out, vTexCoord, FXAA_pass, global.FXAA_passSize);
pixel_alpha_ntsc_artifacts = texture(FXAA_pass, vTexCoord).a; pixel_alpha_ntsc_artifacts = texture(FXAA_pass, vTexCoord).a;
} else { } else {
pixel_out = pixel_bleed(pixel_out, vTexCoord, first_pass, global.first_passSize); pixel_out = pixel_bleed(pixel_out, vTexCoord, flick_and_noise_pass, global.flick_and_noise_passSize);
pixel_alpha_ntsc_artifacts = texture(first_pass, vTexCoord).a; pixel_alpha_ntsc_artifacts = texture(flick_and_noise_pass, vTexCoord).a;
} }
} }
} else } else
//Handle case where only color shifting is requested //Handle case where only color shifting is requested
if (DO_SHIFT_RGB > 0.0) { if (DO_SHIFT_RGB > 0.0 || DOT_M_SHADOW_STR > 0.0) {
pixel_out = pixel_offset_wrap(vTexCoord); pixel_out = deconvergence_shadow_wrap(vTexCoord);
} else } else
if (DO_SAT_BLEED > 0.0) { if (DO_SAT_BLEED > 0.0) {
//Handle case where only chroma bleed is requested //Handle case where only chroma bleed is requested
@ -178,9 +198,9 @@ void main() {
pixel_out = pixel_bleed(pixel_out, vTexCoord, FXAA_pass, global.FXAA_passSize); pixel_out = pixel_bleed(pixel_out, vTexCoord, FXAA_pass, global.FXAA_passSize);
} else { } else {
pixel_out = texture(first_pass, vTexCoord).rgb; pixel_out = texture(flick_and_noise_pass, vTexCoord).rgb;
pixel_alpha_ntsc_artifacts = texture(first_pass, vTexCoord).a; pixel_alpha_ntsc_artifacts = texture(flick_and_noise_pass, vTexCoord).a;
pixel_out = pixel_bleed(pixel_out, vTexCoord, first_pass, global.first_passSize); pixel_out = pixel_bleed(pixel_out, vTexCoord, flick_and_noise_pass, global.flick_and_noise_passSize);
} }
} else } else
//Passthrough //Passthrough
@ -188,8 +208,8 @@ void main() {
pixel_out = texture(FXAA_pass, vTexCoord).rgb; pixel_out = texture(FXAA_pass, vTexCoord).rgb;
pixel_alpha_ntsc_artifacts = texture(FXAA_pass, vTexCoord).a; pixel_alpha_ntsc_artifacts = texture(FXAA_pass, vTexCoord).a;
} else { } else {
pixel_out = texture(first_pass, vTexCoord).rgb; pixel_out = texture(flick_and_noise_pass, vTexCoord).rgb;
pixel_alpha_ntsc_artifacts = texture(first_pass, vTexCoord).a; pixel_alpha_ntsc_artifacts = texture(flick_and_noise_pass, vTexCoord).a;
} }
//pre-gamma if needed by glow. //pre-gamma if needed by glow.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

After

Width:  |  Height:  |  Size: 271 KiB

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,9 +188,9 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.500000" GAMMA_OUT = "0.500000"
SATURATION = "1.050000"
DO_FXAA = "1.000000" DO_FXAA = "1.000000"
SAT_BLEED_PAL = "1.000000" SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.500000" SAT_BLEED_STRENGTH = "0.500000"
@ -212,19 +212,19 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.990000" HALO_POWER = "0.990000"
HALO_W = "3.000000" HALO_W = "3.000000"
HALO_H = "3.000000" HALO_H = "3.000000"
HALO_GAMMA = "1.400000" HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.475000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "200.000000" GEOM_CORNER_SMOOTH = "200.000000"
BEZEL_INNER_ZOOM = "-0.160000" BEZEL_INNER_ZOOM = "-0.160000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,8 +188,8 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.200000" LUMINANCE = "0.200000"
CONTRAST = "0.050000"
BRIGHTNESS = "0.050000" BRIGHTNESS = "0.050000"
CONTRAST = "0.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.560000" GAMMA_OUT = "0.560000"
DO_NTSC_ARTIFACTS = "1.000000" DO_NTSC_ARTIFACTS = "1.000000"
@ -208,25 +208,25 @@ DO_VMASK_AND_DARKLINES = "1.000000"
RGB_MASK_STRENGTH = "1.000000" RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
DARKLINES_STRENGTH = "1.000000" DARKLINES_STRENGTH = "1.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_MAX = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.500000" HALO_POWER = "0.500000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.900000" HALO_VS_SCAN = "0.900000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_MAX = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.550000" BLOOM_MIX = "0.550000"
BLOOM_EYE_ADPT_SRT = "0.800000" BLOOM_EYE_ADPT_SRT = "0.800000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.013000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,8 +188,8 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.200000" LUMINANCE = "0.200000"
CONTRAST = "0.050000"
BRIGHTNESS = "0.050000" BRIGHTNESS = "0.050000"
CONTRAST = "0.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.560000" GAMMA_OUT = "0.560000"
DO_NTSC_ARTIFACTS = "1.000000" DO_NTSC_ARTIFACTS = "1.000000"
@ -212,25 +212,25 @@ DO_VMASK_AND_DARKLINES = "1.000000"
RGB_MASK_STRENGTH = "1.000000" RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
DARKLINES_STRENGTH = "1.000000" DARKLINES_STRENGTH = "1.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_MAX = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.500000" HALO_POWER = "0.500000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.900000" HALO_VS_SCAN = "0.900000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_MAX = "1.000000"
SCANLINE_SM_VOFFSET = "70.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.550000" BLOOM_MIX = "0.550000"
BLOOM_EYE_ADPT_SRT = "0.800000" BLOOM_EYE_ADPT_SRT = "0.800000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.013000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -211,25 +211,25 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_DARK = "0.100000"
SCANLINE_SM_TYPE = "1.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.500000" HALO_POWER = "0.500000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_DARK = "0.100000"
SCANLINE_SM_TYPE = "1.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.550000" BLOOM_MIX = "0.550000"
BLOOM_EYE_ADPT_SRT = "0.800000" BLOOM_EYE_ADPT_SRT = "0.800000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.013000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -207,25 +207,25 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_DARK = "0.100000"
SCANLINE_SM_TYPE = "1.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.500000" HALO_POWER = "0.500000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_DARK = "0.100000"
SCANLINE_SM_TYPE = "1.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.550000" BLOOM_MIX = "0.550000"
BLOOM_EYE_ADPT_SRT = "0.800000" BLOOM_EYE_ADPT_SRT = "0.800000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.013000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -208,25 +208,25 @@ RGB_MASK_STRENGTH = "1.000000"
VMASK_USE_GM = "1.000000" VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.000000" DARKLINES_STRENGTH = "0.000000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_DARK = "0.100000"
SCANLINE_SM_TYPE = "1.000000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.500000" HALO_POWER = "0.500000"
HALO_W = "3.500000" HALO_W = "3.500000"
HALO_H = "3.500000" HALO_H = "3.500000"
HALO_GAMMA = "1.300000" HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000" HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_MIN = "0.200000"
SCANLINE_DARK = "0.100000"
SCANLINE_SM_TYPE = "1.000000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.550000" BLOOM_MIX = "0.550000"
BLOOM_EYE_ADPT_SRT = "0.800000" BLOOM_EYE_ADPT_SRT = "0.800000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.013000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,11 +188,11 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.200000"
CONTRAST = "0.050000"
BRIGHTNESS = "0.050000" BRIGHTNESS = "0.050000"
CONTRAST = "0.050000"
TEMPERATURE = "7500.000000" TEMPERATURE = "7500.000000"
GAMMA_OUT = "0.560000" GAMMA_OUT = "0.560000"
SATURATION = "1.200000"
DO_RF_NOISE = "1.000000" DO_RF_NOISE = "1.000000"
RF_NOISE_STRENGTH = "0.025000" RF_NOISE_STRENGTH = "0.025000"
DO_SAT_BLEED = "1.000000" DO_SAT_BLEED = "1.000000"
@ -217,24 +217,23 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.700000" DARKLINES_STRENGTH = "0.700000"
DARKLINES_PERIOD = "4.000000" DARKLINES_PERIOD = "4.000000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.500000" HALO_POWER = "0.500000"
HALO_W = "3.000000" HALO_W = "3.000000"
HALO_H = "3.000000" HALO_H = "3.000000"
HALO_GAMMA = "1.400000" HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.475000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.010000" BEZEL_INNER_ZOOM = "-0.014000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,9 +188,9 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.500000" GAMMA_OUT = "0.500000"
SATURATION = "1.050000"
DO_FXAA = "1.000000" DO_FXAA = "1.000000"
SAT_BLEED_PAL = "1.000000" SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.500000" SAT_BLEED_STRENGTH = "0.500000"
@ -214,23 +214,23 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "1.000000" DARKLINES_STRENGTH = "1.000000"
DARKLINES_VOFFSET = "0.000000" DARKLINES_VOFFSET = "0.000000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.990000" HALO_POWER = "0.990000"
HALO_W = "3.000000" HALO_W = "3.000000"
HALO_H = "3.000000" HALO_H = "3.000000"
HALO_GAMMA = "1.400000" HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.185000" BEZEL_INNER_ZOOM = "-0.175000"
BEZEL_FRAME_ZOOM = "0.040000" BEZEL_FRAME_ZOOM = "0.040000"
AMBI_FALLOFF = "0.600000" AMBI_FALLOFF = "0.600000"
AMBI_POWER = "1.700000" AMBI_POWER = "1.700000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,9 +188,9 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.500000" GAMMA_OUT = "0.500000"
SATURATION = "1.050000"
DO_FXAA = "1.000000" DO_FXAA = "1.000000"
SAT_BLEED_PAL = "1.000000" SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.500000" SAT_BLEED_STRENGTH = "0.500000"
@ -214,20 +214,20 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "1.000000" DARKLINES_STRENGTH = "1.000000"
DARKLINES_VOFFSET = "0.000000" DARKLINES_VOFFSET = "0.000000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.990000" HALO_POWER = "0.990000"
HALO_W = "3.000000" HALO_W = "3.000000"
HALO_H = "3.000000" HALO_H = "3.000000"
HALO_GAMMA = "1.400000" HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.011000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,9 +188,9 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.500000" GAMMA_OUT = "0.500000"
SATURATION = "1.050000"
DO_FXAA = "1.000000" DO_FXAA = "1.000000"
SAT_BLEED_PAL = "1.000000" SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.500000" SAT_BLEED_STRENGTH = "0.500000"
@ -214,20 +214,20 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "1.000000" DARKLINES_STRENGTH = "1.000000"
DARKLINES_VOFFSET = "0.000000" DARKLINES_VOFFSET = "0.000000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.990000" HALO_POWER = "0.990000"
HALO_W = "3.000000" HALO_W = "3.000000"
HALO_H = "3.000000" HALO_H = "3.000000"
HALO_GAMMA = "1.400000" HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.475000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "200.000000" GEOM_CORNER_SMOOTH = "200.000000"
BEZEL_INNER_ZOOM = "-0.160000" BEZEL_INNER_ZOOM = "-0.160000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,9 +188,9 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.500000" GAMMA_OUT = "0.500000"
SATURATION = "1.050000"
DO_FXAA = "1.000000" DO_FXAA = "1.000000"
SAT_BLEED_PAL = "1.000000" SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.500000" SAT_BLEED_STRENGTH = "0.500000"
@ -214,19 +214,19 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "1.000000" DARKLINES_STRENGTH = "1.000000"
DARKLINES_VOFFSET = "0.000000" DARKLINES_VOFFSET = "0.000000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.990000" HALO_POWER = "0.990000"
HALO_W = "3.000000" HALO_W = "3.000000"
HALO_H = "3.000000" HALO_H = "3.000000"
HALO_GAMMA = "1.400000" HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.475000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "200.000000" GEOM_CORNER_SMOOTH = "200.000000"
BEZEL_INNER_ZOOM = "-0.160000" BEZEL_INNER_ZOOM = "-0.160000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -214,25 +214,23 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.700000" DARKLINES_STRENGTH = "0.700000"
DARKLINES_PERIOD = "4.000000" DARKLINES_PERIOD = "4.000000"
DO_HALO = "1.000000"
HALO_POWER = "0.500000"
HALO_W = "3.000000"
HALO_H = "3.000000"
HALO_GAMMA = "1.400000"
DO_SCANLINES = "1.000000" DO_SCANLINES = "1.000000"
SCANLINE_MAX = "1.000000" SCANLINE_MAX = "1.000000"
SCANLINE_DARK = "1.000000" SCANLINE_DARK = "1.000000"
SCANLINE_FLICKERING = "1.000000" SCANLINE_FLICKERING = "1.000000"
SCANLINE_FLICKERING_POWER = "0.400000" SCANLINE_FLICKERING_POWER = "0.400000"
DO_HALO = "1.000000"
HALO_POWER = "0.500000"
HALO_W = "3.000000"
HALO_H = "3.000000"
HALO_GAMMA = "1.400000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.475000"
GEOM_WARP_Y = "0.500000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.010000" BEZEL_INNER_ZOOM = "-0.175000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.040000"
BEZEL_R = "-0.190000" BEZEL_R = "-0.190000"
BEZEL_G = "-0.190000" BEZEL_G = "-0.190000"
BEZEL_B = "-0.190000" BEZEL_B = "-0.190000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,9 +188,9 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.500000" GAMMA_OUT = "0.500000"
SATURATION = "1.050000"
DO_FXAA = "1.000000" DO_FXAA = "1.000000"
SAT_BLEED_PAL = "1.000000" SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.500000" SAT_BLEED_STRENGTH = "0.500000"
@ -213,23 +213,23 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.800000" DARKLINES_STRENGTH = "0.800000"
DARKLINES_PERIOD = "4.000000" DARKLINES_PERIOD = "4.000000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.990000" HALO_POWER = "0.990000"
HALO_W = "3.000000" HALO_W = "3.000000"
HALO_H = "3.000000" HALO_H = "3.000000"
HALO_GAMMA = "1.400000" HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.185000" BEZEL_INNER_ZOOM = "-0.175000"
BEZEL_FRAME_ZOOM = "0.040000" BEZEL_FRAME_ZOOM = "0.040000"
AMBI_FALLOFF = "0.600000" AMBI_FALLOFF = "0.600000"
AMBI_POWER = "1.700000" AMBI_POWER = "1.700000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,9 +188,9 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.500000" GAMMA_OUT = "0.500000"
SATURATION = "1.050000"
DO_FXAA = "1.000000" DO_FXAA = "1.000000"
SAT_BLEED_PAL = "1.000000" SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.500000" SAT_BLEED_STRENGTH = "0.500000"
@ -213,23 +213,23 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.800000" DARKLINES_STRENGTH = "0.800000"
DARKLINES_PERIOD = "4.000000" DARKLINES_PERIOD = "4.000000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.990000" HALO_POWER = "0.990000"
HALO_W = "3.000000" HALO_W = "3.000000"
HALO_H = "3.000000" HALO_H = "3.000000"
HALO_GAMMA = "1.400000" HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.450000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SMOOTH = "400.000000" GEOM_CORNER_SMOOTH = "400.000000"
DO_BEZEL = "1.000000" DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.011000" BEZEL_INNER_ZOOM = "-0.018000"
BEZEL_FRAME_ZOOM = "0.170000" BEZEL_FRAME_ZOOM = "0.170000"
AMBI_FALLOFF = "0.400000" AMBI_FALLOFF = "0.400000"
AMBI_POWER = "5.000000" AMBI_POWER = "5.000000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,9 +188,9 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.500000" GAMMA_OUT = "0.500000"
SATURATION = "1.050000"
DO_FXAA = "1.000000" DO_FXAA = "1.000000"
SAT_BLEED_PAL = "1.000000" SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.500000" SAT_BLEED_STRENGTH = "0.500000"
@ -213,20 +213,20 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.800000" DARKLINES_STRENGTH = "0.800000"
DARKLINES_PERIOD = "4.000000" DARKLINES_PERIOD = "4.000000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.990000" HALO_POWER = "0.990000"
HALO_W = "3.000000" HALO_W = "3.000000"
HALO_H = "3.000000" HALO_H = "3.000000"
HALO_GAMMA = "1.400000" HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_BLOOM = "1.000000" DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.475000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "200.000000" GEOM_CORNER_SMOOTH = "200.000000"
BEZEL_INNER_ZOOM = "-0.160000" BEZEL_INNER_ZOOM = "-0.160000"

View file

@ -1,20 +1,20 @@
shaders = "17" shaders = "17"
shader0 = "shaders/ntsc_pass.slang" shader0 = "shaders/colortools_and_ntsc_pass.slang"
filter_linear0 = "false" filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat" wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false" mipmap_input0 = "false"
alias0 = "ntsc_pass" alias0 = "colortools_and_ntsc_pass"
float_framebuffer0 = "false" float_framebuffer0 = "false"
srgb_framebuffer0 = "false" srgb_framebuffer0 = "false"
scale_type_x0 = "source" scale_type_x0 = "source"
scale_x0 = "1.000000" scale_x0 = "1.000000"
scale_type_y0 = "source" scale_type_y0 = "source"
scale_y0 = "1.000000" scale_y0 = "1.000000"
shader1 = "shaders/first_pass.slang" shader1 = "shaders/flick_and_noise.slang"
filter_linear1 = "false" filter_linear1 = "false"
wrap_mode1 = "mirrored_repeat" wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "false" mipmap_input1 = "false"
alias1 = "first_pass" alias1 = "flick_and_noise_pass"
float_framebuffer1 = "false" float_framebuffer1 = "false"
srgb_framebuffer1 = "false" srgb_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
@ -188,9 +188,9 @@ scale_type_y16 = "viewport"
scale_y16 = "1.000000" scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000" DO_CCORRECTION = "1.000000"
LUMINANCE = "0.100000" LUMINANCE = "0.100000"
SATURATION = "1.050000"
TEMPERATURE = "7000.000000" TEMPERATURE = "7000.000000"
GAMMA_OUT = "0.500000" GAMMA_OUT = "0.500000"
SATURATION = "1.050000"
DO_FXAA = "1.000000" DO_FXAA = "1.000000"
SAT_BLEED_PAL = "1.000000" SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.500000" SAT_BLEED_STRENGTH = "0.500000"
@ -213,19 +213,19 @@ VMASK_USE_GM = "1.000000"
VMASK_GAP = "1.000000" VMASK_GAP = "1.000000"
DARKLINES_STRENGTH = "0.800000" DARKLINES_STRENGTH = "0.800000"
DARKLINES_PERIOD = "4.000000" DARKLINES_PERIOD = "4.000000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
DO_HALO = "1.000000" DO_HALO = "1.000000"
HALO_POWER = "0.990000" HALO_POWER = "0.990000"
HALO_W = "3.000000" HALO_W = "3.000000"
HALO_H = "3.000000" HALO_H = "3.000000"
HALO_GAMMA = "1.400000" HALO_GAMMA = "1.400000"
SCANLINE_DARK = "0.700000"
SCANLINES_BLEEDING = "1.000000"
SCANLINE_FLICKERING = "0.000000"
SCANLINE_FLICKERING_POWER = "0.170000"
BLOOM_MIX = "0.500000" BLOOM_MIX = "0.500000"
DO_CURVATURE = "1.000000" DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.475000" GEOM_WARP_X = "0.420000"
GEOM_WARP_Y = "0.500000" GEOM_WARP_Y = "0.470000"
GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "200.000000" GEOM_CORNER_SMOOTH = "200.000000"
BEZEL_INNER_ZOOM = "-0.160000" BEZEL_INNER_ZOOM = "-0.160000"