Code: Select all
//Gamma.
// ---- Created with 3Dmigoto v1.2.63 on Sun Aug 06 15:47:29 2017
cbuffer _Globals : register(b0)
{
float3 scene_EyePosition : packoffset(c0);
float4x4 scene_View : packoffset(c1);
float4x4 scene_ViewProjection : packoffset(c5);
float4 scene_cameraNearFarParameters : packoffset(c9);
float4 scene_viewportSizeParameters : packoffset(c10);
float3 scene_FakeRimLightDir : packoffset(c11);
float3 scene_GlobalAmbientColor : packoffset(c12);
float3 scene_FogColor : packoffset(c13);
float4 scene_FogRangeParameters : packoffset(c14);
float3 scene_MiscParameters1 : packoffset(c15);
float4 scene_MiscParameters2 : packoffset(c16);
float AdditionalShadowOffset : packoffset(c17);
float4 FilterColor : packoffset(c18) = {1,1,1,1};
float4 FadingColor : packoffset(c19) = {1,1,1,1};
float4 MonotoneMul : packoffset(c20) = {1,1,1,1};
float4 MonotoneAdd : packoffset(c21) = {0,0,0,0};
float4 GlowIntensity : packoffset(c22) = {1,1,1,1};
float4 ToneFactor : packoffset(c23) = {1,1,1,1};
float4 UvScaleBias : packoffset(c24) = {1,1,0,0};
float4 GaussianBlurParams : packoffset(c25) = {0,0,0,0};
float4 DofParams : packoffset(c26) = {0,0,0,0};
float4 GammaParameters : packoffset(c27) = {1,1,1,0};
float4 WhirlPinchParams : packoffset(c28) = {0,0,0,0};
}
SamplerState LinearClampSampler_s : register(s0);
Texture2D<float4> ColorBuffer : register(t0);
// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);
void main(
float4 v0 : SV_Position0,
float2 v1 : TEXCOORD0,
out float4 o0 : SV_TARGET0)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;
float4 iniparams = IniParams.Load(int2(1,0));
r0.x = 1.10000002 * GammaParameters.x * iniparams.y + 0.5*(v1.y-0.5)*iniparams.w;
r1.xyzw = ColorBuffer.SampleLevel(LinearClampSampler_s, v1.xy, 0).xyzw;
r1.xyz = saturate(r1.xyz);
o0.w = r1.w;
r0.yzw = log2(r1.xyz);
r0.xyz = r0.xxx * r0.yzw;
o0.xyz = exp2(r0.xyz);
return;
}
Here's a screenshot comparison: http://screenshotcomparison.com/comparison/114864
It most probably needs to be more fine tuned to be perfect, but you get the idea. I may find shaders like these for other games.
Opinions?