Anyone Have 2b3's custom shaders to share?
- SirArthurStreebGreebling
- Topic Author
Less
More
6 years 4 months ago #1
by SirArthurStreebGreebling
Anyone Have 2b3's custom shaders to share? was created by SirArthurStreebGreebling
I've been looking for these for a while now, seem impossible to get online. Where they ever ported to reshade 3 at all? I'd be happy with any version of them really.
Please Log in or Create an account to join the conversation.
- mbah.primbon
Less
More
6 years 4 months ago #2
by mbah.primbon
Replied by mbah.primbon on topic Anyone Have 2b3's custom shaders to share?
What is it actually? kind of monochrome shader thing ?
Please Log in or Create an account to join the conversation.
- Insomnia
Less
More
6 years 4 months ago #3
by Insomnia
Replied by Insomnia on topic Anyone Have 2b3's custom shaders to share?
I ported two: CEOG and LIO, the first with added saturation shader from Tonemap.
Warning: Spoiler!
////-----------//
///***CEOG***//
//-----------////
//Preprocessor
#define ceog_min 0.00 // [0.00:1.00] //-min value
#define ceog_max 1.00 // [0.00:1.00] //-max value
uniform float ceog_ctr <
ui_type = "drag";
ui_min = -100.0; ui_max = 100.0;
ui_step = 0.01;
ui_tooltip = "Contrast";
ui_label = "Contrast";
> = 0.0;
uniform float ceog_e <
ui_type = "drag";
ui_min = -20.0; ui_max = 20.0;
ui_step = 0.01;
ui_tooltip = "Exposure";
ui_label = "Exposure";
> = 0.0;
uniform float ceog_o <
ui_type = "drag";
ui_min = -1.0; ui_max = 1.0;
ui_step = 0.005;
ui_tooltip = "Offset";
ui_label = "Offset";
> = 0.00;
uniform float ceog_g <
ui_type = "drag";
ui_min = 0.0; ui_max = 10.0;
ui_step = 0.01;
ui_tooltip = "Gamma";
ui_label = "Gamma";
> = 1.0;
uniform float Saturation <
ui_type = "drag";
ui_min = -1.0; ui_max = 1.0;
ui_tooltip = "Adjust saturation";
> = 0.0;
#include "ReShade.fxh"
float3 CEOGPass(float4 position : SV_Position, float2 texcoord : TexCoord) : SV_Target
{
float3 color = tex2D(ReShade::BackBuffer, texcoord).rgb;
float mn=min(color.r, min(color.g, color.b));
float mx=max(color.r, max(color.g, color.b));
if(mn >= ceog_min && mx <= ceog_max)
{
float ctr=ceog_ctr;
float3 color_tmp=color.rgb;
ctr=(ctr < 0.0) ? max(ctr/100.0, -100.0) : min(ctr, 100.0);
color.rgb=(color.rgb-0.5)*max(ctr+1.0, 0.0)+0.5;
color.rgb=pow(saturate(color.rgb*pow(2, ceog_e)+ceog_o), 1/ceog_g);
float3 middlegray = dot(color, (1.0 / 3.0));
float3 diffcolor = color - middlegray;
color = (color + diffcolor * Saturation) / (1 + (diffcolor * Saturation)); // Saturation
if(ceog_min > 0 && ceog_max < 1)
{
float dlt=(ceog_max-ceog_min)*0.25;
if(mn <= (ceog_min+dlt)) color.rgb=lerp(color_tmp, color.rgb, (mn-ceog_min)/dlt);
else if(mx >= (ceog_max-dlt)) color.rgb=lerp(color_tmp, color.rgb, (ceog_max-mx)/dlt);
}
}
return color;
}
technique CEOG
{
pass
{
VertexShader = PostProcessVS;
PixelShader = CEOGPass;
}
}
////-----------//
///**LevelIO**///
//-----------////
uniform float lin_bp <
ui_type = "drag";
ui_min = 0.0; ui_max = 255.0;
ui_step = 1.0;
ui_tooltip = "black point for input";
> = 0.0;
uniform float lin_wp <
ui_type = "drag";
ui_min = 0.0; ui_max = 255.0;
ui_step = 1.0;
ui_tooltip = "white point for input";
> = 255.0;
uniform float lin_g <
ui_type = "drag";
ui_min = 0.1; ui_max = 10.0;
ui_step = 0.10;
ui_tooltip = "gamma";
> = 1.00;
uniform float lout_bp <
ui_type = "drag";
ui_min = 0.0; ui_max = 255.0;
ui_step = 1.0;
ui_tooltip = "black point for output";
> = 0.0;
uniform float lout_wp <
ui_type = "drag";
ui_min = 0.0; ui_max = 255.0;
ui_step = 1.0;
ui_tooltip = "white point for input";
> = 255.0;
#define lio_s 1.0 // [0.0:2.0] //-saturation (0 - zero sat; 1 - real; 2 - x2 sat)
#include "ReShade.fxh"
float3 LIOPass(float4 position : SV_Position, float2 texcoord : TexCoord) : SV_Target
{
float3 color = tex2D(ReShade::BackBuffer, texcoord).rgb;
float ib = lin_bp/255.0;
float iw = lin_wp/255.0;
float ob = lout_bp/255.0;
float ow = lout_wp/255.0;
color.rgb=min(max(color.rgb-ib, 0)/(iw-ib), 1);
//if(lin_g != 1) color.rgb=saturate(pow(abs(color.rgb), 1/lin_g));
if(lin_g != 1) color.rgb=pow(abs(color.rgb), 1/lin_g);
color.rgb=min( max(color.rgb*(ow-ob)+ob, ob), ow); //output levels (needed min, max for sure :S)
if (lio_s != 1)
{
float cm=(color.r+color.g+color.b)/3;
color.rgb=cm-(cm-color.rgb)*lio_s;
}
return color;
}
technique LevelIO
{
pass
{
VertexShader = PostProcessVS;
PixelShader = LIOPass;
}
}
The following user(s) said Thank You: Marty, mbah.primbon
Please Log in or Create an account to join the conversation.
- mbah.primbon
Less
More
6 years 4 months ago #4
by mbah.primbon
Replied by mbah.primbon on topic Anyone Have 2b3's custom shaders to share?
@Insomnia : could you sent the original shaders to me?
Please Log in or Create an account to join the conversation.
- Insomnia
Less
More
6 years 4 months ago #5
by Insomnia
Replied by Insomnia on topic Anyone Have 2b3's custom shaders to share?
I don't have the original shaders left. Sorry.
Please Log in or Create an account to join the conversation.
- mbah.primbon
Less
More
6 years 4 months ago #6
by mbah.primbon
Replied by mbah.primbon on topic Anyone Have 2b3's custom shaders to share?
nvm. i got the shaders from VK page..
Please Log in or Create an account to join the conversation.
- SirArthurStreebGreebling
- Topic Author
Less
More
6 years 4 months ago #7
by SirArthurStreebGreebling
Replied by SirArthurStreebGreebling on topic Anyone Have 2b3's custom shaders to share?
Thanks Insomnia, must try them out I'm not actually sure what these ones you ported are. I just always liked the look of screens posted using those shaders.
Please Log in or Create an account to join the conversation.