mirror of
https://github.com/italicsjenga/slang-shaders.git
synced 2024-11-25 08:51:32 +11:00
92 lines
3.4 KiB
C++
92 lines
3.4 KiB
C++
layout(push_constant) uniform Push
|
|
{
|
|
float phosphor_power;
|
|
float phosphor_amplitude;
|
|
float CRTgamma;
|
|
float width;
|
|
float aspect_x;
|
|
float aspect_y;
|
|
float d;
|
|
float R;
|
|
float angle_x;
|
|
float angle_y;
|
|
float aperture_strength;
|
|
float aperture_brightboost;
|
|
float halation;
|
|
float curvature;
|
|
float cornersize;
|
|
float cornersmooth;
|
|
float overscan_x;
|
|
float overscan_y;
|
|
float monitorgamma;
|
|
float mask_type;
|
|
float SHARPER;
|
|
float scanline_weight;
|
|
float geom_lum;
|
|
float interlace_detect;
|
|
float rasterbloom_smooth;
|
|
float rasterbloom;
|
|
} params;
|
|
|
|
layout(std140, set = 0, binding = 0) uniform UBO
|
|
{
|
|
vec4 SourceSize;
|
|
vec4 OriginalSize;
|
|
vec4 OutputSize;
|
|
uint FrameCount;
|
|
vec4 FinalViewportSize;
|
|
vec4 internal1Size;
|
|
mat4 MVP;
|
|
} global;
|
|
|
|
#pragma parameter mask_type "Mask Pattern" 1.0 1.0 20.0 1.0
|
|
#pragma parameter aperture_strength "Shadow mask strength" 0.4 0.0 1.0 0.05
|
|
#pragma parameter aperture_brightboost "Shadow mask brightness boost" 0.4 0.0 1.0 0.05
|
|
#pragma parameter phosphor_power "Phosphor decay power" 1.2 0.5 3.0 0.05
|
|
#pragma parameter phosphor_amplitude "Phosphor persistence amplitude" 0.04 0.0 0.2 0.01
|
|
#pragma parameter CRTgamma "Gamma of simulated CRT" 2.4 0.7 4.0 0.05
|
|
//#pragma parameter rasterbloom_smooth "Raster bloom temporal smoothing" 0.5 0.0 0.99 0.01
|
|
#pragma parameter rasterbloom "Raster bloom amplitude" 0.1 0.0 1.0 0.01
|
|
#pragma parameter halation "Halation amplitude" 0.1 0.0 0.3 0.01
|
|
#pragma parameter width "Halation blur width" 2.0 0.1 4.0 0.1
|
|
#pragma parameter curvature "Enable Curvature" 1.0 0.0 1.0 1.0
|
|
#pragma parameter R "Radius of curvature" 3.5 0.5 10.0 0.1
|
|
#pragma parameter d "Distance to screen" 2.0 0.1 10.0 0.1
|
|
#pragma parameter angle_x "Tilt X" 0.0 -1.0 1.0 0.01
|
|
#pragma parameter angle_y "Tilt Y" 0.0 -1.0 1.0 0.01
|
|
#pragma parameter cornersize "Rounded corner size" 0.01 0.00 0.10 0.01
|
|
#pragma parameter cornersmooth "Border smoothness" 1000.0 100.0 2000.0 100.0
|
|
#pragma parameter overscan_x "Overscan X" 1.0 0.8 1.2 0.005
|
|
#pragma parameter overscan_y "Overscan Y" 1.0 0.8 1.2 0.005
|
|
#pragma parameter monitorgamma "Gamma of output display" 2.2 0.7 4.0 0.05
|
|
#pragma parameter aspect_x "Aspect ratio X" 1.0 0.3 1.0 0.01
|
|
#pragma parameter aspect_y "Aspect ratio Y" 0.75 0.3 1.0 0.01
|
|
#pragma parameter scanline_weight "CRTGeom Scanline Weight" 0.3 0.1 0.5 0.01
|
|
#pragma parameter geom_lum "CRTGeom Luminance" 0.0 0.0 1.0 0.01
|
|
#pragma parameter interlace_detect "CRTGeom Interlacing Simulation" 1.0 0.0 1.0 1.0
|
|
|
|
#define phosphor_power params.phosphor_power
|
|
#define phosphor_amplitude params.phosphor_amplitude
|
|
#define CRTgamma params.CRTgamma
|
|
#define width params.width
|
|
#define curvature params.curvature
|
|
#define d params.d
|
|
#define cornersize params.cornersize
|
|
#define cornersmooth params.cornersmooth
|
|
#define monitorgamma params.monitorgamma
|
|
#define halation params.halation
|
|
#define aperture_strength params.aperture_strength
|
|
#define aperture_brightboost params.aperture_brightboost
|
|
#define geom_lum params.geom_lum
|
|
#define scanline_weight params.scanline_weight
|
|
#define interlace_detect params.interlace_detect
|
|
//#define rasterbloom_smooth params.rasterbloom_smooth
|
|
#define rasterbloom (params.rasterbloom / 10.0)
|
|
vec2 aspect = vec2(params.aspect_x, params.aspect_y);
|
|
vec2 angle = vec2(params.angle_x, params.angle_y);
|
|
vec2 overscan = vec2(params.overscan_x, params.overscan_y);
|
|
int mask_picker = int(params.mask_type);
|
|
vec4 blurwidth = vec4(width);
|
|
|
|
const float gamma = 2.2;
|