mirror of
https://github.com/italicsjenga/slang-shaders.git
synced 2024-11-23 00:01:31 +11:00
79 lines
3.1 KiB
Plaintext
79 lines
3.1 KiB
Plaintext
/*
|
|
A group of shaders that tries to emulate a sony PVM type aperture grille screen but with full brightness.
|
|
|
|
The novel thing about this group of shaders 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 aperture grille 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 HDR 700 monitors does seem to get reasonably close to the brightness of my PVM's - its not quite there but its close.
|
|
|
|
To use:
|
|
Please Enable HDR in RetroArch,
|
|
|
|
You'll need a version of RetroArch post Christmas 2021 that disables the HDR chain when it detects a HDR render target in the render chain
|
|
|
|
NOTE: when the hdr10 and inverse_tonemap shaders are envoked the Peak Luminance and Paper White Luminance in the menu *do nothing* instead set those values through the 'Shader Parameters' instead
|
|
|
|
Set Peak Luminance to the 'Peak Luminance' of your monitor and set Paper White Luminance to roughly half dependent on the game and the monitor.
|
|
|
|
Also try to use a integer scaling - its just better - overscaling is fine/great.
|
|
|
|
This shader doesn't do any geometry warping or bouncing of light around inside the screen - I think these effects just add unwanted noise, I know people disagree. Please feel free to make you own and add them
|
|
|
|
Works only with the D3D11/D3D12 drivers currently
|
|
|
|
If taking fullscreen at 4K it currently emulates lower than a 600TVL screen - ie 3840(res) / 6(aperture grille pattern) = 640 TVL.
|
|
But 600TVL on a 4:3 TV actually means 800 vertical lines as the TVL figure relates to the screen height across the width.
|
|
|
|
We need 8K to really start to get round the right ballpark. We need 9600 resolution to have the full 12 pixel apperture grille (800TVL * 12 (aperture grille pattern))
|
|
|
|
TODO: Make the horizontal scanlines more blurry in the vertical direction - we're working in HDR space at this point so its trickier than normal.
|
|
*/
|
|
|
|
shaders = "4"
|
|
feedback_pass = "0"
|
|
|
|
shader0 = "../../slang-shaders/stock.slang"
|
|
filter_linear0 = false
|
|
wrap_mode0 = "clamp_to_border"
|
|
mipmap_input0 = "false"
|
|
alias0 = "StockPass"
|
|
float_framebuffer0 = "false"
|
|
srgb_framebuffer0 = "false"
|
|
scale_type_x0 = "source"
|
|
scale_x0 = "1.000000"
|
|
scale_type_y0 = "source"
|
|
scale_y0 = "1.000000"
|
|
|
|
shader1 = "../../slang-shaders/misc/inverse_tonemap.slang"
|
|
filter_linear1 = "false"
|
|
wrap_mode1 = "clamp_to_border"
|
|
mipmap_input1 = "false"
|
|
alias1 = ""
|
|
float_framebuffer1 = "false"
|
|
srgb_framebuffer1 = "false"
|
|
scale_type_x1 = "source"
|
|
scale_x1 = "1.000000"
|
|
scale_type_y1 = "source"
|
|
scale_y1 = "1.000000"
|
|
|
|
shader2 = "../../slang-shaders/misc/hdr10.slang"
|
|
filter_linear2 = "false"
|
|
wrap_mode2 = "clamp_to_border"
|
|
mipmap_input2 = "false"
|
|
alias2 = ""
|
|
float_framebuffer2 = "false"
|
|
srgb_framebuffer2 = "false"
|
|
scale_type_x2 = "source"
|
|
scale_x2 = "1.000000"
|
|
scale_type_y2 = "source"
|
|
scale_y2 = "1.000000"
|
|
|
|
shader3 = "../../slang-shaders/crt/shaders/crt-sony-pvm-4k-hdr.slang"
|
|
filter_linear3 = "false"
|
|
wrap_mode3 = "clamp_to_border"
|
|
mipmap_input3 = "false"
|
|
alias3 = ""
|
|
float_framebuffer3 = "false"
|
|
srgb_framebuffer3 = "false"
|
|
ScanlineWidth = "1.000000"
|