mirror of
https://github.com/italicsjenga/slang-shaders.git
synced 2024-11-23 00:01:31 +11:00
Fixed up the presets for Bang & Olufsen MX8000 and Sony PVM 20L4 Added ability to dial out the horizontal blur to widen black gaps Defaulted the main shaders to standard settings not for any TV
This commit is contained in:
parent
f08ffdac03
commit
ff7baae3d1
|
@ -1,12 +1,12 @@
|
||||||
/*
|
/*
|
||||||
A shader that specifically tries to emulate Bang & Olufsen with a slot mask screen but with full brightness.
|
A shader that specifically tries to emulate Bang & Olufsen Beovision with a slot mask screen but with full brightness.
|
||||||
|
|
||||||
The novel thing about this shader is that it transforms the image output by the 'console/arcade/computer' into HDR space first i.e brightens it first and then applies
|
The novel thing about this shader is that it transforms the image output by the 'console/arcade/computer' into HDR space first i.e brightens it first and then applies
|
||||||
an slot mask afterwards which is kind of what a CRT would actually do - its kind of a kin to the electron beam (but nothing like it lol).
|
an slot mask afterwards which is kind of what a CRT would actually do - its kind of a kin to the electron beam (but nothing like it lol).
|
||||||
|
|
||||||
My DisplayHDR 600 monitor does seem to get reasonably close to the brightness of my PVM - its not quite there but its close. I think DisplayHDR 1000 and above will be able to match.
|
My DisplayHDR 600 monitor does seem to get reasonably close to the brightness of my PVM - its not quite there but its close. I think DisplayHDR 1000 and above will be able to match.
|
||||||
|
|
||||||
Currently defaults towards a XXXX CRT MAKE MODEL XXXX.
|
Currently defaults towards a Bang & Olufsen Beovision MX8000.
|
||||||
|
|
||||||
To use:
|
To use:
|
||||||
Please Enable HDR in RetroArch 1.10+
|
Please Enable HDR in RetroArch 1.10+
|
||||||
|
@ -34,3 +34,21 @@ mipmap_input0 = "false"
|
||||||
alias0 = ""
|
alias0 = ""
|
||||||
float_framebuffer0 = "false"
|
float_framebuffer0 = "false"
|
||||||
srgb_framebuffer0 = "false"
|
srgb_framebuffer0 = "false"
|
||||||
|
RedConvergence = "0.000000"
|
||||||
|
GreenConvergence = "0.000000"
|
||||||
|
BlueConvergence = "0.000000"
|
||||||
|
RedScanlineMin = "0.650000"
|
||||||
|
RedScanlineMax = "0.900000"
|
||||||
|
RedScanlineAttack = "0.500000"
|
||||||
|
GreenScanlineMin = "0.650000"
|
||||||
|
GreenScanlineMax = "0.900000"
|
||||||
|
GreenScanlineAttack = "0.500000"
|
||||||
|
BlueScanlineMin = "0.650000"
|
||||||
|
BlueScanlineMax = "0.900000"
|
||||||
|
BlueScanlineAttack = "0.500000"
|
||||||
|
RedBeamSharpness = "1.600000"
|
||||||
|
RedBeamAttack = "1.7500000"
|
||||||
|
GreenBeamSharpness = "1.600000"
|
||||||
|
GreenBeamAttack = "1.750000"
|
||||||
|
BlueBeamSharpness = "1.600000"
|
||||||
|
BlueBeamAttack = "1.750000"
|
||||||
|
|
1
hdr/crt-bang-olufsen-mx8000-4k-hdr.slangp
Normal file
1
hdr/crt-bang-olufsen-mx8000-4k-hdr.slangp
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#reference "crt-bang-olufsen-4k-hdr.slangp"
|
|
@ -1,17 +1,20 @@
|
||||||
#reference "crt-sony-pvm-4k-hdr.slangp"
|
#reference "crt-sony-pvm-4k-hdr.slangp"
|
||||||
CRTResolution = "0.000000"
|
CRTResolution = "1.000000"
|
||||||
Contrast = "-0.300000"
|
RedConvergence = "0.500000"
|
||||||
HorizontalSharpness = "1.500000"
|
|
||||||
HorizontalAttack = "0.450000"
|
|
||||||
RedScanlineMin = "0.55000"
|
|
||||||
RedScanlineMax = "0.75000"
|
|
||||||
RedScanlineAttack = "0.650000"
|
|
||||||
RedConvergence = "-1.200000"
|
|
||||||
GreenScanlineMin = "0.65000"
|
|
||||||
GreenScanlineMax = "0.90000"
|
|
||||||
GreenScanlineAttack = "0.130000"
|
|
||||||
GreenConvergence = "0.000000"
|
GreenConvergence = "0.000000"
|
||||||
BlueScanlineMin = "0.72000"
|
BlueConvergence = "0.000000"
|
||||||
BlueScanlineMax = "1.15000"
|
RedScanlineMin = "0.250000"
|
||||||
BlueScanlineAttack = "1.00000"
|
RedScanlineMax = "0.400000"
|
||||||
BlueConvergence = "-0.100000"
|
RedScanlineAttack = "0.150000"
|
||||||
|
GreenScanlineMin = "0.250000"
|
||||||
|
GreenScanlineMax = "0.400000"
|
||||||
|
GreenScanlineAttack = "0.150000"
|
||||||
|
BlueScanlineMin = "0.250000"
|
||||||
|
BlueScanlineMax = "0.400000"
|
||||||
|
BlueScanlineAttack = "0.150000"
|
||||||
|
RedBeamSharpness = "2.000000"
|
||||||
|
RedBeamAttack = "1.0000000"
|
||||||
|
GreenBeamSharpness = "2.000000"
|
||||||
|
GreenBeamAttack = "1.000000"
|
||||||
|
BlueBeamSharpness = "2.000000"
|
||||||
|
BlueBeamAttack = "1.000000"
|
|
@ -34,3 +34,22 @@ mipmap_input0 = "false"
|
||||||
alias0 = ""
|
alias0 = ""
|
||||||
float_framebuffer0 = "false"
|
float_framebuffer0 = "false"
|
||||||
srgb_framebuffer0 = "false"
|
srgb_framebuffer0 = "false"
|
||||||
|
RedConvergence = "-0.500000"
|
||||||
|
GreenConvergence = "0.000000"
|
||||||
|
BlueConvergence = "0.000000"
|
||||||
|
RedScanlineMin = "0.550000"
|
||||||
|
RedScanlineMax = "0.820000"
|
||||||
|
RedScanlineAttack = "0.650000"
|
||||||
|
GreenScanlineMin = "0.550000"
|
||||||
|
GreenScanlineMax = "0.900000"
|
||||||
|
GreenScanlineAttack = "0.130000"
|
||||||
|
BlueScanlineMin = "0.720000"
|
||||||
|
BlueScanlineMax = "1.000000"
|
||||||
|
BlueScanlineAttack = "0.650000"
|
||||||
|
RedBeamSharpness = "1.750000"
|
||||||
|
RedBeamAttack = "0.7200000"
|
||||||
|
GreenBeamSharpness = "1.600000"
|
||||||
|
GreenBeamAttack = "0.800000"
|
||||||
|
BlueBeamSharpness = "1.900000"
|
||||||
|
BlueBeamAttack = "0.450000"
|
||||||
|
|
||||||
|
|
|
@ -3,22 +3,23 @@
|
||||||
#pragma parameter DeveloperSettings "DEVELOPER SETTINGS:" 0.0 0.0 0.0 0.0
|
#pragma parameter DeveloperSettings "DEVELOPER SETTINGS:" 0.0 0.0 0.0 0.0
|
||||||
#pragma parameter CRTResolution " CRT Resolution: 600TVL/800TVL/1000TVL" 0.0 0.0 2.0 1.0
|
#pragma parameter CRTResolution " CRT Resolution: 600TVL/800TVL/1000TVL" 0.0 0.0 2.0 1.0
|
||||||
#pragma parameter DeveloperSettings0 " VERTICAL SETTINGS:" 0.0 0.0 0.0 0.0
|
#pragma parameter DeveloperSettings0 " VERTICAL SETTINGS:" 0.0 0.0 0.0 0.0
|
||||||
#pragma parameter RedScanlineMin " Red Scanline Min" 0.55 0.0 2.0 0.01
|
#pragma parameter RedScanlineMin " Red Scanline Min" 0.50 0.0 2.0 0.01
|
||||||
#pragma parameter RedScanlineMax " Red Scanline Max" 0.82 0.0 2.0 0.01
|
#pragma parameter RedScanlineMax " Red Scanline Max" 1.00 0.0 2.0 0.01
|
||||||
#pragma parameter RedScanlineAttack " Red Scanline Attack" 0.65 0.0 1.0 0.01
|
#pragma parameter RedScanlineAttack " Red Scanline Attack" 0.20 0.0 1.0 0.01
|
||||||
#pragma parameter GreenScanlineMin " Green Scanline Min" 0.55 0.0 2.0 0.01
|
#pragma parameter GreenScanlineMin " Green Scanline Min" 0.50 0.0 2.0 0.01
|
||||||
#pragma parameter GreenScanlineMax " Green Scanline Max" 0.90 0.0 2.0 0.01
|
#pragma parameter GreenScanlineMax " Green Scanline Max" 1.00 0.0 2.0 0.01
|
||||||
#pragma parameter GreenScanlineAttack " Green Scanline Attack" 0.13 0.0 1.0 0.01
|
#pragma parameter GreenScanlineAttack " Green Scanline Attack" 0.20 0.0 1.0 0.01
|
||||||
#pragma parameter BlueScanlineMin " Blue Scanline Min" 0.72 0.0 2.0 0.01
|
#pragma parameter BlueScanlineMin " Blue Scanline Min" 0.50 0.0 2.0 0.01
|
||||||
#pragma parameter BlueScanlineMax " Blue Scanline Max" 1.00 0.0 2.0 0.01
|
#pragma parameter BlueScanlineMax " Blue Scanline Max" 1.00 0.0 2.0 0.01
|
||||||
#pragma parameter BlueScanlineAttack " Blue Scanline Attack" 0.65 0.0 1.0 0.01
|
#pragma parameter BlueScanlineAttack " Blue Scanline Attack" 0.20 0.0 1.0 0.01
|
||||||
#pragma parameter DeveloperSettings1 " HORIZONTAL SETTINGS:" 0.0 0.0 0.0 0.0
|
#pragma parameter DeveloperSettings1 " HORIZONTAL SETTINGS:" 0.0 0.0 0.0 0.0
|
||||||
#pragma parameter RedBeamSharpness " Red Beam Sharpness" 1.75 0.0 5.0 0.05
|
#pragma parameter RedBeamSharpness " Red Beam Sharpness" 1.75 0.0 5.0 0.05
|
||||||
#pragma parameter RedBeamAttack " Red Beam Attack" 0.72 0.0 1.0 0.01
|
#pragma parameter RedBeamAttack " Red Beam Attack" 0.50 0.0 2.0 0.01
|
||||||
#pragma parameter GreenBeamSharpness " Green Beam Sharpness" 1.60 0.0 5.0 0.05
|
#pragma parameter GreenBeamSharpness " Green Beam Sharpness" 1.75 0.0 5.0 0.05
|
||||||
#pragma parameter GreenBeamAttack " Green Beam Attack" 0.80 0.0 1.0 0.01
|
#pragma parameter GreenBeamAttack " Green Beam Attack" 0.50 0.0 2.0 0.01
|
||||||
#pragma parameter BlueBeamSharpness " Blue Beam Sharpness" 1.90 0.0 5.0 0.05
|
#pragma parameter BlueBeamSharpness " Blue Beam Sharpness" 1.75 0.0 5.0 0.05
|
||||||
#pragma parameter BlueBeamAttack " Blue Beam Attack" 0.45 0.0 1.0 0.01
|
#pragma parameter BlueBeamAttack " Blue Beam Attack" 0.50 0.0 2.0 0.01
|
||||||
|
|
||||||
|
|
||||||
#if WHITE_BALANCE_CONTROL
|
#if WHITE_BALANCE_CONTROL
|
||||||
//#pragma parameter WhiteTemperature "White Temperature" 6500.0 0.0 13000.0 50.0
|
//#pragma parameter WhiteTemperature "White Temperature" 6500.0 0.0 13000.0 50.0
|
||||||
|
|
|
@ -19,17 +19,26 @@ const vec4 kAttackControlPoints = vec4(0.0f, 1.0f, 1.0f, 1.0f);
|
||||||
|
|
||||||
vec4 RedBeamControlPoints(const bool falloff)
|
vec4 RedBeamControlPoints(const bool falloff)
|
||||||
{
|
{
|
||||||
return falloff ? kFallOffControlPoints + vec4(0.0f, 0.0f, params.RedBeamAttack, 0.0f) : kAttackControlPoints - vec4(0.0f, params.RedBeamAttack, 0.0f, 0.0f);
|
float inner_attack = clamp(params.RedBeamAttack, 0.0f, 1.0);
|
||||||
|
float outer_attack = clamp(params.RedBeamAttack - 1.0f, 0.0f, 1.0);
|
||||||
|
|
||||||
|
return falloff ? kFallOffControlPoints + vec4(0.0f, outer_attack, inner_attack, 0.0f) : kAttackControlPoints - vec4(0.0f, inner_attack, outer_attack, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
vec4 GreenBeamControlPoints(const bool falloff)
|
vec4 GreenBeamControlPoints(const bool falloff)
|
||||||
{
|
{
|
||||||
return falloff ? kFallOffControlPoints + vec4(0.0f, 0.0f, params.GreenBeamAttack, 0.0f) : kAttackControlPoints - vec4(0.0f, params.GreenBeamAttack, 0.0f, 0.0f);
|
float inner_attack = clamp(params.GreenBeamAttack, 0.0f, 1.0);
|
||||||
|
float outer_attack = clamp(params.GreenBeamAttack - 1.0f, 0.0f, 1.0);
|
||||||
|
|
||||||
|
return falloff ? kFallOffControlPoints + vec4(0.0f, outer_attack, inner_attack, 0.0f) : kAttackControlPoints - vec4(0.0f, inner_attack, outer_attack, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
vec4 BlueBeamControlPoints(const bool falloff)
|
vec4 BlueBeamControlPoints(const bool falloff)
|
||||||
{
|
{
|
||||||
return falloff ? kFallOffControlPoints + vec4(0.0f, 0.0f, params.BlueBeamAttack, 0.0f) : kAttackControlPoints - vec4(0.0f, params.BlueBeamAttack, 0.0f, 0.0f);
|
float inner_attack = clamp(params.BlueBeamAttack, 0.0f, 1.0);
|
||||||
|
float outer_attack = clamp(params.BlueBeamAttack - 1.0f, 0.0f, 1.0);
|
||||||
|
|
||||||
|
return falloff ? kFallOffControlPoints + vec4(0.0f, outer_attack, inner_attack, 0.0f) : kAttackControlPoints - vec4(0.0f, inner_attack, outer_attack, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
float Bezier(const float t0, const vec4 control_points)
|
float Bezier(const float t0, const vec4 control_points)
|
||||||
|
|
|
@ -18,6 +18,6 @@
|
||||||
#pragma parameter LCDSubpixel " Display's Subpixel Layout: RGB/BGR" 0.0 0.0 1.0 1.0
|
#pragma parameter LCDSubpixel " Display's Subpixel Layout: RGB/BGR" 0.0 0.0 1.0 1.0
|
||||||
#pragma parameter Contrast " Contrast" -0.3 -3.0 3.0 0.05
|
#pragma parameter Contrast " Contrast" -0.3 -3.0 3.0 0.05
|
||||||
#pragma parameter ExpandGamut " Original/Vivid" 0.0 0.0 1.0 1.0
|
#pragma parameter ExpandGamut " Original/Vivid" 0.0 0.0 1.0 1.0
|
||||||
#pragma parameter RedConvergence " Red Convergence" -0.50 -10.0 10.0 0.05
|
#pragma parameter RedConvergence " Red Convergence" 0.00 -10.0 10.0 0.05
|
||||||
#pragma parameter GreenConvergence " Green Convergence" 0.00 -10.0 10.0 0.05
|
#pragma parameter GreenConvergence " Green Convergence" 0.00 -10.0 10.0 0.05
|
||||||
#pragma parameter BlueConvergence " Blue Convergence" 0.00 -10.0 10.0 0.05
|
#pragma parameter BlueConvergence " Blue Convergence" 0.00 -10.0 10.0 0.05
|
Loading…
Reference in a new issue