Updated Clarity, merged all presets into one shader.  Folder just there for time being.
This commit is contained in:
Jamie 2018-01-24 18:08:08 -08:00
parent 7427aeb73e
commit bf7fcd614b
14 changed files with 1392 additions and 719 deletions

View File

@ -1,39 +1,42 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
// shader 37040a485a29d54e // shader 37040a485a29d54e
//##########################################################
// Possible problems #define Preset 3 // 0 - 8:
// Being below 1.3.3 will give you double-vision with recent graphic packs. Update to 1.3.0 or above. // User Defined 0
// If you're experiencing any issues (due to having the previous Clarity shaders installed), please remove and redownload all of the BotW packs. // Bruz Option 1
// Clarity GFX // BSOD Option 2
// Credit to Jamie for main coding. // Clarity Option 3 (Jamie Default)
// Credit to Kiri coding & Reshade logic. // Contrasty Option 4
// Credit to Cremtif for Help. // Serfrost Option 5
// Credit to Serfrost for preset values. // Sharpen Only Option 6
// Shader dumped from Cemu 1.11.2 from BotW 1.4.0 // The Complaning Gamer Option 7
// v 2.0 // Fillmic Preset Option 8 (kinda broken atm will fix)
// Add 1.4.0 support //##########################################################
#if (Preset == 0)
// User Defined
//########################################################## //##########################################################
#define adjust_bloom 1 // 0: disable, 1: enable. #define adjust_bloom 1 // 0: disable, 1: enable.
//BloomFactor //BloomFactor
const float bloomFactor = 0.197; // Default is 0.020 (rough estimate based on Switch) const float bloomFactor = 0.020; // Default is 0.020 (rough estimate based on Switch)
#define HDRpassing 1 // 0: disable, 1: enable. #define HDRpassing 0 // 0: disable, 1: enable.
//Fake High Dynamic Range. //Fake High Dynamic Range.
const float HDRPower = 1.00; // 0.0 to 8.0 Default 1.30. const float HDRPower = 1.00; // 0.0 to 8.0 Default 1.30.
const float radius1 = 1.00; // 0.0 to 8.0 Default 0.793 const float radius1 = 1.00; // 0.0 to 8.0 Default 0.793
const float radius2 = 0.80; // 0.0 to 8.0 Default 0.87 "Raising this seems to make the effect stronger and also brighter." const float radius2 = 0.80; // 0.0 to 8.0 Default 0.87 "Raising this seems to make the effect stronger and also brighter."
#define lumapassing 1 // 0: disable, 1: enable. #define lumapassing 0 // 0: disable, 1: enable.
//LumaShapening //LumaShapening
const float sharp_strength = 0.65; //[0.10 to 3.00] Strength of the sharpening Default is 0.65 const float sharp_strength = 0.35; //[0.10 to 3.00] Strength of the sharpening Default is 0.65
const float sharp_clamp = 0.035; //[0.000 to 1.000] Limits maximum amount of sharpening a pixel recieves - Default is 0.035 const float sharp_clamp = 0.85; //[0.000 to 1.000] Limits maximum amount of sharpening a pixel recieves - Default is 0.035
//Advanced sharpening settings //Advanced sharpening settings
const float offset_bias = 1.0; //[0.0 to 6.0] Offset bias adjusts the radius of the sampling pattern. const float offset_bias = 1.0; //[0.0 to 6.0] Offset bias adjusts the radius of the sampling pattern.
#define Tone_map 1 // 0: disable, 1-8: enable. #define Tone_map 0 // 0: disable, -1 to 9: enable.
// -1: disable, loss of bright detail/color but keep [0,1] intact
// 0: (Wii U) BotW original
// Reshade ToneMap Option 1 // Reshade ToneMap Option 1
// linearToneMapping Option 2 // linearToneMapping Option 2
// simpleReinhardToneMapping Option 3 // simpleReinhardToneMapping Option 3
@ -43,27 +46,33 @@ const float offset_bias = 1.0; //[0.0 to 6.0] Offset bia
// filmicToneMapping Option 7 // filmicToneMapping Option 7
// Uncharted2ToneMapping Option 8 // Uncharted2ToneMapping Option 8
// ACES Filmic Option 9 // ACES Filmic Option 9
// Reshade ToneMap Controls // Reshade ToneMap Controls / "Contrasty" Parameters
const float Exposure = 1.17; // [0.0, 1.0+] Adjust exposure const float Exposure = 1.17; // [0.0, 1.0+] Adjust exposure
const float Bleach = 0.0; // "More bleach means more contrasted and less colorful image" min -0.5 max 1.0 Default 0.0 const float Bleach = 0.4; // "More bleach means more contrasted and less colorful image" min -0.5 max 1.0 Default 0.0
const float Gamma = 1.0; // "Adjust midtones. 1.000 is neutral. This setting does exactly the same as the one in Lift Gamma Gain, only with less control." const float Gamma = 1.00; // "Adjust midtones. 1.000 is neutral. This setting does exactly the same as the one in Lift Gamma Gain, only with less control."
const float defog = 0.004; // Default is 0.0 //How much of the overall color you want removed form the values of FogColor. const float defog = 0.00; // Default is 0.0 //How much of the overall color you want removed form the values of FogColor.
vec3 FogColor = vec3(1.0, 1.5, 1.7); // Color you want to Add or Remove 0.25 would add .25 percent of that color 1.25 would remove .25 percent of the color." vec3 FogColor = vec3(1.0, 1.0, 1.0); // Color you want to Add or Remove 0.25 would add .25 percent of that color 1.25 would remove .25 percent of the color."
const float sat = 0.000; // "Adjust saturation" min -1.0 max 1.0 Default 0.0 const float sat = 0.000; // "Adjust saturation" min -1.0 max 1.0 Default 0.0
const float crushContrast = 0.000; // 0.0 is neutral. Use small increments, loss of shadow detail
#define post_process 0
//----------------"BotW original" vibrance adjust-------------//
const float satFactor = 0.25; // 0.18 is neutral. Experimental, adjust native saturation
//---------------------------------------------------------------//
#define blacknwhitepass 0 // 0: disable, 1: enable. #define blacknwhitepass 0 // 0: disable, 1: enable.
// Levels Control // Levels Control
const int BlackPoint = 16; // [0, 255] The black point is the new black - literally. Everything darker than this will become completely black const int BlackPoint = 16; // [0, 255] The black point is the new black - literally. Everything darker than this will become completely black
const int WhitePoint = 235; // [0, 255] The new white point. Everything brighter than this becomes completely white const int WhitePoint = 235; // [0, 255] The new white point. Everything brighter than this becomes completely white
#define lggpass 1 // 0: disable, 1: enable. #define lggpass 0 // 0: disable, 1: enable.
//Lift Gamma Gain //Lift Gamma Gain
vec3 RGB_Lift = vec3(1.000, 1.000, 1.000); // [0.000 to 2.000] Adjust shadows for Red, Green and Blue. vec3 RGB_Lift = vec3(1.000, 1.000, 1.000); // [0.000 to 2.000] Adjust shadows for Red, Green and Blue.
vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000); // [0.000 to 2.000] Adjust midtones for Red, Green and Blue vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000); // [0.000 to 2.000] Adjust midtones for Red, Green and Blue
vec3 RGB_Gain = vec3(1.000, 1.000, 1.000); // [0.000 to 2.000] Adjust highlights for Red, Green and Blue vec3 RGB_Gain = vec3(1.000, 1.000, 1.000); // [0.000 to 2.000] Adjust highlights for Red, Green and Blue
// Note that a value of 1.0 is a neutral setting that leave the color unchanged. // Note that a value of 1.0 is a neutral setting that leave the color unchanged.
#define vibpass 1 // 0: disable, 1: enable. #define vibpass 0 // 0: disable, 1: enable.
//VibrancePass //VibrancePass
const float Vibrance = 0.150; // Default [0.150] "Intelligently saturates (or desaturates if you use negative values) the pixels depending on their original saturation." const float Vibrance = 0.150; // Default [0.150] "Intelligently saturates (or desaturates if you use negative values) the pixels depending on their original saturation."
vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); // "A per channel multiplier to the Vibrance strength so you can give more boost to certain colors over others."; vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); // "A per channel multiplier to the Vibrance strength so you can give more boost to certain colors over others.";
@ -76,20 +85,27 @@ float Strength = 0.20; // Min 0.0 Max 1.0 Defaul
#define Techine 0 // 0: disable, 1: enable. #define Techine 0 // 0: disable, 1: enable.
//Technicolor2 //Technicolor2
const float Technicolor2_Red_Strength = 0.2; // "Higher means darker and more intense colors." Default 0.2 const float Technicolor2_Red_Strength = 0.02; // "Higher means darker and more intense colors." Default 0.2
const float Technicolor2_Green_Strength = 0.2; // "Higher means darker and more intense colors." Default 0.2 const float Technicolor2_Green_Strength = 0.02; // "Higher means darker and more intense colors." Default 0.2
const float Technicolor2_Blue_Strength = 0.2; // "Higher means darker and more intense colors." Default 0.2 const float Technicolor2_Blue_Strength = 0.02; // "Higher means darker and more intense colors." Default 0.2
const float Technicolor2_Brightness = 1.0; // "Higher means brighter image." min 0.5 max 1.5 Default 1.0 const float Technicolor2_Brightness = 1.00; // "Higher means brighter image." min 0.5 max 1.5 Default 1.0
const float Technicolor2_Strength = 1.0; // [Default is 1.0] const float Technicolor2_Strength = 1.00; // [Default is 1.0]
const float Technicolor2_Saturation = 1.0; // Default is 1.0 min 0.0 max 1.5 "Additional saturation control since this effect tends to oversaturate the image." const float Technicolor2_Saturation = 1.00; // Default is 1.0 min 0.0 max 1.5 "Additional saturation control since this effect tends to oversaturate the image."
#define cmatrix 0
//Color Matrix
vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000);
vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000);
vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875);
float CM_Strength = 1.0;
//Curves Contrast //Curves Contrast
#define CurvesPss 1 // 0: disable, 1: enable. #define CurvesPss 0 // 0: disable, 1: enable.
const float Contrast = 0.65; // Default 0.65 min -1.0 max = 1.0 "The amount of contrast you want." const float Contrast = 0.65; // Default 0.65 min -1.0 max = 1.0 "The amount of contrast you want."
#define Filmicpass 0 // 0: disable, 1: enable. #define Filmicpass 0 // 0: disable, 1: enable.
//Filmic Pass //Filmic Pass
const float Filmic_Contrast = 1.00; // Default 1.0 min 0.5 max 2.0 const float Filmic_Contrast = 1.0; // Default 1.0 min 0.5 max 2.0
const float Filmic_Bleach = 0.0; // "More bleach means more contrasted and less colorful image" min -0.5 max 1.0 Default 0.0 const float Filmic_Bleach = 0.0; // "More bleach means more contrasted and less colorful image" min -0.5 max 1.0 Default 0.0
const float Saturation = -0.15; // min -1.0 max 1.0 Default -0.15 const float Saturation = -0.15; // min -1.0 max 1.0 Default -0.15
@ -101,10 +117,547 @@ const float BaseCurve = 1.5; // min 0.0 max 2.0 Defaul
const float BaseGamma = 1.00; // min 0.7 max 2.0 Default 1.0 const float BaseGamma = 1.00; // min 0.7 max 2.0 Default 1.0
const float EffectGamma = 0.68; // min 0.0 max 2.0 Default 0.68 const float EffectGamma = 0.68; // min 0.0 max 2.0 Default 0.68
#define dpxpass 0
//DPX
vec3 RGB_Curve = vec3(8.0, 8.0, 8.0);
vec3 RGB_C = vec3(0.36, 0.36, 0.34);
float DPX_Contrast = 0.1;
float DPX_Saturation = 3.0;
float Colorfulness = 2.5;
float DPX_Strength = 0.20;
//########################################################### //###########################################################
//Do not edit under this line. //Do not edit under this line.
//Presets
#elif (Preset == 1)
#define adjust_bloom 1
const float bloomFactor = 0.30;
#define HDRpassing 1
float HDRPower = 1.15;
float radius1 = 0.793;
float radius2 = 0.87;
#define lumapassing 1
float sharp_strength = 0.65;
float sharp_clamp = 0.035;
float offset_bias = 1.0;
#define Tone_map 8
const float Exposure = 1.17;
const float Bleach = 0.4;
const float Gamma = 1.00;
const float defog = 0.00;
vec3 FogColor = vec3(1.0, 1.0, 1.0);
const float sat = 0.000;
const float crushContrast = 0.000;
#define post_process 0
const float satFactor = 0.25;
#define blacknwhitepass 1
const int BlackPoint = 15;
const int WhitePoint = 200;
#define lggpass 1
vec3 RGB_Lift = vec3(1.00, 1.00, 1.00);
vec3 RGB_Gamma = vec3(1.0, 1.0, 1.1);
vec3 RGB_Gain = vec3(1.10, 1.10, 1.10);
#define vibpass 0
const float Vibrance = 0.150;
vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0);
#define Tech 1
const float Power = 8.0;
vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88);
float Strength = 0.30;
#define Techine 1
float Technicolor2_Red_Strength = 0.35;
float Technicolor2_Green_Strength = 0.35;
float Technicolor2_Blue_Strength = 0.35;
float Technicolor2_Brightness = 1.0;
float Technicolor2_Strength = 1.0;
float Technicolor2_Saturation = 1.0;
#define cmatrix 0
vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000);
vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000);
vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875);
float CM_Strength = 1.0;
#define CurvesPss 0
const float Contrast = 0.65;
#define Filmicpass 1
const float Filmic_Strength = 0.60;
const float Filmic_Contrast = 1.03;
const float Fade = 0.0;
const float Linearization = 1.0;
const float Filmic_Bleach = 0.0;
const float Saturation = -0.15;
const float BaseCurve = 1.5;
const float BaseGamma = 1.0;
const float EffectGamma = 0.68;
#define dpxpass 0
vec3 RGB_Curve = vec3(8.0, 8.0, 8.0);
vec3 RGB_C = vec3(0.36, 0.36, 0.34);
float DPX_Contrast = 0.1;
float DPX_Saturation = 3.0;
float Colorfulness = 2.5;
float DPX_Strength = 0.20;
#elif (Preset == 2)
#define adjust_bloom 1
const float bloomFactor = 0.20;
#define HDRpassing 1
const float HDRPower = 1.015;
const float radius1 = 0.793;
const float radius2 = 0.87;
#define lumapassing 1
const float sharp_strength = 0.25;
const float sharp_clamp = 0.085;
const float offset_bias = 1.0;
#define Tone_map 1
const float Exposure = 1.00;
const float Bleach = 0.3;
const float Gamma = 1.13;
const float defog = 0.004;
vec3 FogColor = vec3(1.0, 1.5, 1.7);
const float sat = 0.000;
const float crushContrast = 0.000;
#define post_process 0
const float satFactor = 0.25;
#define blacknwhitepass 0
const int BlackPoint = 16;
const int WhitePoint = 235;
#define lggpass 1
vec3 RGB_Lift = vec3(1.05, 1.05, 1.05);
vec3 RGB_Gamma = vec3(0.70, 0.70, 0.70);
vec3 RGB_Gain = vec3(1.05, 1.05, 1.05);
#define vibpass 1
const float Vibrance = 0.150;
vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0);
#define Tech 0
const float Power = 4.0;
vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88);
float Strength = 0.20;
#define Techine 1
const float Technicolor2_Red_Strength = 0.000;
const float Technicolor2_Green_Strength = 0.000;
const float Technicolor2_Blue_Strength = 0.000;
const float Technicolor2_Brightness = 1.0;
const float Technicolor2_Strength = 0.40;
const float Technicolor2_Saturation = 0.70;
#define cmatrix 0
vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000);
vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000);
vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875);
float CM_Strength = 1.0;
#define CurvesPss 1
const float Contrast = 0.65;
#define Filmicpass 0
const float Filmic_Contrast = 1.0;
const float Filmic_Bleach = 0.0;
const float Saturation = -0.15;
const float Filmic_Strength = 0.85;
const float Fade = 0.4;
const float Linearization = 0.5;
const float BaseCurve = 1.5;
const float BaseGamma = 1.00;
const float EffectGamma = 0.68;
#define dpxpass 0
vec3 RGB_Curve = vec3(8.0, 8.0, 8.0);
vec3 RGB_C = vec3(0.36, 0.36, 0.34);
float DPX_Contrast = 0.1;
float DPX_Saturation = 3.0;
float Colorfulness = 2.5;
float DPX_Strength = 0.20;
#elif (Preset == 3)
const float bloomFactor = 0.020;
#define HDRpassing 1
const float HDRPower = 1.00;
const float radius1 = 1.00;
const float radius2 = 0.80;
#define lumapassing 1
const float sharp_strength = 0.35;
const float sharp_clamp = 0.85;
const float offset_bias = 1.0;
#define Tone_map 8
const float Exposure = 1.17;
const float Bleach = 0.4;
const float Gamma = 1.00;
const float defog = 0.00;
vec3 FogColor = vec3(1.0, 1.0, 1.0);
const float sat = 0.000;
const float crushContrast = 0.000;
#define post_process 1
const float satFactor = 0.25;
#define blacknwhitepass 0
const int BlackPoint = 16;
const int WhitePoint = 235;
#define lggpass 1
vec3 RGB_Lift = vec3(0.980, 0.980, 0.980);
vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000);
vec3 RGB_Gain = vec3(1.000, 1.000, 1.000);
#define vibpass 1
const float Vibrance = 0.150;
vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0);
#define Tech 0
const float Power = 4.0;
vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88);
float Strength = 0.20;
#define Techine 0
const float Technicolor2_Red_Strength = 0.02;
const float Technicolor2_Green_Strength = 0.02;
const float Technicolor2_Blue_Strength = 0.02;
const float Technicolor2_Brightness = 1.00;
const float Technicolor2_Strength = 1.00;
const float Technicolor2_Saturation = 1.00;
#define cmatrix 0
vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000);
vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000);
vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875);
float CM_Strength = 1.0;
#define CurvesPss 1
const float Contrast = 0.65;
#define Filmicpass 0
const float Filmic_Contrast = 1.0;
const float Filmic_Bleach = 0.0;
const float Saturation = -0.15;
const float Filmic_Strength = 0.85;
const float Fade = 0.4;
const float Linearization = 0.5;
const float BaseCurve = 1.5;
const float BaseGamma = 1.00;
const float EffectGamma = 0.68;
#define dpxpass 1
vec3 RGB_Curve = vec3(8.0, 8.0, 8.0);
vec3 RGB_C = vec3(0.36, 0.36, 0.34);
float DPX_Contrast = 0.1;
float DPX_Saturation = 3.0;
float Colorfulness = 2.5;
float DPX_Strength = 0.20;
#elif (Preset == 4)
#define adjust_bloom 1
const float bloomFactor = 0.020;
#define HDRpassing 0
const float HDRPower = 1.00;
const float radius1 = 1.00;
const float radius2 = 0.80;
#define lumapassing 0
const float sharp_strength = 0.35;
const float sharp_clamp = 0.85;
const float offset_bias = 1.0;
#define Tone_map 1
const float Exposure = 1.17;
const float Bleach = 0.3;
const float Gamma = 0.810;
const float defog = 0.00;
vec3 FogColor = vec3(1.0, 1.0, 1.0);
const float sat = 0.000;
const float crushContrast = 0.000;
#define post_process 1
const float satFactor = 0.25;
#define blacknwhitepass 0
const int BlackPoint = 16;
const int WhitePoint = 235;
#define lggpass 0
vec3 RGB_Lift = vec3(1.000, 1.000, 1.000);
vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000);
vec3 RGB_Gain = vec3(1.000, 1.000, 1.000);
#define vibpass 0
const float Vibrance = 0.150;
vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0);
#define Tech 0
const float Power = 4.0;
vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88);
float Strength = 0.20;
#define Techine 0
const float Technicolor2_Red_Strength = 0.02;
const float Technicolor2_Green_Strength = 0.02;
const float Technicolor2_Blue_Strength = 0.02;
const float Technicolor2_Brightness = 1.00;
const float Technicolor2_Strength = 1.00;
const float Technicolor2_Saturation = 1.00;
#define cmatrix 0
vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000);
vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000);
vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875);
float CM_Strength = 1.0;
#define CurvesPss 1
const float Contrast = 0.65;
#define Filmicpass 0
const float Filmic_Contrast = 1.0;
const float Filmic_Bleach = 0.0;
const float Saturation = -0.15;
const float Filmic_Strength = 0.85;
const float Fade = 0.4;
const float Linearization = 0.5;
const float BaseCurve = 1.5;
const float BaseGamma = 1.00;
const float EffectGamma = 0.68;
#define dpxpass 0
vec3 RGB_Curve = vec3(8.0, 8.0, 8.0);
vec3 RGB_C = vec3(0.36, 0.36, 0.34);
float DPX_Contrast = 0.1;
float DPX_Saturation = 3.0;
float Colorfulness = 2.5;
float DPX_Strength = 0.20;
#elif (Preset == 5)
#define adjust_bloom 1
const float bloomFactor = 0.30;
#define HDRpassing 1
const float HDRPower = 1.20;
const float radius1 = 0.793;
const float radius2 = 0.87;
#define lumapassing 1
const float sharp_strength = 0.45;
const float sharp_clamp = 0.85;
const float offset_bias = 1.0;
#define Tone_map 8
const float Exposure = 1.17;
const float Bleach = 0.4;
const float Gamma = 1.00;
const float defog = 0.00;
vec3 FogColor = vec3(1.0, 1.0, 1.0);
const float sat = 0.000;
const float crushContrast = 0.000;
#define post_process 0
const float satFactor = 0.25;
#define blacknwhitepass 1
const int BlackPoint = 2;
const int WhitePoint = 220;
#define lggpass 1
vec3 RGB_Lift = vec3(1.027, 1.035, 1.027);
vec3 RGB_Gamma = vec3(0.83, 0.83, 0.83);
vec3 RGB_Gain = vec3(1.000, 1.10, 1.10);
#define vibpass 1
const float Vibrance = 0.5;
vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.3);
#define Tech 1
const float Power = 6.0;
vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88);
float Strength = 0.30;
#define Techine 1
float Technicolor2_Red_Strength = -0.12;
float Technicolor2_Green_Strength = -0.25;
float Technicolor2_Blue_Strength = -0.15;
float Technicolor2_Brightness = 0.6;
float Technicolor2_Strength = 1.0;
float Technicolor2_Saturation = 0.85;
#define cmatrix 0
vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000);
vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000);
vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875);
float CM_Strength = 1.0;
#define CurvesPss 1
const float Contrast = 0.65;
#define Filmicpass 1
const float Filmic_Contrast = 1.03;
const float Filmic_Bleach = 0.0;
const float Saturation = -0.35;
const float Filmic_Strength = 0.60;
const float Fade = 0.1;
const float Linearization = 1.0;
const float BaseCurve = 1.5;
const float BaseGamma = 1.00;
const float EffectGamma = 0.68;
#define dpxpass 0
vec3 RGB_Curve = vec3(8.0, 8.0, 8.0);
vec3 RGB_C = vec3(0.36, 0.36, 0.34);
float DPX_Contrast = 0.1;
float DPX_Saturation = 3.0;
float Colorfulness = 2.5;
float DPX_Strength = 0.20;
#elif (Preset == 6)
#define adjust_bloom 0
const float bloomFactor = 0.20;
#define HDRpassing 0
const float HDRPower = 1.00;
const float radius1 = 1.00;
const float radius2 = 0.80;
#define lumapassing 1
const float sharp_strength = 1.70;
const float sharp_clamp = 0.35;
const float offset_bias = 1.0;
#define Tone_map 0
const float Exposure = 1.17;
const float Bleach = 0.4;
const float Gamma = 1.00;
const float defog = 0.00;
vec3 FogColor = vec3(1.0, 1.0, 1.0);
const float sat = 0.000;
const float crushContrast = 0.000;
#define post_process 0
const float satFactor = 0.25;
#define blacknwhitepass 0
const int BlackPoint = 16;
const int WhitePoint = 235;
#define lggpass 0
vec3 RGB_Lift = vec3(1.000, 1.000, 1.000);
vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000);
vec3 RGB_Gain = vec3(1.000, 1.000, 1.000);
#define vibpass 0
const float Vibrance = 0.150;
vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0);
#define Tech 0
const float Power = 4.0;
vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88);
float Strength = 0.20;
#define Techine 0
const float Technicolor2_Red_Strength = 0.02;
const float Technicolor2_Green_Strength = 0.02;
const float Technicolor2_Blue_Strength = 0.02;
const float Technicolor2_Brightness = 1.00;
const float Technicolor2_Strength = 1.00;
const float Technicolor2_Saturation = 1.00;
#define cmatrix 0
vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000);
vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000);
vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875);
float CM_Strength = 1.0;
#define CurvesPss 1
const float Contrast = 0.65;
#define Filmicpass 0
const float Filmic_Contrast = 1.0;
const float Filmic_Bleach = 0.0;
const float Saturation = -0.15;
const float Filmic_Strength = 0.85;
const float Fade = 0.4;
const float Linearization = 0.5;
const float BaseCurve = 1.5;
const float BaseGamma = 1.00;
const float EffectGamma = 0.68;
#define dpxpass 0
vec3 RGB_Curve = vec3(8.0, 8.0, 8.0);
vec3 RGB_C = vec3(0.36, 0.36, 0.34);
float DPX_Contrast = 0.1;
float DPX_Saturation = 3.0;
float Colorfulness = 2.5;
float DPX_Strength = 0.20;
#elif (Preset == 7)
#define adjust_bloom 1
const float bloomFactor = 0.33;
#define HDRpassing 1
const float HDRPower = 1.020;
const float radius1 = 0.793;
const float radius2 = 0.87;
#define lumapassing 1
const float sharp_strength = 0.25;
const float sharp_clamp = 0.85;
const float offset_bias = 1.0;
#define Tone_map 8
const float Exposure = 1.17;
const float Bleach = 0.4;
const float Gamma = 1.00;
const float defog = 0.00;
vec3 FogColor = vec3(1.0, 1.0, 1.0);
const float sat = 0.000;
const float crushContrast = 0.000;
#define post_process 0
const float satFactor = 0.25;
#define blacknwhitepass 0
const int BlackPoint = 16;
const int WhitePoint = 235;
#define lggpass 1
vec3 RGB_Lift = vec3(1.000, 1.000, 1.000);
vec3 RGB_Gamma = vec3(0.600, 0.600, 0.600);
vec3 RGB_Gain = vec3(1.000, 1.000, 1.000);
#define vibpass 1
const float Vibrance = 0.150;
vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0);
#define Tech 0
const float Power = 4.0;
vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88);
float Strength = 0.20;
#define Techine 1
const float Technicolor2_Red_Strength = 0.000;
const float Technicolor2_Green_Strength = 0.000;
const float Technicolor2_Blue_Strength = 0.000;
const float Technicolor2_Brightness = 1.0;
const float Technicolor2_Strength = 0.40;
const float Technicolor2_Saturation = 0.51;
#define cmatrix 0
vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000);
vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000);
vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875);
float CM_Strength = 1.0;
#define CurvesPss 1
const float Contrast = 0.65;
#define Filmicpass 0
const float Filmic_Contrast = 1.0;
const float Filmic_Bleach = 0.0;
const float Saturation = -0.15;
const float Filmic_Strength = 0.85;
const float Fade = 0.4;
const float Linearization = 0.5;
const float BaseCurve = 1.5;
const float BaseGamma = 1.00;
const float EffectGamma = 0.68;
#define dpxpass 0
vec3 RGB_Curve = vec3(8.0, 8.0, 8.0);
vec3 RGB_C = vec3(0.36, 0.36, 0.34);
float DPX_Contrast = 0.1;
float DPX_Saturation = 3.0;
float Colorfulness = 2.5;
float DPX_Strength = 0.20;
#elif (Preset == 8)
const float bloomFactor = 0.17;
#define HDRpassing 1
const float HDRPower = 3.040;
const float radius1 = 1.00;
const float radius2 = 0.80;
#define lumapassing 1
const float sharp_strength = 0.25;
const float sharp_clamp = 0.85;
const float offset_bias = 1.0;
#define Tone_map 8
const float Exposure = 1.17;
const float Bleach = 0.4;
const float Gamma = 1.00;
const float defog = 0.00;
vec3 FogColor = vec3(1.0, 1.0, 1.0);
const float sat = 0.000;
const float crushContrast = 0.000;
#define post_process 1
const float satFactor = 0.25;
#define blacknwhitepass 0
const int BlackPoint = 16;
const int WhitePoint = 235;
#define lggpass 1
vec3 RGB_Lift = vec3(1.000, 1.000, 1.000);
vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000);
vec3 RGB_Gain = vec3(1.000, 1.000, 1.000);
#define vibpass 1
const float Vibrance = 0.013;
vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0);
#define Tech 0
const float Power = 4.0;
vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88);
float Strength = 0.20;
#define Techine 1
const float Technicolor2_Red_Strength = 0.51;
const float Technicolor2_Green_Strength = 0.51;
const float Technicolor2_Blue_Strength = 0.51;
const float Technicolor2_Brightness = 1.75;
const float Technicolor2_Strength = 0.80;
const float Technicolor2_Saturation = 0.20;
#define cmatrix 0
vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000);
vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000);
vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875);
float CM_Strength = 1.0;
#define CurvesPss 1
const float Contrast = 0.65;
#define Filmicpass 1
const float Filmic_Contrast = 0.750;
const float Filmic_Bleach = 0.5;
const float Saturation = -0.15;
const float Filmic_Strength = 0.85;
const float Fade = 0.4;
const float Linearization = 0.7;
const float BaseCurve = 1.1;
const float BaseGamma = 0.98;
const float EffectGamma = 0.97;
#define dpxpass 0
vec3 RGB_Curve = vec3(8.0, 8.0, 8.0);
vec3 RGB_C = vec3(0.36, 0.36, 0.34);
float DPX_Contrast = 0.1;
float DPX_Saturation = 3.0;
float Colorfulness = 2.5;
float DPX_Strength = 0.20;
#endif
//###########################################################
uniform ivec4 uf_remappedPS[1]; uniform ivec4 uf_remappedPS[1];
layout(binding = 0) uniform sampler2D textureUnitPS0; // Bloom layout(binding = 0) uniform sampler2D textureUnitPS0; // Bloom
layout(binding = 1) uniform sampler2D textureUnitPS1;// HDR LumaShapening. layout(binding = 1) uniform sampler2D textureUnitPS1;// HDR LumaShapening.
@ -208,9 +761,21 @@ vec3 ReshadeToneMap(vec3 inputColor) {
return color; return color;
} }
float getL601(vec3 rgb) {
return dot(rgb, vec3(0.2989, 0.5866, 0.1145));
}
float getL709(vec3 rgb) { float getL709(vec3 rgb) {
return dot(rgb, vec3(0.2126, 0.7152, 0.0722)); return dot(rgb, vec3(0.2126, 0.7152, 0.0722));
} }
vec3 BotWToneMap(vec3 color) {
float Lumn = getL601(color);
vec4 exptm = 1.0 - exp(-vec4(color, Lumn));
vec3 cpre = exptm.w / Lumn * color;
vec3 colorldr = mix(cpre, exptm.rgb, vec3(pow(exptm.w, 2.0)));//refine
return colorldr;
}
vec3 ACESFilm(vec3 color) { vec3 ACESFilm(vec3 color) {
color *= Exposure; color *= Exposure;
float Lumn = getL709(color); float Lumn = getL709(color);
@ -285,6 +850,46 @@ vec3 TechnicolorPass(vec3 color)
return mix(tcol, output_r * output_g * output_b, Strength); return mix(tcol, output_r * output_g * output_b, Strength);
} }
//ColorMatrix
vec3 ColorMatrixPass(vec3 inputColor)
{
vec3 color = inputColor;
const mat3 ColorMatrix = mat3(ColorMatrix_Red, ColorMatrix_Green, ColorMatrix_Blue);
//color = mix(color, * (ColorMatrix, color), CM_Strength);
color *= mix(color, (ColorMatrix, color), CM_Strength);
return clamp(color, 0.0, 1.);
}
// Contrasty
vec3 BotWVibrance(vec3 color) {
float avg = (color.r + color.g + color.b) / 3.0;
float maxc = max(color.r, max(color.g, color.b));
float w = 1.0 - pow(1.0 - 2.0 * avg, 2.0);
float weight = 1.0 + w * satFactor;
vec3 satcolor = mix(vec3(maxc), color, weight);
return satcolor;
}
vec3 ReshadeVibrance(vec3 color) {
float max_color = max(color.r, max(color.g, color.b)); // Find the strongest color
float min_color = min(color.r, min(color.g, color.b)); // Find the weakest color
float luma = getL709(color);
float color_saturation = max_color - min_color; // The difference between the two is the saturation
vec3 coeffVibrance = VibranceRGBBalance * Vibrance;
color = mix(vec3(luma), color, 1.0 + (coeffVibrance * (1.0 - (sign(coeffVibrance) * color_saturation))));
return color;
}
vec3 Contrasty(vec3 fColour) {
fColour = max(vec3(0.0), fColour - vec3(crushContrast));
fColour = clamp(Exposure * fColour, 0.0, 1.0);
fColour = pow(fColour, vec3(1.0 / Gamma));
fColour = ReshadeVibrance(fColour); // reshade's identical, only a little stronger when at same setting
return fColour;
}
// Levels // Levels
vec3 LevelsPass(vec3 inputColor) { vec3 LevelsPass(vec3 inputColor) {
@ -360,7 +965,7 @@ vec3 FilmPass(vec3 inputColor) {
else else
C.b = (2.0 * D.b - 1.0) * (sqrt(B.b) - B.b) + B.b; C.b = (2.0 * D.b - 1.0) * (sqrt(B.b) - B.b) + B.b;
vec3 F = mix(B, C, Strength); vec3 F = mix(B, C, Filmic_Strength);
F = (1.0 / (1.0 + exp(-d * (F - 0.5))) - v) / (1.0 - 2.0 * v); F = (1.0 / (1.0 + exp(-d * (F - 0.5))) - v) / (1.0 - 2.0 * v);
@ -396,6 +1001,39 @@ vec3 FilmPass(vec3 inputColor) {
return Fn; return Fn;
} }
//DPX
const mat3 RGB = mat3(
2.6714711726599600, -1.2672360578624100, -0.4109956021722270,
-1.0251070293466400, 1.9840911624108900, 0.0439502493584124,
0.0610009456429445, -0.2236707508128630, 1.1590210416706100
);
const mat3 XYZ = mat3(
0.5003033835433160, 0.3380975732227390, 0.1645897795458570,
0.2579688942747580, 0.6761952591447060, 0.0658358459823868,
0.0234517888692628, 0.1126992737203000, 0.8668396731242010
);
vec3 DPXPass(vec3 inputColor)
{
vec3 input = inputColor.rgb;
vec3 B = input;
B = B * (1.0 - DPX_Contrast) + (0.5 * DPX_Contrast);
vec3 Btemp = (1.0 / (1.0 + exp(RGB_Curve / 2.0)));
B = ((1.0 / (1.0 + exp(-RGB_Curve * (B - RGB_C)))) / (-2.0 * Btemp + 1.0)) + (-Btemp / (-2.0 * Btemp + 1.0));
float value = max(max(B.r, B.g), B.b);
vec3 color = B / value;
color = pow(abs(color), 1. / vec3(Colorfulness));
vec3 c0 = color * value;
c0 *= (XYZ, c0);
float luma = dot(c0, vec3(0.30, 0.59, 0.11));
c0 = (1.0 - DPX_Saturation) * luma + DPX_Saturation * c0;
c0 *= (RGB, c0);
return mix(input, c0, DPX_Strength);
}
//Lift Gamma Gain //Lift Gamma Gain
vec3 LiftGammaGainPass(vec3 colorInput) vec3 LiftGammaGainPass(vec3 colorInput)
@ -513,10 +1151,13 @@ vec3 HDRPass(sampler2D tex, vec2 pos) {
void main() void main()
{ {
//Bloom
vec3 bloom = texture(textureUnitPS0, passParameterSem0.xy).xyz; vec3 bloom = texture(textureUnitPS0, passParameterSem0.xy).xyz;
#if (adjust_bloom == 1) #if (adjust_bloom == 1)
bloom *= bloomFactor; bloom *= bloomFactor;
#endif #endif
//HDR and LumaShapening
#if (HDRpassing == 1) #if (HDRpassing == 1)
passPixelColor0.xyz = HDRPass(textureUnitPS1, passParameterSem0.xy).xyz; passPixelColor0.xyz = HDRPass(textureUnitPS1, passParameterSem0.xy).xyz;
#endif #endif
@ -527,44 +1168,64 @@ void main()
float smask = lumasharping(textureUnitPS1, passParameterSem0.xy); float smask = lumasharping(textureUnitPS1, passParameterSem0.xy);
passPixelColor0.xyz += vec3(smask); passPixelColor0.xyz += vec3(smask);
#endif #endif
// Do not edit this
vec3 color = (passPixelColor0.xyz); vec3 color = (passPixelColor0.xyz);
color += bloom; color += bloom;
//++++++++++++++++++++++++++++++++++
// Tonemapping
#if (Tone_map == -1)
color = clamp(color*Exposure, 0.0, 1.0);
#elif (Tone_map == 0)
color = BotWToneMap(color);
#elif (Tone_map == 1)
color = ReshadeToneMap(color);
#elif (Tone_map == 2)
color = linearToneMapping(color);
#elif (Tone_map == 3)
color = simpleReinhardToneMapping(color);
#elif (Tone_map == 4)
color = lumaBasedReinhardToneMapping(color);
#elif (Tone_map == 5)
color = whitePreservingLumaBasedReinhardToneMapping(color);
#elif (Tone_map == 6)
color = RomBinDaHouseToneMapping(color);
#elif (Tone_map == 7)
color = filmicToneMapping(color);
#elif (Tone_map == 8)
color = Uncharted2ToneMapping(color);
#elif (tone_mapping == 9)
color = ACESFilm(color);
#endif
// Levels Control if we tone map to 16-235 , 0 - 255 or usr defined range.
#if (blacknwhitepass == 1) #if (blacknwhitepass == 1)
color = LevelsPass(color); color = LevelsPass(color);
#endif #endif
#if (Tone_map == 1)
color = ReshadeToneMap(color); // Color matrix
#endif #if (cmatrix == 1)
#if (Tone_map == 2) color = ColorMatrixPass(color);
color = linearToneMapping(color);
#endif
#if (Tone_map == 3)
color = simpleReinhardToneMapping(color);
#endif
#if (Tone_map == 4)
color = lumaBasedReinhardToneMapping(color);
#endif
#if (Tone_map == 5)
color = whitePreservingLumaBasedReinhardToneMapping(color);
#endif
#if (Tone_map == 6)
color = RomBinDaHouseToneMapping(color);
#endif
#if (Tone_map == 7)
color = filmicToneMapping(color);
#endif
#if (Tone_map == 8)
color = Uncharted2ToneMapping(color);
#endif
#if (tone_mapping == 9)
color = ACESFilm(color);
#endif #endif
// Post Processing
#if (Tech == 1) #if (Tech == 1)
color = TechnicolorPass(color); color = TechnicolorPass(color);
#endif #endif
#if (Techine == 1) #if (Techine == 1)
color = Technicolor2(color); color = Technicolor2(color);
#endif #endif
#if (post_process == 0)
color = BotWVibrance(color);
#endif
#if (post_process == 1)
color = Contrasty(color);
#endif
#if (dpxpass == 1)
color = DPXPass(color);
#endif
#if (Filmicpass == 1) #if (Filmicpass == 1)
color = FilmPass(color); color = FilmPass(color);
#endif #endif
@ -579,3 +1240,15 @@ void main()
#endif #endif
passPixelColor0 = vec4(color, passParameterSem0.w); passPixelColor0 = vec4(color, passParameterSem0.w);
} }
//##########################################################
// Possible problems
// Being below 1.3.3 will give you double-vision with recent graphic packs. Update to 1.3.0 or above.
// If you're experiencing any issues (due to having the previous Clarity shaders installed), please remove and redownload all of the BotW packs.
// Clarity GFX
// Credit to Jamie for main coding.
// Credit to Kiri coding & Reshade logic.
// Credit to Crementif for Help.
// Credit to Serfrost for preset values.
// Shader dumped from Cemu 1.11.2 from BotW 1.4.0
// v 2.2 Final
// Add 1.4.0 support

View File

@ -1,8 +1,8 @@
============================================ ============================================
1. Open the Preset folder and then open a preset of your choice in a text editor. Copy the text. 1. Open the 37040a485a29d54e_00000000000003c9_ps
2. Go back to the main folder and open the original [shaderID_ps.txt] then replace the all of the text. Save. 2. Pick preset or make your own.
3. Enable the pack in Cemu in order to test the preset. 3. Enable the pack in Cemu in order to test the preset.