mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 03:55:46 -04:00
Data: Add reshade-shaders (mainly headers)
This commit is contained in:
80
data/resources/shaders/reshade/Shaders/LUT.fx
Normal file
80
data/resources/shaders/reshade/Shaders/LUT.fx
Normal file
@ -0,0 +1,80 @@
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// ReShade effect file
|
||||
// visit facebook.com/MartyMcModding for news/updates
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// Marty's LUT shader 1.0 for ReShade 3.0
|
||||
// Copyright © 2008-2016 Marty McFly
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
#ifndef fLUT_TextureName
|
||||
#define fLUT_TextureName "lut.png"
|
||||
#endif
|
||||
#ifndef fLUT_TileSizeXY
|
||||
#define fLUT_TileSizeXY 32
|
||||
#endif
|
||||
#ifndef fLUT_TileAmount
|
||||
#define fLUT_TileAmount 32
|
||||
#endif
|
||||
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
//
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
#include "ReShadeUI.fxh"
|
||||
|
||||
uniform float fLUT_AmountChroma < __UNIFORM_SLIDER_FLOAT1
|
||||
ui_min = 0.00; ui_max = 1.00;
|
||||
ui_label = "LUT chroma amount";
|
||||
ui_tooltip = "Intensity of color/chroma change of the LUT.";
|
||||
> = 1.00;
|
||||
|
||||
uniform float fLUT_AmountLuma < __UNIFORM_SLIDER_FLOAT1
|
||||
ui_min = 0.00; ui_max = 1.00;
|
||||
ui_label = "LUT luma amount";
|
||||
ui_tooltip = "Intensity of luma change of the LUT.";
|
||||
> = 1.00;
|
||||
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
//
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
#include "ReShade.fxh"
|
||||
texture texLUT < source = fLUT_TextureName; > { Width = fLUT_TileSizeXY*fLUT_TileAmount; Height = fLUT_TileSizeXY; Format = RGBA8; };
|
||||
sampler SamplerLUT { Texture = texLUT; };
|
||||
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
//
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
void PS_LUT_Apply(float4 vpos : SV_Position, float2 texcoord : TEXCOORD, out float4 res : SV_Target0)
|
||||
{
|
||||
float4 color = tex2D(ReShade::BackBuffer, texcoord.xy);
|
||||
float2 texelsize = 1.0 / fLUT_TileSizeXY;
|
||||
texelsize.x /= fLUT_TileAmount;
|
||||
|
||||
float3 lutcoord = float3((color.xy*fLUT_TileSizeXY-color.xy+0.5)*texelsize.xy,color.z*fLUT_TileSizeXY-color.z);
|
||||
float lerpfact = frac(lutcoord.z);
|
||||
lutcoord.x += (lutcoord.z-lerpfact)*texelsize.y;
|
||||
|
||||
float3 lutcolor = lerp(tex2D(SamplerLUT, lutcoord.xy).xyz, tex2D(SamplerLUT, float2(lutcoord.x+texelsize.y,lutcoord.y)).xyz,lerpfact);
|
||||
|
||||
color.xyz = lerp(normalize(color.xyz), normalize(lutcolor.xyz), fLUT_AmountChroma) *
|
||||
lerp(length(color.xyz), length(lutcolor.xyz), fLUT_AmountLuma);
|
||||
|
||||
res.xyz = color.xyz;
|
||||
res.w = 1.0;
|
||||
}
|
||||
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
//
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
|
||||
technique LUT
|
||||
{
|
||||
pass LUT_Apply
|
||||
{
|
||||
VertexShader = PostProcessVS;
|
||||
PixelShader = PS_LUT_Apply;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user