mirror of https://github.com/stenzek/duckstation
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			77 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			HLSL
		
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			HLSL
		
	
/*
 | 
						|
    Scanlines Sine Absolute Value
 | 
						|
    An ultra light scanline shader
 | 
						|
    by RiskyJumps
 | 
						|
	license: public domain
 | 
						|
*/
 | 
						|
 | 
						|
#include "ReShade.fxh"
 | 
						|
 | 
						|
uniform float texture_sizeY <
 | 
						|
	ui_type = "drag";
 | 
						|
	ui_min = 1.0;
 | 
						|
	ui_max = BUFFER_HEIGHT;
 | 
						|
	ui_label = "Scanlines Height [Scanlines-Absolute]";
 | 
						|
> = 240.0;
 | 
						|
 | 
						|
uniform float amp <
 | 
						|
	ui_type = "drag";
 | 
						|
	ui_min = 0.0;
 | 
						|
	ui_max = 2.0;
 | 
						|
	ui_step = 0.05;
 | 
						|
	ui_label = "Amplitude [Scanlines-Absolute]";
 | 
						|
> = 1.25;
 | 
						|
 | 
						|
uniform float phase <
 | 
						|
	ui_type = "drag";
 | 
						|
	ui_min = 0.0;
 | 
						|
	ui_max = 2.0;
 | 
						|
	ui_step = 0.05;
 | 
						|
	ui_label = "Phase [Scanlines-Absolute]";
 | 
						|
> = 0.0;
 | 
						|
 | 
						|
uniform float lines_black <
 | 
						|
	ui_type = "drag";
 | 
						|
	ui_min = 0.0;
 | 
						|
	ui_max = 1.0;
 | 
						|
	ui_step = 0.05;
 | 
						|
	ui_label = "Lines Blacks [Scanlines-Absolute]";
 | 
						|
> = 0.0;
 | 
						|
 | 
						|
uniform float lines_white <
 | 
						|
	ui_type = "drag";
 | 
						|
	ui_min = 0.0;
 | 
						|
	ui_max = 2.0;
 | 
						|
	ui_step = 0.05;
 | 
						|
	ui_label = "Lines Whites [Scanlines-Absolute]";
 | 
						|
> = 1.0;
 | 
						|
 
 | 
						|
#define freq             0.500000
 | 
						|
#define offset           0.000000
 | 
						|
#define pi               3.141592654
 | 
						|
 | 
						|
float4 PS_ScanlinesAbs(float4 pos : SV_POSITION, float2 tex : TEXCOORD0) : SV_TARGET 
 | 
						|
{
 | 
						|
    float3 color = tex2D(ReShade::BackBuffer, tex).xyz;
 | 
						|
    float grid;
 | 
						|
 
 | 
						|
    float lines;
 | 
						|
	
 | 
						|
	float omega = 2.0 * pi * freq;  // Angular frequency
 | 
						|
	float angle = tex.y * omega * texture_sizeY + phase;
 | 
						|
 
 | 
						|
    lines = sin(angle);
 | 
						|
    lines *= amp;
 | 
						|
    lines += offset;
 | 
						|
    lines = abs(lines) * (lines_white - lines_black) + lines_black;
 | 
						|
    color *= lines;
 | 
						|
 
 | 
						|
    return color.xyzz;
 | 
						|
}
 | 
						|
 | 
						|
technique ScanlinesAbs {
 | 
						|
	pass ScanlinesAbsolute{
 | 
						|
		VertexShader = PostProcessVS;
 | 
						|
		PixelShader = PS_ScanlinesAbs;
 | 
						|
	}
 | 
						|
} |