mirror of
https://github.com/italicsjenga/slang-shaders.git
synced 2024-11-26 01:11:32 +11:00
Update koko-aio to 3.5 (#348)
* For pull request of koko-aio 3.5 * removed monitor source
This commit is contained in:
parent
3f62172bcb
commit
3eecf5c78e
|
@ -186,54 +186,54 @@ scale_type_x16 = "viewport"
|
|||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
SATURATION = "1.100000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.400000"
|
||||
DO_FXAA = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.300000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_W = "0.950000"
|
||||
IN_GLOW_H = "0.950000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.425000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.500000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "0.750000"
|
||||
BLOOM_GAMMA_OUT = "1.000000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "2.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_INNER_ZOOM = "-0.010000"
|
||||
BEZEL_FRAME_ZOOM = "0.170000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
DO_DYNZOOM = "0.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
|
|
|
@ -1,21 +1,8 @@
|
|||
**koko-aio-slang parameters documentation**
|
||||
|
||||
|
||||
**Shift RGB components:**
|
||||
Shift R,G,B components separately to mimic chroma
|
||||
dephasing and color aberrations.
|
||||
By varying Red, Green and Blue offsets, the relative component will be
|
||||
shifted column by column, row by row.
|
||||
|
||||
**Saturated color bleeding:**
|
||||
Will cause an horizontal chroma bleed which cheaply mimics the effect of
|
||||
poor composite video signals.
|
||||
It can be used with RGB shifting and image blurring to give the picture
|
||||
an ntsc look without dealing with specific encoding/decoding stuffs.
|
||||
|
||||
**Color corrections:**
|
||||
Modify luminance, saturation, contrast, brightness and color temperature of the
|
||||
"input" signal.
|
||||
signal, at "input" stage.
|
||||
Gamma correction is applied to the final processed picture.
|
||||
|
||||
**FXAA:**
|
||||
|
@ -23,48 +10,38 @@
|
|||
Use it if you don't want to blur the image and you still don't like
|
||||
jagged or too much pixelated images.
|
||||
|
||||
**Scanlines:**
|
||||
Emulate CRT scanlines.
|
||||
**RGB deconvergence:**
|
||||
Shift R,G,B components separately to mimic channel deconvergence.
|
||||
By varying Red, Green and Blue offsets, the relative component will be
|
||||
shifted column by column, row by row.
|
||||
|
||||
Scanlines gap brightness:
|
||||
controls how "little" they will look pronunced.
|
||||
You can even use a negative value to make the scanline more evident,
|
||||
but graphical glitches may occour.
|
||||
Scanlines gap brightness:
|
||||
Controls how much the gap between scanlines is dark
|
||||
Compensate brightness loss:
|
||||
Will make scanlines brighter, where possible, to compensate for the loss of brightness
|
||||
gicen by the dark gap between them.
|
||||
Scanlines bleeding:
|
||||
will cause the scanline itself to light the scanline gap (dark) part.
|
||||
You may use it to keep a good brightness overrall picture level.
|
||||
Interlace flicker:
|
||||
Emulates the flickerin issues present on crt interlaced screens
|
||||
where the brighter lines flickers wien they are near dark ones.
|
||||
You can choose to produce the flickering: never, always or only
|
||||
when the input picture is considered interlaced.
|
||||
The threshold for that is defined in config.inc
|
||||
with the parameter: MIN\_LINES\_INTERLACED.
|
||||
Disable on interlaced screen:
|
||||
You can choose to completely disable scanline emulation when
|
||||
the input picture is considered interlaced.
|
||||
**CVBS: NTSC color artifacts: **
|
||||
Tries to emulate typical NTSC color artifacting without emulating
|
||||
full NTSC coding/decoding pipeline.
|
||||
While it improves the look of NTSC content, don't expect it to be
|
||||
an accurate emulation (yet?)
|
||||
As today, it is enough to emulate rainbowing effects on genesis.
|
||||
|
||||
**Input power/glowing:**
|
||||
**CVBS: Bandwidth limited chroma:**
|
||||
Will cause an horizontal chroma bleed which cheaply mimics the effect of
|
||||
poor composite video signals.
|
||||
It can be used with RGB shifting and image blurring to give the picture
|
||||
an ntsc look without dealing with specific encoding/decoding stuffs.
|
||||
|
||||
**Glowing Input/power:**
|
||||
Emulate the CRT glowing "feature", so that the brighter areas of
|
||||
the image will light their surroundings.
|
||||
|
||||
Input signal glow strength:
|
||||
The input signal gain
|
||||
Sharpness:
|
||||
Sharpness (horizontal, vertical):
|
||||
How much the glow will "spread".
|
||||
When pushed to its maximum value, no blurring will occour.
|
||||
Gamma:
|
||||
Controls how much the signal has to be bright to produce the glow.
|
||||
Post gain:
|
||||
This will cause the glowed image to be added to the input signal.
|
||||
This allows to emulate glow and haloing in a single pass.
|
||||
However the haloing should be applied after the mask emulation.
|
||||
Likely to be removed in a future release.
|
||||
Glow to blur bias:
|
||||
Modulates between glow (0.. brighter colors expands over darker ones)
|
||||
versus blur (..1 all the colors are blurred)
|
||||
|
||||
**RGB Masks and/or Darklines:**
|
||||
Emulates CRT RGB phosphors (RGB Mask),
|
||||
|
@ -75,26 +52,32 @@
|
|||
you may want to scale this filter by a factor.
|
||||
Vmask Strength:
|
||||
How much will the RGB mask be visible.
|
||||
RGB Mask: (LoDPI) Green,Magenta -> BGR:
|
||||
. (LoDPI) Green,Magenta -> BGR:
|
||||
By exploiting common monitors RGB subpixel order, this causes
|
||||
the RGB mask, to be emulated by using just 2 pixels instead of 3.
|
||||
Very useful for 1080p (or lower) displays and to keep more brightness.
|
||||
RGB Mask: Horizontal Gap between triads:
|
||||
In real displays rgb triads are separated by a black space.
|
||||
If you have reddish tint, please double check that your monitor is
|
||||
running at native resolution and the operating system is not scaling
|
||||
the screen.
|
||||
. Horizontal Gap between triads:
|
||||
In real displays, rgb triads are separated by a black space.
|
||||
You can emulate it by turning this feature on.
|
||||
RGB Mask: affect bright colors:
|
||||
. Affect bright colors:
|
||||
Emulating RGB masks will lower the resulting image brightness and you
|
||||
just cant push input signal brightness without "burning" the signal.
|
||||
cant just push input signal brightness without clipping the signal.
|
||||
By using this option, the RGB mask will be less evident on brighter
|
||||
colors. However, since this will make the image to look somehow "dull",
|
||||
it is advised to use the "Halo" feature instead (see later).
|
||||
colors.
|
||||
However, it is advised to use the "Halo" feature instead (see later)
|
||||
ft your system can handle it.
|
||||
Darklines: strength:
|
||||
How much will the horizontal darklines be visible.
|
||||
Darklines: offset by triads:
|
||||
. Triad offset:
|
||||
When drawing "straight" horizontal darklines, you can emulate CRT aperture grille.
|
||||
But if you want slotmasks instead, you need to vertically
|
||||
offset them every RGB triad.
|
||||
Darklines: period (triad height):
|
||||
However, slotmask emulation can be enabled via a superior implementation
|
||||
if you enable scanlines (see below).
|
||||
. Triad height:
|
||||
Basically tells the shader how much a triad has to be high.
|
||||
Darklines: affect bright colors:
|
||||
See "RGB Mask: affect bright colors"
|
||||
|
@ -107,6 +90,55 @@
|
|||
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:
|
||||
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.
|
||||
|
||||
**Scanlines:**
|
||||
Emulate CRT scanlines.
|
||||
|
||||
Scanlines gap brightness:
|
||||
controls how "little" they will look pronunced.
|
||||
You can even use a negative value to make the scanline more evident,
|
||||
but graphical glitches may occour.
|
||||
Scanlines gap brightness:
|
||||
Controls how much the gap between scanlines is dark.
|
||||
Compensate brightness loss:
|
||||
Will make scanlines brighter, where possible, to compensate for the
|
||||
loss of brightness given by the dark gap between them.
|
||||
Scanlines bleeding:
|
||||
Will cause the scanline itself to light the scanline gap (dark) part.
|
||||
You may use it to keep a good picture brightness level.
|
||||
Interlace flicker:
|
||||
Emulates the flickering issues present on crt interlaced screens
|
||||
where the brighter lines flickers when they are near dark ones.
|
||||
You can choose to produce the flickering: never, always or only
|
||||
when the input picture is considered interlaced.
|
||||
The threshold for that is defined in config.inc
|
||||
with the parameter: MIN\_LINES\_INTERLACED.
|
||||
Disable on interlaced screen:
|
||||
You can choose to completely disable scanline emulation when
|
||||
the input picture is considered interlaced.
|
||||
Slotmask type (don't use with darklines!)
|
||||
You may want to draw slotmasks alongside the scanlines to sync their heights
|
||||
and avoid graphical glitches.
|
||||
If you enable this feature, it is highly recommended to disable darklines.
|
||||
Darklines will still used when dealing with interlaced or flickering screens.
|
||||
Type 0 allows you to configure strength and stagger
|
||||
Type 1 produces tinner slotmasks, but with fixed stagger
|
||||
Type 3 os fixed and produces heavier and thinner slotmasks without scanlies at all.
|
||||
Slotmask strength
|
||||
The strenght of the slotmask (available on type 1 and 2 only)
|
||||
. Offset
|
||||
This is the slotmask offset/stagger, (available on type 1 only)
|
||||
Keep it around 79 or all the way to max
|
||||
|
||||
**Bloom:**
|
||||
Acts like Halo, but affects a much wider area and is more configurable.
|
||||
By using this effect and playing with its parameters, you can achieve funny
|
||||
|
@ -161,6 +193,8 @@
|
|||
Allows to shrink or expand the monitor frame to fit the game content.
|
||||
Image Border:
|
||||
Draws a black border around the game content.
|
||||
Reflections zoom:
|
||||
"Zoom" the reflections if they don't match the content.
|
||||
|
||||
**Backgound image:**
|
||||
Draws an image on screen picked from the "textures" shader subdirectory,
|
||||
|
@ -175,11 +209,16 @@
|
|||
monitor frame itself by selecting this option.
|
||||
If you do so, the alpha channel of the background image will be used to
|
||||
let you view the underlying content.
|
||||
Shift(Zoom) Image over X(Y) axis:
|
||||
move or zoom the whole background image.
|
||||
Rotate image mode
|
||||
This could be needed when dealing with vertical games.
|
||||
Use -1 to let the shader try to guess if the rotation is needed.
|
||||
|
||||
**Ambient light leds:**
|
||||
Emulates the presence of led strips under the monitor that lights the
|
||||
surroundings according to the edges of the game content.
|
||||
-**\> It is needed that you set retroarch aspect to "Full" <-**
|
||||
**-> It is needed that you set retroarch aspect to "Full" <-**
|
||||
( Settings, Video, Scaling, Aspect Ratio = Full )
|
||||
|
||||
Slowness:
|
||||
|
@ -199,6 +238,7 @@
|
|||
When using effects that need Retroarch aspect ratio option
|
||||
to be set to "full", you have to provide the source aspect
|
||||
ratio to the shader.
|
||||
Use -6 for MAME cores that pre-rotates the game (TATE mode)
|
||||
|
||||
Aspect Ratio Numerator:
|
||||
Setting non positive value here will switch to a predefined
|
||||
|
@ -209,6 +249,7 @@
|
|||
-3 = 8/7 Snes
|
||||
-4 = 10/7 Megadrive
|
||||
-5 = Uncorrected
|
||||
-6 = 0.75 MAME rotated 1.33 games in TATE mode
|
||||
Aspect Ratio Denominator:
|
||||
As long as Aspect Ratio Numerator is positive, this will
|
||||
be used as the denominator of the fraction.
|
||||
|
|
|
@ -1,295 +0,0 @@
|
|||
# TODO:
|
||||
# Guess more aspect ratios: edit. nope: Guessing is impossible..
|
||||
# Update pipeline graph
|
||||
|
||||
# Investigate the possible use of mipmapping in bloom function too.
|
||||
# Try to move flickering scanlines into main, maybe by faking them with screenlines?
|
||||
|
||||
|
||||
# Performances:
|
||||
# haswell igp: i5-4590 CPU @ 3.30GHz
|
||||
# Output on aspect: full, 1080p, 16:9, 60fps
|
||||
# All measurements made with aspect=full, so as long as ambient light is not used, the whole screen is filled by the shader.
|
||||
# This means that all the measurements, but ambient light itself are likely higher than real use.
|
||||
|
||||
# input: mame, dynamite dux: 26/09/2022 27/10/2022 02/11/2022
|
||||
# GPU% Delta% vs Basal:
|
||||
# no shader: 11 -23.6 11 10 10
|
||||
# basal: 34.6 0.0 31.5 29.5 27.7
|
||||
# FXAA: 37.5 2.9 34.15 32.2
|
||||
# scanlines: 36.5 1.9 32.3 31.5
|
||||
# ...flickering: 36.2 1.6 32.4 32
|
||||
#input glow gamma 3: 40 5.4 36.75 35.2
|
||||
# rgb mask: 35.7 1.1 32.60 33.4 **
|
||||
# slotmask: 36.5 1.9 33.6 32.1
|
||||
# halo gamma 3: 40.0 5.4 36.9 35.5
|
||||
# bloom(q2): 38 3.4 35.8 35 30.5
|
||||
# color corrections: 35 0.4 31.6 29.5
|
||||
# curvature warp: 39.2 4.6 33.5 34.1
|
||||
# vignette+spot: 35.2 0.6 33.2 34
|
||||
# ambient light: 38 3.4 32.1 33.6
|
||||
# Bezel: 37.5 33.7
|
||||
#-----------------------------------------------
|
||||
#Total basal + all the features: 72.2 65.3 65.2 61.2 (bloom q1)
|
||||
|
||||
# Koko-aio shader is meant to be an all-in one crt shader.
|
||||
# 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.
|
||||
# It is not meant to simulate the internal behaviour of CRT displays,
|
||||
# but to give users the parameters to make their monitors to look similar.
|
||||
# Several presets are included.
|
||||
|
||||
# Actually it provides emulation for:
|
||||
# scanlines, screenlines, RGB vertical masks, horizontal slot masks,
|
||||
# glowing, haloing, blooming, gamma and SATURATION correction,pixel_outi
|
||||
# black frame insertions, interlace emulation, antialiasing.
|
||||
|
||||
# External code by:
|
||||
# * CRT - Guest - Dr.Venom (single pass bloom function)
|
||||
# * Nvidia (FXAA)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Bezel texture contains the following infomations:
|
||||
# - The red channel represents the luminance information
|
||||
# - The green channel represents the highlights
|
||||
# - The alpha channel in the inner frame represents the part of the bezel that will be filled by the game content
|
||||
# - The blue channel represents the part of the bezel that will be filled by the game reflection.
|
||||
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
# Does this work?
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_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"
|
||||
|
||||
shaders = 17
|
||||
# For P-uae defaults, doubling just y0 seems the best option.
|
||||
# 90% of games are lowres in vertical size and p-uae defaults
|
||||
# to 720 pixels width, which is enough for this preset to work as intended.
|
||||
# Rest warned, that when a game sets an interlaced resolution, p-uae
|
||||
# will output even 560 h-lines which, doubled, will result in
|
||||
# 1120 h lines. too much even for a 1080p screen.
|
||||
# Auto-Cropping/overscan emulation could be added in a future release.
|
||||
# For other emulators/systems, probably it is best and safe to doulbe x0 too.
|
||||
|
||||
# In the first pass we draw an optional black border around the image for bezel purposes
|
||||
# and scale the image to something better usable by FXAA
|
||||
# Scaling y to 2x is needed by flickering scanlines pass.
|
||||
|
||||
shader0 = shaders/first_pass.slang
|
||||
alias0 = "first_pass"
|
||||
filter_linear0 = false
|
||||
scale_type0 = source
|
||||
scale_x0 = 2.0
|
||||
scale_y0 = 2.0
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
float_framebuffer0 = false
|
||||
|
||||
# Nvidia fxaa pass:
|
||||
# works good for "SD" resolutions
|
||||
shader1 = shaders/fxaa.slang
|
||||
alias1 = "FXAA_pass"
|
||||
filter_linear1 = true
|
||||
scale_type1 = source
|
||||
scale1 = 1.0
|
||||
|
||||
# FXAA don't really need any mipmap, but avglum_pass several passes after it does.
|
||||
# and for the weird way retroarch manages mipmaps, specify that FXAA_pass wants mipmaps
|
||||
# makes first_pass mipmaps available to everyone.
|
||||
# even if theoretically not needed, texture() occurrence in FXAA_pass needed to be switched
|
||||
# to textureLod(..,0.0) or it acts weird, don't ask me why.
|
||||
# yay.
|
||||
|
||||
mipmap_input1 = true
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
float_framebuffer1 = false
|
||||
|
||||
|
||||
shader2 = shaders/shift_and_bleed.slang
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
filter_linear2 = true
|
||||
scale2 = 1.0
|
||||
scale_type2 = source
|
||||
float_framebuffer2 = false
|
||||
mipmap_input2 = false
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
|
||||
|
||||
|
||||
# Blur and glow the image as requested
|
||||
# This pass aims to simulate the signal input power.
|
||||
# Glowing will be used to weighting the scanlines.
|
||||
# In this pass we also generate flickering scanlines by blindly blanking
|
||||
# alternate lines at #frame interval
|
||||
|
||||
shader3 = shaders/in_glow.slang
|
||||
alias3 = "in_glow_pass"
|
||||
filter_linear3 = true
|
||||
scale3 = 1.0
|
||||
scale_type3 = source
|
||||
float_framebuffer3 = true
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
|
||||
|
||||
# This essentially is the same as glowing by a code point of view.
|
||||
# But this pass will be added later on instead of mixed
|
||||
|
||||
shader4 = shaders/halo.slang
|
||||
alias4 = "halo_pass"
|
||||
filter_linear4 = true
|
||||
scale4 = 1.0
|
||||
scale_type4 = source
|
||||
float_framebuffer4 = true
|
||||
mipmap_input4 = false
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
|
||||
# Get the average luminance needed by ambilight here, because:
|
||||
# * mipmap_input only works on "Source" texture
|
||||
# * the following pass does not use the previous one
|
||||
# * the previous pass represents scene changes.
|
||||
|
||||
# The rgb channels of the following pass contains luminance info
|
||||
# Used by the bezel code to light up the bezel corners.
|
||||
# The alpha channel contains the sum/3.0 of rgb channels
|
||||
# used to detect scene changes.
|
||||
|
||||
shader5 = shaders/avglum_pass.slang
|
||||
alias5 = "avglum_pass"
|
||||
filter_linear5 = true
|
||||
scale_type5 = source
|
||||
scale5 = 0.5
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = false
|
||||
|
||||
# The following 2 passes will blur the mirrored part of main pass
|
||||
# to emulate bezel reflections.
|
||||
|
||||
shader6 = shaders/reflection_blur_h.slang
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
filter_linear6 = true
|
||||
scale_type6 = source
|
||||
scale6 = 1.0
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
|
||||
shader7 = shaders/reflection_blur_v.slang
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
filter_linear7 = true
|
||||
scale_type7 = source
|
||||
scale7 = 1.0
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
|
||||
|
||||
# In the subsequent passes we do first a fast bloom by first
|
||||
# sampling the original texture and scale it down to keep
|
||||
# it fast, next we do subsequent blurd of the bloomed
|
||||
# pass.
|
||||
|
||||
shader8 = shaders/bloom_pass_1.slang
|
||||
alias8 = "bloom_pass_1"
|
||||
filter_linear8 = true
|
||||
scale_type8 = source
|
||||
scale8 = 1.0
|
||||
# I NEED TO SET **THIS** TO mirrored_repeat TO HAVE THE PREVIOUS PASS mirrored_repeated (!?)
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
float_framebuffer8 = true
|
||||
|
||||
|
||||
shader9 = shaders/bloom_pass_2.slang
|
||||
alias9 = "bloom_pass_2"
|
||||
filter_linear9 = true
|
||||
scale_type9 = source
|
||||
scale9 = 0.5
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
|
||||
|
||||
shader10 = shaders/bloom_pass_3.slang
|
||||
alias10 = "bloom_pass_3"
|
||||
filter_linear10 = true
|
||||
scale_type10 = source
|
||||
scale10 = 1.0
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
|
||||
|
||||
shader11 = shaders/bloom_pass_4.slang
|
||||
alias11 = "bloom_pass_final"
|
||||
filter_linear11 = true
|
||||
scale_type11 = source
|
||||
scale11 = 1.0
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
|
||||
|
||||
# Back led lights:
|
||||
# Since the next pass will need mipmaps of the original image, and is only possible to get mipmaps
|
||||
from the very previous pass, the next one will just passthrough the original image
|
||||
#
|
||||
|
||||
shader12 = shaders/ambi_push_pass.slang
|
||||
alias12 = "ambi_push_pass"
|
||||
# I NEED TO SET **THIS** TO true TO HAVE THE PREVIOUS PASS linearly filtered
|
||||
filter_linear12 = true
|
||||
scale_type12 = source
|
||||
scale12 = 1.0
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = false
|
||||
float_framebuffer12 = true
|
||||
|
||||
# Gather mipmaps from prevous pass and use them to light virtual leds under the virtual monitor
|
||||
shader13 = shaders/ambi_pre_pass.slang
|
||||
alias13 = "ambi_pre_pass1"
|
||||
filter_linear13 = true
|
||||
scale_type13 = source
|
||||
scale13 = 1.0
|
||||
mipmap_input13 = true
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
float_framebuffer13 = false
|
||||
|
||||
# Temporally smooth led lights.
|
||||
shader14 = shaders/ambi_temporal_pass.slang
|
||||
alias14 = "ambi_temporal_pass"
|
||||
filter_linear14 = true
|
||||
scale_type14 = source
|
||||
float_framebuffer14 = true
|
||||
|
||||
|
||||
# In this pass we gather information about the rotated state of the source
|
||||
# This information can only be taken when a pass scales to viewport
|
||||
# So use a low output resolution to keep things as light as possible.
|
||||
# The feedback of this pass will be queried by previous ones.
|
||||
# I tried to move this into final_pass, but the gpu consumption was higher.
|
||||
|
||||
shader15 = shaders/isrotated.slang
|
||||
alias15 = "isrotated_pass"
|
||||
filter_linear15 = true
|
||||
scale15 = 0.1
|
||||
scale_type15 = viewport
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
|
||||
# In this pass we emulate scanlines, glowing,
|
||||
# RGB vertical mask, slot mask,haloing and color corrections
|
||||
|
||||
# This pass pass will do the composition of the previous passes
|
||||
# with the bloomed image, vignette and spot light, black frame insertions
|
||||
# and Bezel emulation
|
||||
|
||||
shader16 = shaders/final_pass.slang
|
||||
alias16 = "final_pass"
|
||||
filter_linear16 = true
|
||||
scale_type16 = viewport
|
||||
scale16 = 1.0
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
|
|
@ -188,27 +188,29 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
|
|
|
@ -188,27 +188,31 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_TYPE = "1.000000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
@ -216,7 +220,7 @@ BLOOM_POWER = "8.000000"
|
|||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "1.200000"
|
||||
GEOM_WARP_Y = "1.000001"
|
||||
GEOM_WARP_Y = "1.300000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
|
@ -224,8 +228,8 @@ BEZEL_R = "0.020000"
|
|||
BEZEL_G = "0.000000"
|
||||
BEZEL_B = "-0.020000"
|
||||
BEZEL_CON = "1.280000"
|
||||
BEZEL_INNER_ZOOM = "-0.450000"
|
||||
BEZEL_FRAME_ZOOM = "-0.190000"
|
||||
BEZEL_INNER_ZOOM = "-0.440000"
|
||||
BEZEL_FRAME_ZOOM = "-0.140000"
|
||||
BEZEL_IMAGE_BORDER = "1.030000"
|
||||
DO_BG_IMAGE = "1.000000"
|
||||
BG_IMAGE_OVER = "1.000000"
|
||||
|
|
|
@ -188,27 +188,31 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_TYPE = "1.000000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
@ -223,13 +227,14 @@ DO_BEZEL = "1.000000"
|
|||
BEZEL_R = "0.030000"
|
||||
BEZEL_G = "0.000000"
|
||||
BEZEL_B = "-0.030000"
|
||||
BEZEL_INNER_ZOOM = "-0.590000"
|
||||
BEZEL_FRAME_ZOOM = "-0.300000"
|
||||
BEZEL_INNER_ZOOM = "-0.600000"
|
||||
BEZEL_FRAME_ZOOM = "-0.250000"
|
||||
BEZEL_IMAGE_BORDER = "1.040000"
|
||||
DO_BG_IMAGE = "1.000000"
|
||||
BG_IMAGE_OVER = "1.000000"
|
||||
BG_IMAGE_OFFX = "0.001000"
|
||||
BG_IMAGE_OFFY = "0.006000"
|
||||
BG_IMAGE_OFFX = "0.001500"
|
||||
BG_IMAGE_OFFY = "0.001500"
|
||||
BG_IMAGE_ZOOM = "0.998000"
|
||||
DO_AMBILIGHT = "0.000000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
|
|
|
@ -188,15 +188,17 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
|
@ -204,12 +206,13 @@ VMASK_GAP = "1.000000"
|
|||
DARKLINES_STRENGTH = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
@ -221,6 +224,7 @@ GEOM_WARP_Y = "0.850000"
|
|||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_FRAME_ZOOM = "0.040000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
|
|
|
@ -188,27 +188,30 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
@ -220,8 +223,8 @@ GEOM_WARP_Y = "0.500000"
|
|||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_INNER_ZOOM = "-0.010000"
|
||||
BEZEL_FRAME_ZOOM = "0.170000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
|
|
|
@ -188,27 +188,30 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
|
|
@ -188,28 +188,32 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_TYPE = "1.000000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
@ -221,6 +225,7 @@ GEOM_WARP_Y = "0.850000"
|
|||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_FRAME_ZOOM = "0.040000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
DO_BG_IMAGE = "1.000000"
|
||||
AMBI_STEPS = "5.000000"
|
||||
|
|
|
@ -188,28 +188,32 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_TYPE = "1.000000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
@ -221,6 +225,7 @@ GEOM_WARP_Y = "0.850000"
|
|||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_FRAME_ZOOM = "0.040000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
|
|
|
@ -188,27 +188,31 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_TYPE = "1.000000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
@ -220,8 +224,8 @@ GEOM_WARP_Y = "0.500000"
|
|||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_INNER_ZOOM = "-0.010000"
|
||||
BEZEL_FRAME_ZOOM = "0.170000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
|
|
|
@ -188,27 +188,31 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_TYPE = "1.000000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
|
|
@ -188,27 +188,31 @@ scale_type_y16 = "viewport"
|
|||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_TYPE = "1.000000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
|
|
|
@ -1,14 +1,8 @@
|
|||
//Setting the glow/halo sharpness parameter to this
|
||||
//will skip the blurring phase and lowers the gpu use
|
||||
//Set this to the same value as used for the maximum
|
||||
//of IN_GLOW_WH, HALO_W and HALO_H
|
||||
#define GLOW_SHARP_MAX 7
|
||||
|
||||
//Consider content interlaced if lines are more than this
|
||||
#define MIN_LINES_INTERLACED 300
|
||||
#define MIN_LINES_INTERLACED 380
|
||||
|
||||
//Sort of dithering used in vignette, spot, backlight leds
|
||||
#define NOISEPOWER ((params.OutputSize.z)*3)
|
||||
//Sort of dithering used in vignette, spot, backlight leds
|
||||
#define NOISEPOWER ((params.OutputSize.z)*3)
|
||||
|
||||
//Bezel reflection area size in relation to the game frame
|
||||
//Use the lowest possible value for best performance
|
||||
|
@ -29,8 +23,24 @@
|
|||
// try between (1/avglum_divider) and (1/avglum_divider)/3
|
||||
#define AMBI_FAST_STEP 0.125
|
||||
|
||||
//Setting the glow/halo sharpness parameter to this
|
||||
//will skip the blurring phase and lowers the gpu use
|
||||
//Set this to the same value as used for the maximum
|
||||
//of IN_GLOW_W/H, HALO_W/H
|
||||
#define GLOW_SHARP_MAX 7
|
||||
|
||||
//Setting glow to blur bias parameter to this
|
||||
//will skip the glow/blur mix codem and just return
|
||||
//the blurred image
|
||||
//Set this to the same value as used for the maximum
|
||||
//of IN_GLOW_BIAS
|
||||
#define IN_GLOW_BIAS_MAX 2.0
|
||||
|
||||
#define eps 1e-5
|
||||
#define pi 3.141592654
|
||||
#define TAU 6.28318530717958647693
|
||||
#define alpha_mark 0.1
|
||||
|
||||
|
||||
layout(push_constant) uniform Push {
|
||||
vec4 SourceSize;
|
||||
|
@ -45,12 +55,13 @@ layout(push_constant) uniform Push {
|
|||
float VMASK_GAP;
|
||||
float VMASK_USE_GM;
|
||||
float DRKLN_OVERWHITE ;
|
||||
float DO_DARKLINES_VOFFSET ;
|
||||
float DARKLINES_VOFFSET ;
|
||||
float DARKLINES_PERIOD ;
|
||||
float HALO_W ;
|
||||
float HALO_H ;
|
||||
float HALO_POWER ;
|
||||
float HALO_GAMMA ;
|
||||
float HALO_VS_SCAN ;
|
||||
float DO_BLOOM ; //4
|
||||
float BLOOM_QUALITY ; //1
|
||||
|
||||
|
@ -75,31 +86,42 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
float DO_HALO ;
|
||||
float DO_CCORRECTION;
|
||||
float DO_ALT_BLANK;
|
||||
//float IN_GLOW_ADD ;
|
||||
float IN_GLOW_BIAS ;
|
||||
float SCANLINES_BLEEDING ;
|
||||
float IN_GLOW_WH ;
|
||||
float IN_GLOW_POWER ;
|
||||
float IN_GLOW_GAMMA ;
|
||||
float IN_GLOW_W;
|
||||
float IN_GLOW_H;
|
||||
float IN_GLOW_POWER;
|
||||
float IN_GLOW_GAMMA;
|
||||
float BLOOM_MIX;
|
||||
float BLOOM_SIZE ; //1
|
||||
float BLOOM_GAMMA; //1
|
||||
float BLOOM_BYPASS; //1
|
||||
float BLOOM_POWER; //1
|
||||
float BLOOM_SIZE;
|
||||
float BLOOM_GAMMA;
|
||||
float BLOOM_BYPASS;
|
||||
float BLOOM_POWER;
|
||||
float BLOOM_OVER_WHITE;
|
||||
float BLOOM_GAMMA_OUT;
|
||||
float ALT_BLANK_STRENGTH ; //2 FIXME to 1
|
||||
float ALT_BLANK_PERIOD ;
|
||||
float DO_FXAA ; //1
|
||||
float ALT_BLANK_STRENGTH;
|
||||
float ALT_BLANK_PERIOD;
|
||||
float DO_FXAA;
|
||||
float DO_SAT_BLEED;
|
||||
float SAT_BLEED_SIZE_LEFT;
|
||||
float SAT_BLEED_SIZE_RIGHT;
|
||||
float SAT_BLEED_FALLOFF;
|
||||
float SAT_BLEED_STRENGTH;
|
||||
float SAT_BLEED_PAL;
|
||||
float DO_NTSC_ARTIFACTS;
|
||||
float NTSC_FILTER_WIDTH;
|
||||
float NTSC_FILTER_SCF;
|
||||
float NTSC_FILTER_FC;
|
||||
float NTSC_MIX;
|
||||
float NTSC_PHASE_SHIFT;
|
||||
//float NTSC_DOT_CRAWL;
|
||||
float SCANLINE_FLICKERING ; //2
|
||||
float SCANLINE_FLICKERING_POWER;
|
||||
float SCANLINE_DISABLE_ON_INTERLACE;
|
||||
float SCANLINE_COMPENSATION;
|
||||
float SCANLINE_SM_STRENGTH;
|
||||
float SCANLINE_SM_TYPE;
|
||||
float SCANLINE_SM_VOFFSET;
|
||||
float RGB_MASK_STRENGTH;
|
||||
float DARKLINES_STRENGTH;
|
||||
float GAMMA_OUT ; //1
|
||||
|
@ -123,6 +145,7 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
float BEZEL_CON;
|
||||
float BEZEL_INNER_ZOOM;
|
||||
float BEZEL_IMAGE_BORDER;
|
||||
float BEZEL_REFL_ZOOM;
|
||||
float BEZEL_FRAME_ZOOM;
|
||||
|
||||
float DO_SPOT;
|
||||
|
@ -151,6 +174,7 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
float BG_IMAGE_OFFY;
|
||||
float BG_IMAGE_OFFX;
|
||||
float BG_IMAGE_ZOOM;
|
||||
float BG_IMAGE_ROTATION;
|
||||
|
||||
float DO_SHIFT_RGB;
|
||||
float SHIFT_R;
|
||||
|
@ -169,123 +193,87 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#pragma parameter TEMPERATURE " Temperature in (6500=off)" 6500.0 3000 10000.0 50.0
|
||||
#pragma parameter GAMMA_OUT " Gamma out" 0.69 0.1 9.0 0.025
|
||||
|
||||
|
||||
|
||||
// FXAA
|
||||
// Apply an antialiasing filter via FXAA from Nvidia.
|
||||
#pragma parameter DO_FXAA "★ FXAA enable? ==>" 0.0 0.0 1.0 1.0
|
||||
|
||||
//Offset RGB
|
||||
// Allow to shift Red, Green, Blue components along x and y axis
|
||||
#pragma parameter DO_SHIFT_RGB "★ Shift RGB components enable? (bad with FXAA) ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter OFFSET_STRENGTH " Strength" 0.5 0.0 1.0 0.1
|
||||
#pragma parameter SHIFT_R " Red offset" -40.0 -210.0 189.0 1
|
||||
#pragma parameter SHIFT_G " Green offset" 40.0 -210.0 189.0 1
|
||||
#pragma parameter SHIFT_B " Blue offset" 3.0 -210.0 189.0 1
|
||||
// NTSC color artifacting
|
||||
#pragma parameter DO_NTSC_ARTIFACTS "★ CVBS: NTSC color artifacts enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter NTSC_FILTER_WIDTH " Filter width" 17.0 5.0 21.0 4.0
|
||||
#pragma parameter NTSC_FILTER_SCF " Subcarrier Frequency" 5.30 0.0 10.0 0.01
|
||||
#pragma parameter NTSC_FILTER_FC " Frequency cutoff" 2.5 0.1 10.0 0.1
|
||||
#pragma parameter NTSC_PHASE_SHIFT " Phase shift" 0.0 0.0 1.0 1.0
|
||||
//#pragma parameter NTSC_DOT_CRAWL " Dot Crawl" 1.0 0.0 1.0 1.0
|
||||
#pragma parameter NTSC_MIX " Strength" 0.5 0.0 3.0 0.05
|
||||
|
||||
|
||||
// YIQ/YUV bandwidth limited chroma bleeding.
|
||||
#pragma parameter DO_SAT_BLEED "★ Bandwidth limited chroma bleeding enable? ==>" 0.0 0.0 1.0 1.0
|
||||
// YIQ/YUV bandwidth limited chroma bleeding and NTSC color artifacts.
|
||||
#pragma parameter DO_SAT_BLEED "★ CVBS: Bandwidth limited chroma enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter SAT_BLEED_PAL " Use PAL colorspace, not NTSC" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter SAT_BLEED_STRENGTH " Strength" 1.0 0.0 5.0 0.01
|
||||
#pragma parameter SAT_BLEED_SIZE_LEFT " Size Left" 5.0 1.0 40.0 1.0
|
||||
#pragma parameter SAT_BLEED_SIZE_RIGHT " Size Right" 5.0 1.0 40.0 1.0
|
||||
#pragma parameter SAT_BLEED_FALLOFF " Falloff" 1.7 1.0 2.0 0.01
|
||||
|
||||
//Offset RGB
|
||||
#pragma parameter DO_SHIFT_RGB "★ RGB deconvergence enable? (bad with FXAA) ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter OFFSET_STRENGTH " Strength" 0.5 0.0 1.0 0.1
|
||||
#pragma parameter SHIFT_R " Red offset" -40.0 -210.0 189.0 1
|
||||
#pragma parameter SHIFT_G " Green offset" 40.0 -210.0 189.0 1
|
||||
#pragma parameter SHIFT_B " Blue offset" 3.0 -210.0 189.0 1
|
||||
|
||||
|
||||
// Input glowing
|
||||
// Emulates the glowing of the input signal by blurring it with "IN_GLOW_WH" sharpness.
|
||||
// Apply a gamma filter "IN_GLOW_GAMMA" to "light" it, multiplying the result by "IN_GLOW_POWER" and
|
||||
// finally interpolating(*) it with the source image.
|
||||
// "IN_GLOW_ADD" allows to modulate from interpolation(*) to a sum, wihch may (or not) produce better effects.
|
||||
// With "IN_GLOW_ADD=0" input glowing does not alter the RGB mask
|
||||
// or slot mask applied to the image.
|
||||
#pragma parameter DO_IN_GLOW "★ Glowing Input/power enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter IN_GLOW_POWER " Input signal glow strength" 0.45 0.0 5.0 0.05
|
||||
#pragma parameter IN_GLOW_WH " Sharpness" 2.5 0.2 7.0 0.05
|
||||
#pragma parameter IN_GLOW_W " Sharpness, horizontal" 2.5 0.2 7.0 0.05
|
||||
#pragma parameter IN_GLOW_H " Sharpness, vertical" 2.5 0.2 7.0 0.05
|
||||
#pragma parameter IN_GLOW_GAMMA " Gamma, the higher, the less the glow on dark colors" 1.0 1.0 10.0 0.1
|
||||
//#pragma parameter IN_GLOW_ADD " Post gain (0.0 to disable)" 0.0 0.0 1.0 0.05
|
||||
#pragma parameter IN_GLOW_BIAS " Glow to blur bias" 2.0 0.0 2.0 0.05
|
||||
|
||||
|
||||
// RGB Mask
|
||||
// Emulates CRT RGB phosphors.
|
||||
// This is done by multiplying the source image pixels, in turn, by red green or blue.
|
||||
// The strenght of the multiplication, and so of the final effect is affected by "RGB_MASK_STRENGTH" value.
|
||||
// A Value of 0 completely disable the effect.
|
||||
// "VMASK_DARKLINE_SCALE" Scales the gaps, the width the mask, and the height of the rgm bask and darklines (for HiDPI).
|
||||
// "VMASK_GAP" Will draw an horizontal gap between triads, for HiDPI monitors.
|
||||
// "VMASK_USE_GM" exploit the rgb subpixel layout of the real monitor to higher the apparent RGB vmask resolution
|
||||
// "VMASK_OVERWHITE" modulates the strenght of the effect depending on the source pixel brightness,
|
||||
// This is handy if you want to keep a good image contrast/brightness, but keep in mind that other
|
||||
// parameters like haloing and bloom.
|
||||
|
||||
// Aperture grille/slot mask (shadow mask not implemented) are handled via *DARKLINES*
|
||||
// Draw darklines on screen coordinates, by mixing black pixels with the source image
|
||||
// on final viewport coordinates.
|
||||
// "DARKLINES_STRENGTH" expresses the final strenght of the effect.
|
||||
// if "DO_DARKLINES_VOFFSET" is 0, straight horizontal black lines will be painted that emulates an aperture grille.
|
||||
// "DARKLINES_PERIOD" expresses every how many lines draw a black one (or the height ov the RGB triads)
|
||||
// "DO_DARKLINES_VOFFSET" lets you to vertically offset by ""DARKLINES_PERIOD/2" the lines every 3 screen pixels,
|
||||
// allowing, in conjunction with RGB mask, to emulate slot mask
|
||||
// MASK_COMPENSATION will, where possible, compensate for the loss of brightness by smartly pushing the source luminance
|
||||
|
||||
// Mask
|
||||
#pragma parameter DO_VMASK_AND_DARKLINES "★ RGB 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 VMASK_DARKLINE_SCALE " (HiDPI) Vmask and Darklines multiplier" 1.0 1.0 4.0 1.0
|
||||
#pragma parameter RGB_MASK_STRENGTH " Vmask Strength (0.0 to disable)" 0.75 0.0 1.0 0.05
|
||||
#pragma parameter VMASK_USE_GM " RGB Mask: (LoDPI) Green,Magenta -> BGR" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter VMASK_GAP " RGB Mask: Horizontal Gap between triads" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter VMASK_OVERWHITE " RGB Mask: affect bright colors" 1.0 0.0 1.0 0.05
|
||||
#pragma parameter RGB_MASK_STRENGTH " RGB Mask Strength (0.0 to disable)" 0.75 0.0 1.0 0.05
|
||||
#pragma parameter VMASK_USE_GM " . (LoDPI) Green,Magenta -> BGR" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter VMASK_GAP " . Horizontal Gap between triads" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter VMASK_OVERWHITE " . Affect bright colors" 1.0 0.0 1.0 0.05
|
||||
|
||||
#pragma parameter DARKLINES_STRENGTH " Darklines strength (0.0 to disable)" 0.65 0.0 1.0 0.05
|
||||
#pragma parameter DARKLINES_VOFFSET " . Offset" 1.0 0.0 1.0 1.0
|
||||
#pragma parameter DARKLINES_PERIOD " . Height" 4.0 2.0 16.0 2.0
|
||||
#pragma parameter DRKLN_OVERWHITE " . Affect bright colors" 1.0 0.0 1.0 0.05
|
||||
|
||||
#pragma parameter DARKLINES_STRENGTH " Darklines: strength (0.0 to disable)" 0.65 0.0 1.0 0.05
|
||||
#pragma parameter DO_DARKLINES_VOFFSET " Darklines: offset by triads" 1.0 0.0 1.0 1.0
|
||||
#pragma parameter DARKLINES_PERIOD " Darklines: period (triad height)" 4.0 2.0 16.0 2.0
|
||||
#pragma parameter DRKLN_OVERWHITE " Darklines: affect bright colors" 1.0 0.0 1.0 0.05
|
||||
|
||||
|
||||
// Halo
|
||||
// The parameters are the same as input glowing, but this time the effect is applie
|
||||
// after emulating the RGB phosphors the aperture grille or the slot masks and, instead of
|
||||
// multiplying the resulting picture by the source one, it is added.
|
||||
// this means that haloing will produce solid colors,
|
||||
// lessening afromentioned effects on bright colors.
|
||||
#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 " Horizontal sharpness" 1.75 0.2 7.0 0.05
|
||||
#pragma parameter HALO_H " Vertical sharpness" 1.75 0.2 7.0 0.05
|
||||
#pragma parameter HALO_W " Sharpness, horizontal" 1.75 0.2 7.0 0.05
|
||||
#pragma parameter HALO_H " Sharpness, Vertical" 1.75 0.2 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 too" 0.0 0.0 1.0 0.1
|
||||
|
||||
|
||||
// Scanlines
|
||||
// Blank even source lines, the value from 0.0 to 1.0 expresses the darkness of the blanked lines
|
||||
// 1.0 means no blank at all.
|
||||
// SCANLINE_DARK controls the gap brightness
|
||||
// SCANLINE_COMPENSATION will make scanlines brighter, where possible, to compensate for the loss of brightness
|
||||
// SCANLINE_BLEEDING will make the whiter part of the scanline to bright the gap.
|
||||
|
||||
#pragma parameter DO_SCANLINES "★ Scanlines enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter SCANLINE_DARK " Scanlines gap brightness" 0.0 -0.5 1.0 0.05
|
||||
#pragma parameter SCANLINE_COMPENSATION " Compensate for brightness loss" 0.0 0.0 1.0 0.1
|
||||
#pragma parameter SCANLINES_BLEEDING " Scanlines bleeding" 0.0 0.0 3.0 0.05
|
||||
|
||||
// Alternate the drawing of the scanlines between frames. this will produce a flickering typical of
|
||||
// interlaced screens; 0 disable the effect, 1 always enables it, 2 enables it only when
|
||||
// the shader detects an interlaced signal, which actually means that the vertical resoution is "high enough"
|
||||
#pragma parameter SCANLINE_FLICKERING " Interlace Flicker (0=off,1=on,2=if interlaced)" 2.0 0.0 2.0 1.0
|
||||
#pragma parameter SCANLINE_FLICKERING_POWER " Interlace Flicker power" 0.75 0.0 4.0 0.1
|
||||
|
||||
#pragma parameter SCANLINE_DISABLE_ON_INTERLACE " Disable on interlaced screen" 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_STRENGTH " . Slotmask strength (type 1 and 2 only)" 0.0 0.0 1.0 0.05
|
||||
#pragma parameter SCANLINE_SM_VOFFSET " . Offset (type 1 only)" 45.0 0.0 158.0 1.0
|
||||
|
||||
|
||||
|
||||
// Bloom
|
||||
// The image is downsampled, bloomed and mixed back with the original image.
|
||||
// "BLOOM_MIX" is the final mix strength
|
||||
// "BLOOM_SIZE" is the radius of the blurred image
|
||||
// "BLOOM_QUALITY" express a tradeoff between quality and effect speed.
|
||||
// "BLOOM_GAMMA" allows to apply more bloom on the bright colors of the source image
|
||||
// "BLOOM_POWER" is the additional gain applied to the bloom
|
||||
// "BLOOM_BYPASS" will show only the bloomed component
|
||||
// the original image.
|
||||
#pragma parameter DO_BLOOM "★ Bloom enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter BLOOM_MIX " Final mix, (0.0=off)" 0.2 0.0 1.0 0.01
|
||||
#pragma parameter BLOOM_SIZE " Radius" 2.0 0.25 30.0 0.25
|
||||
|
@ -296,6 +284,8 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#pragma parameter BLOOM_OVER_WHITE " Strength on bright areas (0 = aura)" 0.5 0.0 1.0 0.05
|
||||
#pragma parameter BLOOM_BYPASS " Bypass" 0.0 0.0 1.0 1.0
|
||||
|
||||
|
||||
|
||||
//Curvature parameters:
|
||||
#pragma parameter DO_CURVATURE "★ Curvature enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter GEOM_WARP_X " Warp X" 0.3 0.0 6.0 0.05
|
||||
|
@ -303,6 +293,8 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#pragma parameter GEOM_CORNER_SIZE " Corner radius" 0.01 0.01 0.1 0.005
|
||||
#pragma parameter GEOM_CORNER_SMOOTH " Corner sharpness" 350.0 50.0 1000.0 25.0
|
||||
|
||||
|
||||
|
||||
//Bezel related
|
||||
#pragma parameter DO_BEZEL "★ Bezel enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter BEZEL_R " Bezel color: Red" -0.3 -0.5 0.5 0.01
|
||||
|
@ -312,13 +304,18 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#pragma parameter BEZEL_INNER_ZOOM " Image zoom" -0.18 -1.5 0.5 0.01
|
||||
#pragma parameter BEZEL_FRAME_ZOOM " Frame zoom" 0.0 -1.5 0.5 0.01
|
||||
#pragma parameter BEZEL_IMAGE_BORDER " Image border" 1.01 1.0 1.2 0.01
|
||||
#pragma parameter BEZEL_REFL_ZOOM " Reflections zoom" 0.965 0.0 2.0 0.005
|
||||
|
||||
|
||||
//Background Image
|
||||
#pragma parameter DO_BG_IMAGE "★ Backgound image enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter LABEL_WARNING1 " ⚠ RetroArch aspect needs to be set to Full! ⚠" 1.0 1.0 1.0 1.0
|
||||
#pragma parameter BG_IMAGE_OVER " Image over content (alpha channel driven)?" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter BG_IMAGE_OFFX " Shift Image over X axis" 0.0 -1.0 1.0 0.001
|
||||
#pragma parameter BG_IMAGE_OFFY " Shift Image over Y axis" 0.0 -1.0 1.0 0.001
|
||||
#pragma parameter BG_IMAGE_ZOOM " Zoom Image" 1.0 -1.0 3.0 0.001
|
||||
#pragma parameter BG_IMAGE_OFFX " Shift Image over X axis" 0.0 -1.0 1.0 0.0005
|
||||
#pragma parameter BG_IMAGE_OFFY " Shift Image over Y axis" 0.0 -1.0 1.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
|
||||
|
||||
|
||||
|
||||
//Back leds
|
||||
|
@ -331,8 +328,10 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#pragma parameter AMBI_POWER " Led power" 1.5 1.0 7.0 0.05
|
||||
|
||||
|
||||
|
||||
//Aspect Ratio
|
||||
#pragma parameter label_ar "★ Aspect Ratio " 0.0 0.0 1.0 1.0
|
||||
#pragma parameter ASPECT_X " Aspect Ratio Numerator (-x for a preset below)" 0.0 -5.0 256. 1.0
|
||||
#pragma parameter ASPECT_X " Aspect Ratio Numerator (-x for a preset below)" 0.0 -6.0 256. 1.0
|
||||
#pragma parameter ASPECT_Y " Aspect Ratio Denominator" 3.0 0.0 256. 1.0
|
||||
#pragma parameter label_aspect_presets " Presets reference list:" 0.0 0.0 0.0 1.0
|
||||
#pragma parameter label_aspect_preset0 " (0 = MAME 1.33)" 0.0 0.0 0.0 1.0
|
||||
|
@ -341,6 +340,9 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#pragma parameter label_aspect_preset3 " (-3 = Snes 8/7)" 0.0 0.0 0.0 1.0
|
||||
#pragma parameter label_aspect_preset4 " (-4 = Megadrive 10/7)" 0.0 0.0 0.0 1.0
|
||||
#pragma parameter label_aspect_preset5 " (-5 = Uncorrected)" 0.0 0.0 0.0 1.0
|
||||
#pragma parameter label_aspect_preset6 " (-6 = MAME rotated/TATE 0.75)" 0.0 0.0 0.0 1.0
|
||||
|
||||
|
||||
|
||||
//Full screen glowing
|
||||
//Modulate the image zooming depending on the image luminosity.
|
||||
|
@ -349,8 +351,8 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#pragma parameter DYNZOOM_FACTOR " Narrowness" 80.0 30.0 120.0 1.0
|
||||
|
||||
|
||||
|
||||
//Vignette and spot
|
||||
//Emulates the vignette effect and/or a light reflection.
|
||||
#pragma parameter DO_VIGNETTE "★ Vignette enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter V_BYPASS " bypass " 0.0 0.0 1.0 1.0
|
||||
#pragma parameter V_SIZE " size" 1.7 0.0 3.0 0.05
|
||||
|
@ -363,13 +365,15 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#pragma parameter S_POWER " power" 0.1 0.05 2.0 0.05
|
||||
|
||||
|
||||
|
||||
// Alternative blanking.
|
||||
// Emulates the low pixel persistance of CRT monitors and reduces the motion blur,
|
||||
// typical of LCD displays, by blanking even/odd screen lines on even/odd frames.
|
||||
// ALT_BLANK_STRENGTH expresses the strength of the "blank".
|
||||
#pragma parameter DO_ALT_BLANK "★ Alternate line blanking enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter ALT_BLANK_STRENGTH " Alternate black frame insertion strength" 0.5 0.0 1.0 0.1
|
||||
#pragma parameter ALT_BLANK_PERIOD " Dark lines period" 4.0 0.0 20.0 1.0
|
||||
#pragma parameter ALT_BLANK_PERIOD " Blank lines period" 4.0 0.0 20.0 1.0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define DO_FXAA global.DO_FXAA
|
||||
|
@ -380,7 +384,14 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#define SAT_BLEED_FALLOFF global.SAT_BLEED_FALLOFF
|
||||
#define SAT_BLEED_STRENGTH global.SAT_BLEED_STRENGTH
|
||||
#define SAT_BLEED_PAL global.SAT_BLEED_PAL
|
||||
//#define prefer_std_pow params.prefer_std_pow
|
||||
|
||||
#define DO_NTSC_ARTIFACTS global.DO_NTSC_ARTIFACTS
|
||||
#define NTSC_FILTER_WIDTH global.NTSC_FILTER_WIDTH
|
||||
#define NTSC_FILTER_SCF global.NTSC_FILTER_SCF
|
||||
#define NTSC_FILTER_FC global.NTSC_FILTER_FC
|
||||
#define NTSC_MIX global.NTSC_MIX
|
||||
#define NTSC_PHASE_SHIFT global.NTSC_PHASE_SHIFT
|
||||
//#define NTSC_DOT_CRAWL global.NTSC_DOT_CRAWL
|
||||
|
||||
#define DO_SCANLINES global.DO_SCANLINES
|
||||
#define SCANLINE_DARK params.SCANLINE_DARK
|
||||
|
@ -389,11 +400,15 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#define SCANLINE_FLICKERING_POWER global.SCANLINE_FLICKERING_POWER
|
||||
#define SCANLINE_DISABLE_ON_INTERLACE global.SCANLINE_DISABLE_ON_INTERLACE
|
||||
#define SCANLINE_COMPENSATION global.SCANLINE_COMPENSATION
|
||||
#define SCANLINE_SM_TYPE global.SCANLINE_SM_TYPE
|
||||
#define SCANLINE_SM_STRENGTH global.SCANLINE_SM_STRENGTH
|
||||
#define SCANLINE_SM_VOFFSET global.SCANLINE_SM_VOFFSET
|
||||
|
||||
#define DO_IN_GLOW global.DO_IN_GLOW
|
||||
//#define IN_GLOW_ADD global.IN_GLOW_ADD
|
||||
#define IN_GLOW_BIAS global.IN_GLOW_BIAS
|
||||
#define SCANLINES_BLEEDING global.SCANLINES_BLEEDING
|
||||
#define IN_GLOW_WH global.IN_GLOW_WH
|
||||
#define IN_GLOW_W global.IN_GLOW_W
|
||||
#define IN_GLOW_H global.IN_GLOW_H
|
||||
#define IN_GLOW_POWER global.IN_GLOW_POWER
|
||||
#define IN_GLOW_GAMMA global.IN_GLOW_GAMMA
|
||||
|
||||
|
@ -407,7 +422,7 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
|
||||
#define DARKLINES_STRENGTH global.DARKLINES_STRENGTH
|
||||
#define DRKLN_OVERWHITE params.DRKLN_OVERWHITE
|
||||
#define DO_DARKLINES_VOFFSET params.DO_DARKLINES_VOFFSET
|
||||
#define DARKLINES_VOFFSET params.DARKLINES_VOFFSET
|
||||
#define DARKLINES_PERIOD params.DARKLINES_PERIOD
|
||||
|
||||
#define DO_HALO global.DO_HALO
|
||||
|
@ -415,6 +430,7 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#define HALO_H params.HALO_H
|
||||
#define HALO_POWER params.HALO_POWER
|
||||
#define HALO_GAMMA params.HALO_GAMMA
|
||||
#define HALO_VS_SCAN params.HALO_VS_SCAN
|
||||
|
||||
#define DO_BLOOM params.DO_BLOOM
|
||||
#define BLOOM_MIX global.BLOOM_MIX
|
||||
|
@ -455,6 +471,7 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#define BEZEL_INNER_ZOOM global.BEZEL_INNER_ZOOM
|
||||
#define BEZEL_FRAME_ZOOM global.BEZEL_FRAME_ZOOM
|
||||
#define BEZEL_IMAGE_BORDER global.BEZEL_IMAGE_BORDER
|
||||
#define BEZEL_REFL_ZOOM global.BEZEL_REFL_ZOOM
|
||||
|
||||
#define DO_SPOT global.DO_SPOT
|
||||
#define S_BYPASS global.S_BYPASS
|
||||
|
@ -482,6 +499,7 @@ layout(std140, set = 0, binding = 0) uniform UBO {
|
|||
#define BG_IMAGE_OFFY global.BG_IMAGE_OFFY
|
||||
#define BG_IMAGE_OFFX global.BG_IMAGE_OFFX
|
||||
#define BG_IMAGE_ZOOM global.BG_IMAGE_ZOOM
|
||||
#define BG_IMAGE_ROTATION global.BG_IMAGE_ROTATION
|
||||
|
||||
#define DO_SHIFT_RGB global.DO_SHIFT_RGB
|
||||
#define SHIFT_R global.SHIFT_R
|
||||
|
|
|
@ -16,12 +16,14 @@ layout(location = 0) out vec2 vTexCoord;
|
|||
layout(location = 1) out vec2 vOutputCoord;
|
||||
layout(location = 2) out vec2 spot_offset;
|
||||
layout(location = 3) out vec2 vFragCoord;
|
||||
layout(location = 4) out float vIsRotated;
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = get_scaled_coords(TexCoord,global.FinalViewportSize, is_rotated())+vec2(0.00001);
|
||||
vIsRotated = float(is_rotated());
|
||||
vTexCoord = get_scaled_coords(TexCoord,global.FinalViewportSize, bool(vIsRotated) ) + vec2(0.00001);
|
||||
vOutputCoord = TexCoord;
|
||||
|
||||
spot_offset = offsets_from_float(S_POSITION+420.0,40);
|
||||
|
@ -37,6 +39,7 @@ layout(location = 0) in vec2 vTexCoord;
|
|||
layout(location = 1) in vec2 vOutputCoord;
|
||||
layout(location = 2) in vec2 spot_offset;
|
||||
layout(location = 3) in vec2 vFragCoord;
|
||||
layout(location = 4) in float vIsRotated;
|
||||
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
|
||||
|
@ -57,8 +60,9 @@ layout(set = 0, binding = 10) uniform sampler2D shift_and_bleed_pass;
|
|||
layout(set = 0, binding = 13) uniform sampler2D halo_pass;
|
||||
layout(set = 0, binding = 14) uniform sampler2D avglum_passFeedback;
|
||||
|
||||
//Ex main_pass defines:
|
||||
#define half_pi 1.5707963267949
|
||||
|
||||
#define HALF_PI 1.5707963267949
|
||||
#define QUARTER_PI 0.785398163397448
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
|
@ -72,16 +76,16 @@ vec3 pixel_vmask(vec3 source, vec3 white_reference, float over_white) {
|
|||
vec3 m3 = vec3( ooo , ooo , 1.0 ); //col 3
|
||||
vec3 gap = vec3( ooo );
|
||||
|
||||
int col = int( vOutputCoord.x * params.OutputSize.x );
|
||||
vec3 pixel_out;
|
||||
vec3 vmasked;
|
||||
vec4 vec_mod=(vec4(3,1,2,3) + vec4(VMASK_GAP,0.0,0.0,0.0))* VMASK_DARKLINE_SCALE ;
|
||||
|
||||
if (mod(col, vec_mod.x) < vec_mod.y)
|
||||
float fcol = vOutputCoord.x * params.OutputSize.x;
|
||||
if (mod(fcol, vec_mod.x) < vec_mod.y)
|
||||
vmasked = m1 * source;
|
||||
else if (mod(col, vec_mod.x) < vec_mod.z)
|
||||
else if (mod(fcol, vec_mod.x) < vec_mod.z)
|
||||
vmasked = m2 * source;
|
||||
else if (mod(col, vec_mod.x) < vec_mod.w)
|
||||
else if (mod(fcol, vec_mod.x) < vec_mod.w)
|
||||
vmasked = m3 * source;
|
||||
else vmasked = gap * source;
|
||||
|
||||
|
@ -100,20 +104,19 @@ vec3 pixel_vmask(vec3 source, vec3 white_reference, float over_white) {
|
|||
vec3 pixel_vmask_gm(vec3 source, vec3 white_reference, float over_white) {
|
||||
// Simple RGB mask emulation with or without horizontal gap
|
||||
float ooo = 1.0 - RGB_MASK_STRENGTH;
|
||||
|
||||
// RGB mask: R G B
|
||||
vec3 m1 = vec3( ooo , 1.0 , ooo ); //col 1
|
||||
vec3 m2 = vec3( 1.0 , ooo , 1.0 ); //col 2
|
||||
vec3 gap = vec3( ooo );
|
||||
|
||||
int col = int( vOutputCoord.x * params.OutputSize.x );
|
||||
float fcol = vOutputCoord.s * params.OutputSize.x;
|
||||
vec3 pixel_out;
|
||||
vec3 vmasked;
|
||||
vec3 vec_mod=(vec3(2,1,2) + vec3(VMASK_GAP,0.0,0.0))* VMASK_DARKLINE_SCALE ;
|
||||
|
||||
if (mod(col, vec_mod.x) < vec_mod.y)
|
||||
if (mod(fcol, vec_mod.x) < vec_mod.y)
|
||||
vmasked = m1 * source;
|
||||
else if (mod(col, vec_mod.x) < vec_mod.z)
|
||||
else if (mod(fcol, vec_mod.x) < vec_mod.z)
|
||||
vmasked = m2 * source;
|
||||
else
|
||||
vmasked = gap * source;
|
||||
|
@ -129,9 +132,20 @@ vec3 pixel_vmask_gm(vec3 source, vec3 white_reference, float over_white) {
|
|||
return pixel_out;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*bool drawit( float period, float off, vec2 coords){
|
||||
coords = vTexCoord;
|
||||
float first_pass_size_y = global.first_passSize.y * period;
|
||||
float current_line_int = floor(coords.y * first_pass_size_y) + off ;
|
||||
float screenline_height = first_pass_size_y/params.OutputSize.y;//; params.OutputSize.y/first_pass_size_y;
|
||||
return (coords.y * first_pass_size_y > current_line_int) &&
|
||||
(coords.y * first_pass_size_y < current_line_int+screenline_height) ;
|
||||
}*/
|
||||
|
||||
vec3 pixel_darklines(vec3 source,float darkline_every, float darkline_trans,
|
||||
float do_offset, vec3 white_reference,float over_white) {
|
||||
/* "darklines" are vertical gaps that can be used to emulate aperturegrille
|
||||
float do_offset, vec3 white_reference,float over_white, vec2 coords) {
|
||||
/* "darklines" are vertical gaps that can be used to emulate aperturegrille
|
||||
* or slotmasks
|
||||
*/
|
||||
|
||||
|
@ -148,11 +162,19 @@ vec3 pixel_darklines(vec3 source,float darkline_every, float darkline_trans,
|
|||
}
|
||||
|
||||
//Slotmask (darklines are drawn with offset)
|
||||
if (do_offset == 1.0) {
|
||||
if (do_offset > 0.0) {
|
||||
bool odd_line_meno_densa = mod(vFragCoord.y, darkline_every) > VMASK_DARKLINE_SCALE ;
|
||||
bool odd_line_piu_densa = !(mod(vFragCoord.y, darkline_every/2) < VMASK_DARKLINE_SCALE && odd_line_meno_densa);
|
||||
bool odd_column = mod(vFragCoord.x + Darkline_part_w , Darkline_part_w_x2) < Darkline_part_w;
|
||||
bool draw_mask = odd_line_piu_densa && !odd_column || odd_column && odd_line_meno_densa;
|
||||
|
||||
/*
|
||||
//quante scanline è alta la darkline
|
||||
float darkline_height = 1/2.0;
|
||||
draw_mask = drawit(darkline_height,0.0, coords) && odd_column || drawit(darkline_height,0.5, coords) && !odd_column;
|
||||
return source * float(!draw_mask);
|
||||
*/
|
||||
|
||||
return source * clamp(float(draw_mask),darkline_trans,1.0);
|
||||
}
|
||||
|
||||
|
@ -162,7 +184,9 @@ vec3 pixel_darklines(vec3 source,float darkline_every, float darkline_trans,
|
|||
return source * ( float(draw_color) + float(draw_dark) * darkline_trans );
|
||||
}
|
||||
|
||||
float scanline_shape(vec2 coords, bool do_flicker) {
|
||||
|
||||
|
||||
float scanline_shape(vec2 coords, bool do_flicker, bool is_interlaced, bool do_slotmask) {
|
||||
/* Produces a B/W scanline shape to be multiplicated by the source
|
||||
* pixel later on to emulate scanline effect.
|
||||
* scanlines can be drawn on odd and even fields alternating on odd and
|
||||
|
@ -171,20 +195,84 @@ float scanline_shape(vec2 coords, bool do_flicker) {
|
|||
|
||||
bool alternate = false;
|
||||
float period = 1.0;
|
||||
|
||||
if (do_flicker) {
|
||||
if (params.FrameCount % 2 == 0.0) alternate = true;
|
||||
if (params.OriginalSize.y > MIN_LINES_INTERLACED ) period = 0.5;
|
||||
}
|
||||
|
||||
float angle = coords.y * pi * params.OriginalSize.y * period;
|
||||
float angle_base = coords.y * pi * params.OriginalSize.y * period;
|
||||
|
||||
float lines;
|
||||
float lines = 1.0;
|
||||
if (!( is_interlaced && SCANLINE_DISABLE_ON_INTERLACE == 1.0 )) {
|
||||
if (alternate)
|
||||
lines = -sin(angle+half_pi); //lines = abs(cos(angle));
|
||||
lines = -sin(angle_base + HALF_PI); //lines = abs(cos(angle))
|
||||
else
|
||||
lines = sin(angle);
|
||||
lines = sin(angle_base);
|
||||
lines = (lines*lines);
|
||||
}
|
||||
|
||||
|
||||
//Draw the slotmask right here if the height is the same as the scanline.
|
||||
if (do_slotmask) {
|
||||
if (do_flicker) {
|
||||
//Fallback to old darklines code to avoid glitches/artifacts.
|
||||
lines = lines * pixel_darklines(vec3(1.0),DARKLINES_PERIOD,1-SCANLINE_SM_STRENGTH,1.0,vec3(0.0),1.0, coords).r;
|
||||
|
||||
} else {
|
||||
float Darkline_part_w = (3.0 - VMASK_USE_GM + VMASK_GAP) * VMASK_DARKLINE_SCALE;
|
||||
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;
|
||||
|
||||
|
||||
if (SCANLINE_SM_TYPE == 1.0) {
|
||||
// Slotmask is out oh phase every "odd" triple and mixed with
|
||||
// the straight scanline.
|
||||
// slotmask strength and stagger are configurable.
|
||||
// Acceptable values are with stagger around 79 (pi/4)
|
||||
if (odd_column) {
|
||||
float phase = pi + SCANLINE_SM_VOFFSET*0.01;
|
||||
float angle_slotmask = angle_base + phase;
|
||||
float slotmask = sin(angle_slotmask);
|
||||
slotmask = (slotmask*slotmask);
|
||||
lines = mix(lines, slotmask, SCANLINE_SM_STRENGTH);
|
||||
}
|
||||
}
|
||||
|
||||
else if (SCANLINE_SM_TYPE == 2.0) {
|
||||
float phase;
|
||||
//Slotmask is always out of phase by QUARTER_PI
|
||||
//Every "odd triple" column, it is also out of phase of HALF_PI
|
||||
//Slotmask is multiplied by original scanline and thinner.
|
||||
//Only strength parameter is taken into account.
|
||||
if (odd_column)
|
||||
phase = period * pi + QUARTER_PI;
|
||||
else
|
||||
phase = period * HALF_PI + QUARTER_PI;
|
||||
|
||||
float angle_slotmask = angle_base + phase;
|
||||
float slotmask = sin(angle_slotmask);
|
||||
slotmask = slotmask*slotmask; slotmask = slotmask*slotmask; // eleva alla 4 per renderla sottile. valori maggiori producono moiree.
|
||||
slotmask = mix(1.0, slotmask, SCANLINE_SM_STRENGTH); // riduci la forza della slotmask
|
||||
lines = lines * slotmask;
|
||||
}
|
||||
|
||||
else if (SCANLINE_SM_TYPE == 3.0) {
|
||||
// Thinner slotmask screen, no scanlines.
|
||||
// No parameter taken into account.
|
||||
lines = lines * lines;
|
||||
if (odd_column) {
|
||||
float phase = pi + HALF_PI;
|
||||
float angle_slotmask = angle_base + phase;
|
||||
float slotmask = sin(angle_slotmask);
|
||||
slotmask = (slotmask*slotmask); slotmask = (slotmask*slotmask);
|
||||
lines = slotmask;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (SCANLINE_DARK >= 0.0) {
|
||||
lines = lines * (1.0 - SCANLINE_DARK) + SCANLINE_DARK;
|
||||
|
@ -192,7 +280,6 @@ float scanline_shape(vec2 coords, bool do_flicker) {
|
|||
float deepness = -SCANLINE_DARK;
|
||||
lines = lines * ((1-SCANLINE_DARK) ) + SCANLINE_DARK ;
|
||||
}
|
||||
|
||||
return lines;
|
||||
}
|
||||
|
||||
|
@ -240,34 +327,36 @@ vec4 pixel_main_pass(vec2 coords, bool bBorder_needed) {
|
|||
pixel_out = pixel_push_luminance(pixel_out, DARKLINES_STRENGTH * (1.0/DARKLINES_PERIOD) * MASK_COMPENSATION);
|
||||
|
||||
//Screen lines (slotmask aperture grille)
|
||||
if (DARKLINES_STRENGTH > 0.0 ) {
|
||||
if ( DARKLINES_STRENGTH > 0.0 ) {
|
||||
float MYDARKLINES_TRANSPARENCY = 1.0 - DARKLINES_STRENGTH;
|
||||
pixel_out = pixel_darklines(pixel_out,DARKLINES_PERIOD,MYDARKLINES_TRANSPARENCY,DO_DARKLINES_VOFFSET,pixel_in_clamped,DRKLN_OVERWHITE);
|
||||
pixel_out = pixel_darklines(pixel_out,DARKLINES_PERIOD,MYDARKLINES_TRANSPARENCY,DARKLINES_VOFFSET,pixel_in_clamped,DRKLN_OVERWHITE, coords);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
float lum = clamp(max(max(pixel_out.r,pixel_out.g),pixel_out.b), 0.0,1.0);
|
||||
|
||||
//Halo
|
||||
vec3 pixel_haloed;
|
||||
if (DO_HALO == 1.0 ) {
|
||||
pixel_haloed = texture(halo_pass,coords).rgb;
|
||||
pixel_out += pixel_haloed;
|
||||
pixel_out += pixel_haloed * (1 - HALO_VS_SCAN);
|
||||
//pixel_out += (pixel_haloed * (lum));
|
||||
}
|
||||
|
||||
/* Non flickering scanlines, Don't do them if
|
||||
* - User doesn't want scanlines
|
||||
* - The screen is interlaced and the user doesn't want scanlines on it.
|
||||
*/
|
||||
if ( DO_SCANLINES == 1.0 &&
|
||||
!( isinterlaced && SCANLINE_DISABLE_ON_INTERLACE == 1.0 )
|
||||
) {
|
||||
if ( DO_SCANLINES == 1.0 ) {
|
||||
/* pixel_bleed is the color that will bleed over scanline gap.
|
||||
* It is selected by the first available one depending on the shader
|
||||
* features enabled by the user */
|
||||
vec3 pixel_bleed;
|
||||
if (DO_HALO == 1.0)
|
||||
/*if (DO_HALO == 1.0)
|
||||
pixel_bleed = pixel_haloed;
|
||||
else if (DO_IN_GLOW == 1.0)
|
||||
else */if (DO_IN_GLOW == 1.0)
|
||||
pixel_bleed = pixel_glowed;
|
||||
else
|
||||
pixel_bleed = pixel_in;
|
||||
|
@ -278,11 +367,32 @@ vec4 pixel_main_pass(vec2 coords, bool bBorder_needed) {
|
|||
pixel_out = pow(pixel_out,vec3(mypow));
|
||||
}
|
||||
|
||||
float scanline_shape = scanline_shape(coords, flickering_scanlines);
|
||||
//The following should be theoretically more correct, but it produces moiree:
|
||||
/* vec3 vscanline_shape = scanline_shape(coords, flickering_scanlines, isinterlaced, SCANLINE_SM_TYPE > 0.0 ) +
|
||||
(pixel_bleed * SCANLINES_BLEEDING);
|
||||
vscanline_shape = min(vscanline_shape,1.0);
|
||||
pixel_out = vscanline_shape * pixel_out;
|
||||
*/
|
||||
|
||||
//Obtain the scanlines screen by multiplying the scanline shape by the pixel color.
|
||||
vec3 pixel_scanlined = pixel_out * scanline_shape;
|
||||
//Next, emulate the bleeding of the color over the dark part of the scanlined screen.
|
||||
pixel_out = pixel_scanlined + (pixel_out * pixel_bleed * SCANLINES_BLEEDING * (1-scanline_shape));
|
||||
//and emulate the bleeding of the color over the dark part of the scanlined screen.
|
||||
//float scanline_shape = scanline_shape(coords, flickering_scanlines, isinterlaced, SCANLINE_SM_TYPE > 0.0 );
|
||||
float scanline_shape = scanline_shape(coords, flickering_scanlines, isinterlaced, SCANLINE_SM_TYPE > 0.0 );
|
||||
|
||||
//Modify scanline weight?
|
||||
//float l = max(max(pixel_bleed.r, pixel_bleed.g), pixel_bleed.b);
|
||||
//scanline_shape = min(pow(scanline_shape, 1/l), 1.0);
|
||||
|
||||
pixel_out = pixel_out * ( scanline_shape + ( pixel_bleed * SCANLINES_BLEEDING * ( 1 - scanline_shape ) ));
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (DO_HALO == 1.0 ) {
|
||||
pixel_out += pixel_haloed * HALO_VS_SCAN;
|
||||
//pixel_out = pixel_out + (pixel_haloed * (1-lum));
|
||||
}
|
||||
|
||||
// Apply color correction (in this pass it is just the final output gamma)
|
||||
|
@ -295,20 +405,41 @@ vec4 pixel_main_pass(vec2 coords, bool bBorder_needed) {
|
|||
float global_noise;
|
||||
|
||||
|
||||
|
||||
vec4 pixel_background_image(bool over){
|
||||
//return the aspect corrected background image:
|
||||
vec2 bg_image_offset=vec2(BG_IMAGE_OFFX,BG_IMAGE_OFFY);
|
||||
if (over) {
|
||||
vec2 tex_size = textureSize(bg_over, 0); // * BG_ZOOM;
|
||||
float bg_over_lod = log2(tex_size.y / global.FinalViewportSize.y);
|
||||
vec2 back_coords = get_scaled_coords_aspect(vOutputCoord+bg_image_offset,global.FinalViewportSize, tex_size.x/tex_size.y, is_rotated());
|
||||
|
||||
if (BG_IMAGE_ROTATION > 0.0 || ( BG_IMAGE_ROTATION < 0.0 && bool(vIsRotated) ) ) tex_size.xy = tex_size.yx;
|
||||
|
||||
vec2 back_coords = get_scaled_coords_aspect(vOutputCoord+bg_image_offset,global.FinalViewportSize, tex_size.x/tex_size.y, bool(vIsRotated));
|
||||
|
||||
if (BG_IMAGE_ROTATION < 0.0 && bool(vIsRotated) ) {
|
||||
//handle automatic rotation of bg image for rotated games
|
||||
back_coords.xy = vec2(back_coords.y, back_coords.x);
|
||||
back_coords.y = 1 - back_coords.y;
|
||||
} else if (BG_IMAGE_ROTATION > 0.0) {
|
||||
//rotate as user prefs
|
||||
back_coords.xy = vec2(back_coords.y, back_coords.x);
|
||||
if (BG_IMAGE_ROTATION == 1.0) back_coords.y = 1 - back_coords.y;
|
||||
if (BG_IMAGE_ROTATION == 2.0) back_coords.x = 1 - back_coords.x;
|
||||
}
|
||||
back_coords=zoom(back_coords, BG_IMAGE_ZOOM);
|
||||
return textureLod(bg_over,back_coords,bg_over_lod);
|
||||
}
|
||||
//under
|
||||
vec2 tex_size = textureSize(bg_under, 0); // * BG_ZOOM;
|
||||
if (BG_IMAGE_ROTATION > 0.0) tex_size.xy = tex_size.yx;
|
||||
float bg_under_lod = log2(tex_size.y / global.FinalViewportSize.y);
|
||||
vec2 back_coords = get_scaled_coords_aspect(vOutputCoord+bg_image_offset,global.FinalViewportSize, tex_size.x/tex_size.y, is_rotated());
|
||||
vec2 back_coords = get_scaled_coords_aspect(vOutputCoord+bg_image_offset,global.FinalViewportSize, tex_size.x/tex_size.y, bool(vIsRotated));
|
||||
if (BG_IMAGE_ROTATION > 0.0) {
|
||||
back_coords.xy = vec2(back_coords.y, back_coords.x);
|
||||
if (BG_IMAGE_ROTATION == 1.0) back_coords.y = 1 - back_coords.y;
|
||||
if (BG_IMAGE_ROTATION == 2.0) back_coords.x = 1 - back_coords.x;
|
||||
}
|
||||
back_coords=zoom(back_coords, BG_IMAGE_ZOOM);
|
||||
return textureLod(bg_under,back_coords,bg_under_lod);
|
||||
}
|
||||
|
|
|
@ -1,15 +1,41 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#define NTSC_FILTER_WIDTH_MAX 25
|
||||
#define NTSC_FILTER_MIDDLE NTSC_FILTER_WIDTH/2
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 4) out vec3 temperature_rgb;
|
||||
layout(location = 1) out vec3 temperature_rgb;
|
||||
layout(location = 2) out float vNTSC_FILTER_FC;
|
||||
layout(location = 3) out float vNTSC_FILTER_SCF;
|
||||
layout(location = 4) out float vNTSC_weights[NTSC_FILTER_WIDTH_MAX];
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
|
||||
/* hann() sinc() functions by xot:
|
||||
* copyright (c) 2017-2018, John Leffingwell
|
||||
* license CC BY-SA Attribution-ShareAlike
|
||||
* ntscdec() function, same license and attribution,
|
||||
* slightly modified by me.
|
||||
* https://www.shadertoy.com/view/Mdffz7
|
||||
*/
|
||||
|
||||
|
||||
// Hann windowing function
|
||||
float hann(float n, float N) {
|
||||
return 0.5 * (1.0 - cos((TAU*n)/(N-1.0)));
|
||||
}
|
||||
|
||||
// Sinc function
|
||||
float sinc(float x) {
|
||||
if (x == 0.0) return 1.0;
|
||||
return sin(pi*x) / (pi*x);
|
||||
}
|
||||
|
||||
vec3 kelvin2rgb(float k) {
|
||||
//Convert kelvin temperature to rgb factors
|
||||
k = clamp(k,1000,40000);
|
||||
|
@ -40,17 +66,105 @@ void main() {
|
|||
vTexCoord = TexCoord;
|
||||
if (TEMPERATURE != 6500)
|
||||
temperature_rgb = kelvin2rgb(TEMPERATURE);
|
||||
|
||||
if (DO_NTSC_ARTIFACTS > 0.0) {
|
||||
vNTSC_FILTER_FC = NTSC_FILTER_FC * 0.1;
|
||||
vNTSC_FILTER_SCF = NTSC_FILTER_SCF * 0.1;
|
||||
float sum = 0.0;
|
||||
int N = int(NTSC_FILTER_WIDTH);
|
||||
// Compute sampling weights
|
||||
for (int n = 0; n < N; n++) {
|
||||
vNTSC_weights[n] = hann(float(n), float(N)) * sinc(vNTSC_FILTER_FC * float(n-NTSC_FILTER_MIDDLE));
|
||||
sum += vNTSC_weights[n];
|
||||
}
|
||||
// Normalize sampling weights
|
||||
for (int n = 0; n < N; n++) {
|
||||
vNTSC_weights[n] /= sum;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 4) in vec3 temperature_rgb;
|
||||
layout(location = 1) in vec3 temperature_rgb;
|
||||
layout(location = 2) in float vNTSC_FILTER_FC;
|
||||
layout(location = 3) in float vNTSC_FILTER_SCF;
|
||||
layout(location = 4) in float vNTSC_weights[NTSC_FILTER_WIDTH_MAX];
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
|
||||
|
||||
// Colorspace conversion matrix for YIQ-to-RGB
|
||||
const mat3 YIQ2RGB = mat3(1.000, 1.000, 1.000,
|
||||
0.956,-0.272,-1.106,
|
||||
0.621,-0.647, 1.703);
|
||||
|
||||
const mat3 RGB2YIQ = mat3(
|
||||
0.2989, 0.5959, 0.2115,
|
||||
0.5870, -0.2744, -0.5229,
|
||||
0.1140, -0.3216, 0.3114);
|
||||
|
||||
|
||||
// Hann windowing function
|
||||
float hann(float n, float N) {
|
||||
return 0.5 * (1.0 - cos((TAU*n)/(N-1.0)));
|
||||
}
|
||||
|
||||
// Sinc function
|
||||
float sinc(float x) {
|
||||
if (x == 0.0) return 1.0;
|
||||
return sin(pi*x) / (pi*x);
|
||||
}
|
||||
|
||||
#define pi10 pi*10
|
||||
|
||||
|
||||
vec3 ntscdec(vec2 uv ){
|
||||
vec2 size = params.SourceSize.xy;
|
||||
// Sample composite signal and decode to YIQ
|
||||
vec3 YIQ_processed = vec3(0.0);
|
||||
int N = int(NTSC_FILTER_WIDTH);
|
||||
for (int n=0; n < N; n++) {
|
||||
vec2 pos = uv + vec2(float(n-NTSC_FILTER_MIDDLE) / size.x, 0.0);
|
||||
float phase = TAU * (vNTSC_FILTER_SCF * size.x * pos.x);
|
||||
//phase += ( pos.x * 3.14 * 20) ; // rainbow width
|
||||
if (NTSC_PHASE_SHIFT > 0.5) phase += ( pos.y * -pi10 ) ; // 45 degree
|
||||
//if (NTSC_DOT_CRAWL > 0.5) phase += (params.FrameCount % 3140) /2.0 ;
|
||||
//float phase = TAU * (vNTSC_FILTER_SCF * size.x * pos.x) + ( pos.y * -pi10 * NTSC_PHASE_SHIFT)
|
||||
// ( pos.y * - 31.4);
|
||||
//Just sample luminance via yiq:
|
||||
vec3 smp = vec3((texture(Source, pos).rgb * RGB2YIQ).x);
|
||||
YIQ_processed += vec3(1.0, cos(phase), sin(phase)) * smp * vNTSC_weights[n];
|
||||
}
|
||||
|
||||
vec3 RGB_ori = texture(Source, uv).rgb;
|
||||
vec3 YIQ_ori = RGB_ori * RGB2YIQ;
|
||||
|
||||
//ADD artifacted Y and Q.
|
||||
vec3 YIQ_result = vec3(YIQ_ori.x, YIQ_ori.yz + YIQ_processed.yz * NTSC_MIX);
|
||||
|
||||
|
||||
/* se li vogliamo aggiungere come complemento ad 1?
|
||||
* tutto il
|
||||
* tipo ho y1 = 0.5 -> aggiungo y2 al max fino a 0.5, quindi come una sorta di clamp.
|
||||
* oppure partendo dall'opposto. e aggiungendo l'orinale all'ntsc.
|
||||
*/
|
||||
|
||||
// YIQ_result.y = YIQ_ori.y + clamp(YIQ_processed.y, 0.0, (1-YIQ_ori.y)) * NTSC_MIX;
|
||||
// YIQ_result.z = YIQ_ori.z + clamp(YIQ_processed.z, 0.0, (1-YIQ_ori.z)) * NTSC_MIX;
|
||||
|
||||
//return YIQ_processed * YIQ2RGB;
|
||||
|
||||
return YIQ_result * YIQ2RGB;
|
||||
}
|
||||
|
||||
|
||||
vec3 color_tools(vec3 pixel_out) {
|
||||
//Apply color corrections to input signal.
|
||||
|
||||
|
@ -75,7 +189,12 @@ vec3 color_tools(vec3 pixel_out) {
|
|||
|
||||
|
||||
vec3 pixel_no_flicker(vec2 coord){
|
||||
vec3 pixel_out = texture(Source,coord).rgb;
|
||||
vec3 pixel_out;
|
||||
if (DO_NTSC_ARTIFACTS > 0.0)
|
||||
pixel_out = ntscdec(coord);
|
||||
else
|
||||
pixel_out = texture(Source,coord).rgb;
|
||||
|
||||
if (DO_CCORRECTION == 1.0)
|
||||
pixel_out = color_tools(pixel_out);
|
||||
return pixel_out.rgb;
|
||||
|
@ -131,12 +250,12 @@ void debug() {
|
|||
//Just test patterns here
|
||||
vec3 pixel_debug;
|
||||
//Use one of the following to debug:
|
||||
//pixel_debug=vec3(abs(sin(params.FrameCount/3.14/8.0))); //white fade
|
||||
pixel_debug=vec3(abs(sin(params.FrameCount/3.14/8.0))); //white 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.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(floor(vTexCoord.x*16)/16); //H bw gradient 16gray
|
||||
//pixel_debug=vec3(floor(vTexCoord.x*64)/64); //H bw gradient 64gray
|
||||
//pixel_debug=vec3(floor(vTexCoord.x*128)/128); //H bw gradient 128gray
|
||||
|
@ -148,7 +267,7 @@ void debug() {
|
|||
|
||||
|
||||
void main() {
|
||||
|
||||
//FragColor = vec4(ntscdec(vTexCoord),1.0); return;
|
||||
//debug(); return;
|
||||
|
||||
/* since flickering code needs
|
||||
|
|
|
@ -29,8 +29,7 @@ layout(set = 0, binding = 2) uniform sampler2D FXAA_pass;
|
|||
layout(set = 0, binding = 3) uniform sampler2D first_pass;
|
||||
layout(set = 0, binding = 4) uniform sampler2D in_glow_pass;
|
||||
layout(set = 0, binding = 5) uniform sampler2D shift_and_bleed_pass;
|
||||
// What follows is an ugly optimization with a lot of code copied and pasted repeated multiple times,
|
||||
// shamlessly hidden into an include:
|
||||
|
||||
#include "includes/pixel_glows.include.slang"
|
||||
|
||||
|
||||
|
@ -40,13 +39,13 @@ vec4 main_wrap(void) {
|
|||
vec2 halo_coords = vTexCoord;
|
||||
|
||||
if (DO_IN_GLOW == 1.0)
|
||||
pixel_haloed = pixel_glow(in_glow_pass, HALO_W,HALO_H,HALO_POWER,HALO_GAMMA,halo_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
pixel_haloed = pixel_glow(in_glow_pass, HALO_W, HALO_H, HALO_POWER, HALO_GAMMA, halo_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
else if ( DO_SHIFT_RGB + DO_SAT_BLEED > 0.0)
|
||||
pixel_haloed = pixel_glow(shift_and_bleed_pass, HALO_W,HALO_H,HALO_POWER,HALO_GAMMA,halo_coords, params.OutputSize, params.OutputSize).rgb;
|
||||
pixel_haloed = pixel_glow(shift_and_bleed_pass, HALO_W, HALO_H, HALO_POWER, HALO_GAMMA, halo_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
else if (DO_FXAA > 0.0)
|
||||
pixel_haloed = pixel_glow(FXAA_pass, HALO_W,HALO_H,HALO_POWER,HALO_GAMMA,halo_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
pixel_haloed = pixel_glow(FXAA_pass, HALO_W, HALO_H, HALO_POWER, HALO_GAMMA, halo_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
else
|
||||
pixel_haloed = pixel_glow(first_pass, HALO_W,HALO_H,HALO_POWER,HALO_GAMMA,halo_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
pixel_haloed = pixel_glow(first_pass, HALO_W, HALO_H, HALO_POWER, HALO_GAMMA, halo_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
|
||||
return vec4(pixel_haloed.rgb,1.0);
|
||||
}
|
||||
|
|
|
@ -6,9 +6,7 @@ layout(location = 0) in vec4 Position;
|
|||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord ;
|
||||
}
|
||||
|
@ -22,24 +20,89 @@ layout(set = 0, binding = 3) uniform sampler2D FXAA_pass;
|
|||
layout(set = 0, binding = 4) uniform sampler2D first_pass;
|
||||
layout(set = 0, binding = 5) uniform sampler2D shift_and_bleed_pass;
|
||||
|
||||
|
||||
// Blur sizes must not depend on input resolution
|
||||
#define scalemod_x (params.OutputSize.x/360.0)
|
||||
#define scalemod_y (params.OutputSize.y/270.0)
|
||||
|
||||
// What follows is an ugly optimization with a lot of code copied and pasted repeated multiple times,
|
||||
// shamlessly hidden into an include:
|
||||
#include "includes/pixel_glows.include.slang"
|
||||
|
||||
|
||||
|
||||
vec3 glow_blur_bias_smother_bloomer(sampler2D source_tex, vec2 co, vec3 pixel_glowed, float bias) {
|
||||
//Modulates the mix of the blurred version over the sharp one
|
||||
//by the luminosity difference of the blurred version and the original
|
||||
vec3 pixel_original = texture(source_tex,vTexCoord).rgb;
|
||||
vec3 pixel_sharp = pow(pixel_original,vec3(IN_GLOW_GAMMA)) * IN_GLOW_POWER;
|
||||
|
||||
vec3 pixel_glowed_c = clamp(pixel_glowed, 0.0, 1.0);
|
||||
vec3 pixel_sharp_c = clamp(pixel_sharp, 0.0, 1.0);
|
||||
|
||||
vec3 vmix = vec3( pixel_glowed_c.r - pixel_original.r,
|
||||
pixel_glowed_c.g - pixel_original.g,
|
||||
pixel_glowed_c.b - pixel_original.b);
|
||||
|
||||
vmix += IN_GLOW_BIAS;
|
||||
vmix = clamp(vmix, 0.0, 1.0);
|
||||
vmix *= vmix;
|
||||
return mix(pixel_sharp, pixel_glowed, vmix );
|
||||
//return mix(pixel_sharp, pixel_glowed, clamp( (vmix+0.01 * vInGlowBias) , 0.0,1.0) );
|
||||
//return pixel_sharp + pixel_glowed*clamp( (vmix+0.01 * vInGlowBias) , 0.0,1.0);
|
||||
}
|
||||
|
||||
vec3 glow_blur_bias_sharper_AA(sampler2D source_tex, vec2 co, vec3 pixel_glowed, float bias) {
|
||||
//from latitude. with pow.
|
||||
vec3 pixel_source = texture(source_tex, co).rgb;
|
||||
pixel_source = pow(pixel_source,vec3(IN_GLOW_GAMMA)) * IN_GLOW_POWER;
|
||||
|
||||
float glowlum = max(max(pixel_glowed.r, pixel_glowed.g), pixel_glowed.b);
|
||||
float orilum = max(max(pixel_source.r, pixel_source.g), pixel_source.b);
|
||||
glowlum = clamp(glowlum, 0.0, 1.0);
|
||||
orilum = clamp(orilum, 0.0, 1.0);
|
||||
float g_mix = (glowlum - orilum);
|
||||
g_mix += IN_GLOW_BIAS;
|
||||
g_mix = clamp(g_mix, 0.0, 1.0);
|
||||
g_mix *= g_mix ;
|
||||
return mix(pixel_source, pixel_glowed, g_mix);
|
||||
}
|
||||
|
||||
vec3 glow_blur_bias(sampler2D source_tex, vec2 co, vec3 pixel_glowed, float bias){
|
||||
if (IN_GLOW_W < 0.99)
|
||||
return glow_blur_bias_sharper_AA( source_tex, co, pixel_glowed, bias);
|
||||
else
|
||||
return glow_blur_bias_smother_bloomer( source_tex, co, pixel_glowed, bias);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void main() {
|
||||
|
||||
|
||||
|
||||
if (DO_IN_GLOW == 0.0) return;
|
||||
|
||||
vec3 pixel_glowed;
|
||||
if ( DO_SHIFT_RGB + DO_SAT_BLEED > 0.0)
|
||||
pixel_glowed = pixel_glow(shift_and_bleed_pass, IN_GLOW_WH,IN_GLOW_WH,IN_GLOW_POWER,IN_GLOW_GAMMA,vTexCoord, params.OutputSize, params.OutputSize).rgb;
|
||||
else if (DO_FXAA > 0.0)
|
||||
pixel_glowed = pixel_glow(FXAA_pass, IN_GLOW_WH,IN_GLOW_WH,IN_GLOW_POWER,IN_GLOW_GAMMA,vTexCoord, params.OutputSize, params.OutputSize).rgb;
|
||||
else
|
||||
pixel_glowed = pixel_glow(first_pass, IN_GLOW_WH,IN_GLOW_WH,IN_GLOW_POWER,IN_GLOW_GAMMA,vTexCoord, params.OutputSize, params.OutputSize).rgb;
|
||||
if ( DO_SHIFT_RGB + DO_SAT_BLEED > 0.0) {
|
||||
pixel_glowed = pixel_glow(shift_and_bleed_pass, IN_GLOW_W, IN_GLOW_H, IN_GLOW_POWER, IN_GLOW_GAMMA, vTexCoord, params.OutputSize, params.OutputSize).rgb;
|
||||
if (IN_GLOW_BIAS < IN_GLOW_BIAS_MAX && (IN_GLOW_W < GLOW_SHARP_MAX || IN_GLOW_H < GLOW_SHARP_MAX) )
|
||||
pixel_glowed = glow_blur_bias(shift_and_bleed_pass, vTexCoord, pixel_glowed, IN_GLOW_BIAS);
|
||||
|
||||
}
|
||||
else if (DO_FXAA > 0.0) {
|
||||
pixel_glowed = pixel_glow(FXAA_pass, IN_GLOW_W, IN_GLOW_H, IN_GLOW_POWER, IN_GLOW_GAMMA, vTexCoord, params.OutputSize, params.OutputSize).rgb;
|
||||
if (IN_GLOW_BIAS < IN_GLOW_BIAS_MAX && (IN_GLOW_W < GLOW_SHARP_MAX || IN_GLOW_H < GLOW_SHARP_MAX) )
|
||||
pixel_glowed = glow_blur_bias(FXAA_pass, vTexCoord, pixel_glowed, IN_GLOW_BIAS);
|
||||
|
||||
}
|
||||
else {
|
||||
pixel_glowed = pixel_glow(first_pass, IN_GLOW_W, IN_GLOW_H, IN_GLOW_POWER, IN_GLOW_GAMMA, vTexCoord, params.OutputSize, params.OutputSize).rgb;
|
||||
if (IN_GLOW_BIAS < IN_GLOW_BIAS_MAX && (IN_GLOW_W < GLOW_SHARP_MAX || IN_GLOW_H < GLOW_SHARP_MAX) )
|
||||
pixel_glowed = glow_blur_bias(first_pass, vTexCoord, pixel_glowed, IN_GLOW_BIAS);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
FragColor = vec4((pixel_glowed),1.0);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
#define alpha_mark 0.1
|
||||
#define pi 3.141592654
|
||||
|
||||
|
||||
vec3 pixel_push_luminance(vec3 c, float strength) {
|
||||
//if (strength == 0.0) return c; //lighter without the check.
|
||||
|
@ -200,11 +199,10 @@ float random(float power, vec2 seed) {
|
|||
if (ASPECT_X == -3) return 1.143; // 8/7 snes
|
||||
if (ASPECT_X == -4) return 1.428; // 10/7 megadrive
|
||||
if (ASPECT_X == -5) return params.OriginalSize.x/params.OriginalSize.y; //uncorrected
|
||||
|
||||
if (ASPECT_X == -6) return 0.75; // 3/4, pre-rotated (TATE) 1.33 games.
|
||||
if (ASPECT_X == 0) {
|
||||
return 1.3333333333333; //all mame games, not rotated
|
||||
}
|
||||
|
||||
return ASPECT_X / ASPECT_Y ;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,871 +1,19 @@
|
|||
|
||||
//Those functions will sample from source texture (the previous), but with a precision taken from passthrough_passSize.
|
||||
//This is needed because the source texture has been scaled up to the dimension of the viewport to allow
|
||||
//the scanlines to be linear filtered.
|
||||
|
||||
|
||||
/*
|
||||
#include "pows.include.slang"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
vec4 pixel_glow_gamma_1(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
vec3 diff_weight(vec3 v1, vec3 ref, float bias) {
|
||||
float v1_lum = max(max(v1.r, v1.g), v1.b);
|
||||
float ref_lum = max(max(ref.r, ref.g), ref.b);
|
||||
v1_lum=clamp(v1_lum,0.0,1.0);
|
||||
ref_lum=clamp(ref_lum,0.0,1.0);
|
||||
float g_mix = v1_lum - ref_lum;
|
||||
g_mix += IN_GLOW_BIAS ;
|
||||
g_mix = clamp(g_mix, 0.0, 1.0);
|
||||
return mix(ref, v1, g_mix);
|
||||
}
|
||||
|
||||
|
||||
vec4 pixel_glow_gamma_2(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3*=l3; l2*=l2; l1*=l1;
|
||||
r1*=r1; r2*=r2; r3*=r3;
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3*=l3; l2*=l2; l1*=l1;
|
||||
r1*=r1; r2*=r2; r3*=r3;
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3*=l3; l2*=l2; l1*=l1;
|
||||
r1*=r1; r2*=r2; r3*=r3;
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3*=l3; l2*=l2; l1*=l1;
|
||||
r1*=r1; r2*=r2; r3*=r3;
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_3(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_3(l3); l2=pow_3(l2); l1=pow_3(l1);
|
||||
r1=pow_3(r1); r2=pow_3(r2); r3=pow_3(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_3(l3); l2=pow_3(l2); l1=pow_3(l1);
|
||||
r1=pow_3(r1); r2=pow_3(r2); r3=pow_3(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_3(l3); l2=pow_3(l2); l1=pow_3(l1);
|
||||
r1=pow_3(r1); r2=pow_3(r2); r3=pow_3(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_3(l3); l2=pow_3(l2); l1=pow_3(l1);
|
||||
r1=pow_3(r1); r2=pow_3(r2); r3=pow_3(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_4(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_4(l3); l2=pow_4(l2); l1=pow_4(l1);
|
||||
r1=pow_4(r1); r2=pow_4(r2); r3=pow_4(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_4(l3); l2=pow_4(l2); l1=pow_4(l1);
|
||||
r1=pow_4(r1); r2=pow_4(r2); r3=pow_4(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_4(l3); l2=pow_4(l2); l1=pow_4(l1);
|
||||
r1=pow_4(r1); r2=pow_4(r2); r3=pow_4(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_4(l3); l2=pow_4(l2); l1=pow_4(l1);
|
||||
r1=pow_4(r1); r2=pow_4(r2); r3=pow_4(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_5(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_5(l3); l2=pow_5(l2); l1=pow_5(l1);
|
||||
r1=pow_5(r1); r2=pow_5(r2); r3=pow_5(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_5(l3); l2=pow_5(l2); l1=pow_5(l1);
|
||||
r1=pow_5(r1); r2=pow_5(r2); r3=pow_5(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_5(l3); l2=pow_5(l2); l1=pow_5(l1);
|
||||
r1=pow_5(r1); r2=pow_5(r2); r3=pow_5(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_5(l3); l2=pow_5(l2); l1=pow_5(l1);
|
||||
r1=pow_5(r1); r2=pow_5(r2); r3=pow_5(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_6(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_6(l3); l2=pow_6(l2); l1=pow_6(l1);
|
||||
r1=pow_6(r1); r2=pow_6(r2); r3=pow_6(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_6(l3); l2=pow_6(l2); l1=pow_6(l1);
|
||||
r1=pow_6(r1); r2=pow_6(r2); r3=pow_6(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_6(l3); l2=pow_6(l2); l1=pow_6(l1);
|
||||
r1=pow_6(r1); r2=pow_6(r2); r3=pow_6(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_6(l3); l2=pow_6(l2); l1=pow_6(l1);
|
||||
r1=pow_6(r1); r2=pow_6(r2); r3=pow_6(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_7(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_7(l3); l2=pow_7(l2); l1=pow_7(l1);
|
||||
r1=pow_7(r1); r2=pow_7(r2); r3=pow_7(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_7(l3); l2=pow_7(l2); l1=pow_7(l1);
|
||||
r1=pow_7(r1); r2=pow_7(r2); r3=pow_7(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_7(l3); l2=pow_7(l2); l1=pow_7(l1);
|
||||
r1=pow_7(r1); r2=pow_7(r2); r3=pow_7(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_7(l3); l2=pow_7(l2); l1=pow_7(l1);
|
||||
r1=pow_7(r1); r2=pow_7(r2); r3=pow_7(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_8(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_8(l3); l2=pow_8(l2); l1=pow_8(l1);
|
||||
r1=pow_8(r1); r2=pow_8(r2); r3=pow_8(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_8(l3); l2=pow_8(l2); l1=pow_8(l1);
|
||||
r1=pow_8(r1); r2=pow_8(r2); r3=pow_8(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_8(l3); l2=pow_8(l2); l1=pow_8(l1);
|
||||
r1=pow_8(r1); r2=pow_8(r2); r3=pow_8(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_8(l3); l2=pow_8(l2); l1=pow_8(l1);
|
||||
r1=pow_8(r1); r2=pow_8(r2); r3=pow_8(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_9(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_9(l3); l2=pow_9(l2); l1=pow_9(l1);
|
||||
r1=pow_9(r1); r2=pow_9(r2); r3=pow_9(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_9(l3); l2=pow_9(l2); l1=pow_9(l1);
|
||||
r1=pow_9(r1); r2=pow_9(r2); r3=pow_9(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_9(l3); l2=pow_9(l2); l1=pow_9(l1);
|
||||
r1=pow_9(r1); r2=pow_9(r2); r3=pow_9(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_9(l3); l2=pow_9(l2); l1=pow_9(l1);
|
||||
r1=pow_9(r1); r2=pow_9(r2); r3=pow_9(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_10(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_10(l3); l2=pow_10(l2); l1=pow_10(l1);
|
||||
r1=pow_10(r1); r2=pow_10(r2); r3=pow_10(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_10(l3); l2=pow_10(l2); l1=pow_10(l1);
|
||||
r1=pow_10(r1); r2=pow_10(r2); r3=pow_10(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_10(l3); l2=pow_10(l2); l1=pow_10(l1);
|
||||
r1=pow_10(r1); r2=pow_10(r2); r3=pow_10(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_10(l3); l2=pow_10(l2); l1=pow_10(l1);
|
||||
r1=pow_10(r1); r2=pow_10(r2); r3=pow_10(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
|
||||
vec3 blur_v(sampler2D in_texture, float my_glowpixy, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ;
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
vec3 t1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 t2 = texture(in_texture, pC4 -dy).rgb;
|
||||
vec3 b1 = texture(in_texture, pC4 +dy).rgb;
|
||||
vec3 b2 = texture(in_texture, pC4 +y2).rgb;
|
||||
|
||||
float wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
float wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
float wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
float wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
float wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 smoothed = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return smoothed;
|
||||
|
||||
return vec3(1.0);
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
vec4 pixel_glow_std_pow(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, float glow_gamma, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
|
@ -967,22 +115,6 @@ vec4 pixel_glow(sampler2D in_texture, float my_glowpix, float my_glowpixy, float
|
|||
|
||||
return pixel_glow_std_pow(in_texture,my_glowpix,my_glowpixy,my_glow,glow_gamma,coords,SourceSize1, SourceSize2);
|
||||
|
||||
//return pixel_glow_my_pow(in_texture,my_glowpix,my_glowpixy,my_glow,glow_gamma,coords,SourceSize1, SourceSize2);
|
||||
|
||||
|
||||
/* if (glow_gamma == 1) { return pixel_glow_gamma_1(in_texture, my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 2) { return pixel_glow_gamma_2(in_texture, my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 3) { return pixel_glow_gamma_3(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 4) { return pixel_glow_gamma_4(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 5) { return pixel_glow_gamma_5(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 6) { return pixel_glow_gamma_6(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 7) { return pixel_glow_gamma_7(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 8) { return pixel_glow_gamma_8(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 9) { return pixel_glow_gamma_9(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 10) { return pixel_glow_gamma_10(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
return pixel_glow_std_pow(in_texture,my_glowpix,my_glowpixy,my_glow,glow_gamma,coords,SourceSize1, SourceSize2);
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -7,11 +7,12 @@ layout(location = 1) in vec2 TexCoord;
|
|||
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
#include "includes/functions.include.slang"
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
if (DO_BEZEL > 0.5)
|
||||
vTexCoord = zoom(vTexCoord, BEZEL_REFL_ZOOM);
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 419 KiB |
Binary file not shown.
|
@ -187,40 +187,45 @@ scale_x16 = "1.000000"
|
|||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
GAMMA_OUT = "0.400000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_W = "0.950000"
|
||||
IN_GLOW_H = "0.950000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
BLOOM_GAMMA_OUT = "2.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.000000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
|
|
|
@ -192,29 +192,31 @@ CONTRAST = "0.050000"
|
|||
BRIGHTNESS = "0.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.560000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "2.000000"
|
||||
SHIFT_G = "20.000000"
|
||||
SHIFT_B = "-2.000000"
|
||||
DO_NTSC_ARTIFACTS = "1.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.750000"
|
||||
IN_GLOW_WH = "1.000000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.500000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.300000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_SM_TYPE = "1.000000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
@ -226,8 +228,8 @@ GEOM_WARP_Y = "0.500000"
|
|||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_INNER_ZOOM = "-0.010000"
|
||||
BEZEL_FRAME_ZOOM = "0.170000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
254
bezel/koko-aio/tv-NTSC-2.slangp
Normal file
254
bezel/koko-aio/tv-NTSC-2.slangp
Normal file
|
@ -0,0 +1,254 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_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/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_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/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
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_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
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"
|
||||
LUMINANCE = "0.200000"
|
||||
CONTRAST = "0.050000"
|
||||
BRIGHTNESS = "0.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.560000"
|
||||
DO_NTSC_ARTIFACTS = "1.000000"
|
||||
NTSC_PHASE_SHIFT = "1.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.750000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.500000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.300000"
|
||||
SCANLINE_SM_TYPE = "1.000000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.010000"
|
||||
BEZEL_FRAME_ZOOM = "0.170000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_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"
|
259
bezel/koko-aio/tv-PAL-my-old.slangp
Normal file
259
bezel/koko-aio/tv-PAL-my-old.slangp
Normal file
|
@ -0,0 +1,259 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_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/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_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/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
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_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
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"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.200000"
|
||||
CONTRAST = "0.050000"
|
||||
BRIGHTNESS = "0.050000"
|
||||
TEMPERATURE = "7500.000000"
|
||||
GAMMA_OUT = "0.560000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "1.750000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "2.000000"
|
||||
SHIFT_G = "20.000000"
|
||||
SHIFT_B = "-2.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.650000"
|
||||
IN_GLOW_W = "1.000000"
|
||||
IN_GLOW_H = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.500000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.300000"
|
||||
HALO_VS_SCAN = "1.000000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.750000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_SM_TYPE = "1.000000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.010000"
|
||||
BEZEL_FRAME_ZOOM = "0.170000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_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"
|
|
@ -187,27 +187,33 @@ scale_x16 = "1.000000"
|
|||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.350000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.750000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_W = "0.950000"
|
||||
IN_GLOW_H = "0.950000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "1.000000"
|
||||
DO_DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.350000"
|
||||
|
@ -219,15 +225,17 @@ SCANLINES_BLEEDING = "1.000000"
|
|||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
BLOOM_GAMMA_OUT = "2.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.800000"
|
||||
GEOM_WARP_Y = "0.850000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_FRAME_ZOOM = "0.040000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
|
|
|
@ -187,27 +187,33 @@ scale_x16 = "1.000000"
|
|||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.350000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.750000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_W = "0.950000"
|
||||
IN_GLOW_H = "0.950000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "1.000000"
|
||||
DO_DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.350000"
|
||||
|
@ -219,17 +225,18 @@ SCANLINES_BLEEDING = "1.000000"
|
|||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
BLOOM_GAMMA_OUT = "2.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_INNER_ZOOM = "-0.010000"
|
||||
BEZEL_FRAME_ZOOM = "0.170000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
|
|
|
@ -187,27 +187,33 @@ scale_x16 = "1.000000"
|
|||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.350000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.750000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_W = "0.950000"
|
||||
IN_GLOW_H = "0.950000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "1.000000"
|
||||
DO_DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.350000"
|
||||
|
@ -219,9 +225,10 @@ SCANLINES_BLEEDING = "1.000000"
|
|||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
BLOOM_GAMMA_OUT = "2.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.000000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
|
|
|
@ -187,27 +187,33 @@ scale_x16 = "1.000000"
|
|||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.350000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_W = "0.950000"
|
||||
IN_GLOW_H = "0.950000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "1.000000"
|
||||
DO_DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.350000"
|
||||
|
@ -218,9 +224,10 @@ SCANLINE_COMPENSATION = "0.200000"
|
|||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
BLOOM_GAMMA_OUT = "2.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.000000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
|
|
|
@ -187,47 +187,53 @@ scale_x16 = "1.000000"
|
|||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
GAMMA_OUT = "0.400000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_W = "0.950000"
|
||||
IN_GLOW_H = "0.950000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.900000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.500000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
BLOOM_GAMMA_OUT = "2.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.800000"
|
||||
GEOM_WARP_Y = "0.850000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_FRAME_ZOOM = "0.040000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
|
|
|
@ -187,49 +187,54 @@ scale_x16 = "1.000000"
|
|||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
GAMMA_OUT = "0.400000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_W = "0.950000"
|
||||
IN_GLOW_H = "0.950000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.900000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.500000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
BLOOM_GAMMA_OUT = "2.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_INNER_ZOOM = "-0.010000"
|
||||
BEZEL_FRAME_ZOOM = "0.170000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
|
|
|
@ -187,41 +187,46 @@ scale_x16 = "1.000000"
|
|||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
GAMMA_OUT = "0.400000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_W = "0.950000"
|
||||
IN_GLOW_H = "0.950000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.900000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.500000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
BLOOM_GAMMA_OUT = "2.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.000000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
|
|
|
@ -187,40 +187,45 @@ scale_x16 = "1.000000"
|
|||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.100000"
|
||||
SATURATION = "1.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
GAMMA_OUT = "0.400000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_W = "0.950000"
|
||||
IN_GLOW_H = "0.950000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.900000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.500000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
BLOOM_GAMMA_OUT = "2.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.000000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
|
|
|
@ -189,35 +189,36 @@ scale_y16 = "1.000000"
|
|||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.300000"
|
||||
TEMPERATURE = "7200.000000"
|
||||
GAMMA_OUT = "0.450000"
|
||||
GAMMA_OUT = "0.400000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_FALLOFF = "1.800000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_FALLOFF = "1.800000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.700000"
|
||||
IN_GLOW_WH = "2.000000"
|
||||
IN_GLOW_W = "2.000000"
|
||||
IN_GLOW_H = "2.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
IN_GLOW_BIAS = "0.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
VMASK_OVERWHITE = "0.750000"
|
||||
DARKLINES_STRENGTH = "0.400000"
|
||||
DARKLINES_PERIOD = "6.000000"
|
||||
DRKLN_OVERWHITE = "0.750000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_POWER = "0.430000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.200000"
|
||||
HALO_VS_SCAN = "0.800000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.100000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_FLICKERING = "1.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.850000"
|
||||
SCANLINE_SM_STRENGTH = "1.000000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
|
@ -229,6 +230,7 @@ GEOM_WARP_Y = "0.850000"
|
|||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_FRAME_ZOOM = "0.040000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
|
|
Loading…
Reference in a new issue