Quantcast

Jump to content

» «
Photo

[GTAIV|REL|BETA] ENBSeries graphic modification

24,755 replies to this topic
fzn09
  • fzn09

    Rat

  • Members
  • Joined: 15 Jul 2009

#23011

Posted 22 June 2011 - 02:41 PM

QUOTE (icelaglace @ Wednesday, Jun 22 2011, 14:18)
if(distance>500)
{
r0=r7*5.3 + r0;
}
8
else r0=r7*2.5 + r0;

Yeah this part...
I would put it like that

r0=r7*1.0+ r0;

Or remove the //
on :

//r7*=0.7+clamp(distance*0.0006,0.0,0.4);

You choose.
It controls the bloom after all.
Kinda important on DP3 settings.

And please , use PasteBin instead of copying the whole code here...
Cheers.

changed to this

CODE
//r7*=0.7+clamp(distance*0.0006,0.0,0.4);
r7=r7*(1-pow(1.2,-r7*0.15));
r0=r7*1.0 + r0;


and the problem persist sad.gif

T.Seds
  • T.Seds

    Player Hater

  • Members
  • Joined: 20 Jun 2011

#23012

Posted 22 June 2011 - 03:18 PM Edited by T.Seds, 22 June 2011 - 03:22 PM.

Hello all, this is my latest enb settings on 1.0.4.0 smile.gif
user posted image

icelaglace
  • icelaglace

    See futures in balls

  • Members
  • Joined: 04 May 2011

#23013

Posted 22 June 2011 - 03:29 PM Edited by icelaglace, 22 June 2011 - 03:36 PM.

My bad FZN.

EDIT : Link removed, Robi29 confirmed what i wanted to say. smile.gif


robi29
  • robi29

    VisualIV creator

  • Members
  • Joined: 20 Jun 2009
  • Poland

#23014

Posted 22 June 2011 - 03:31 PM

@fzn09
You replace the "distance" to "depth". I had the same problem.

fzn09
  • fzn09

    Rat

  • Members
  • Joined: 15 Jul 2009

#23015

Posted 22 June 2011 - 03:59 PM Edited by fzn09, 22 June 2011 - 04:19 PM.

QUOTE (robi29 @ Wednesday, Jun 22 2011, 15:31)
@fzn09
You replace the "distance" to "depth". I had the same problem.



solved thanks, but when i changed DoF_TAPS = 60 lower than 50. my gta looks like a negative film turn.gif
when i set it to 60, it works fine but lag
user posted image

Stolen_X
  • Stolen_X

    Peon

  • Members
  • Joined: 12 Sep 2010

#23016

Posted 22 June 2011 - 04:25 PM

@Above
Try DoF_TAPS = 24

fzn09
  • fzn09

    Rat

  • Members
  • Joined: 15 Jul 2009

#23017

Posted 22 June 2011 - 04:37 PM Edited by fzn09, 22 June 2011 - 04:40 PM.

QUOTE (Stolen_X @ Wednesday, Jun 22 2011, 16:25)
@Above
Try  DoF_TAPS = 24

changed it to 10, then 30. it works fine,weird. dozingoff.gif
20,24,50, weird look again

Kross
  • Kross

    The World Is Mine.....

  • Members
  • Joined: 04 Aug 2010

#23018

Posted 22 June 2011 - 04:48 PM

Could someone give me a link or post Dp3's effect.txt with fXAA in it? I tried to put in the code myself and trees, color etc. are messed up.

Also does gp65cj04 effect look good with dp3's sett?

Sharks80fr
  • Sharks80fr

    Mack Pimp

  • Members
  • Joined: 28 Apr 2011

#23019

Posted 22 June 2011 - 04:52 PM

QUOTE (fzn09 @ Wednesday, Jun 22 2011, 16:37)
QUOTE (Stolen_X @ Wednesday, Jun 22 2011, 16:25)
@Above
Try  DoF_TAPS = 24

changed it to 10, then 30. it works fine,weird. dozingoff.gif
20,24,50, weird look again

i have the same problem ^^

fzn09
  • fzn09

    Rat

  • Members
  • Joined: 15 Jul 2009

#23020

Posted 22 June 2011 - 05:06 PM

QUOTE (Sharks80fr @ Wednesday, Jun 22 2011, 16:52)
QUOTE (fzn09 @ Wednesday, Jun 22 2011, 16:37)
QUOTE (Stolen_X @ Wednesday, Jun 22 2011, 16:25)
@Above
Try  DoF_TAPS = 24

changed it to 10, then 30. it works fine,weird. dozingoff.gif
20,24,50, weird look again

i have the same problem ^^

dont know why, with whis random numbers. i use now 25, good quality vs performace icon14.gif

and this FXAA+gpc DOF+dp3timecyc inlove.gif

user posted image

Dpeasant3
  • Dpeasant3

    landsknecht

  • Members
  • Joined: 05 Jun 2010

#23021

Posted 22 June 2011 - 05:07 PM Edited by Dpeasant3, 22 June 2011 - 05:10 PM.

This is a 3-pass effect.txt i use with AA. so youll get FXAA(with lowered qulity) + colourshift + sharpening + noise. You should edit it to your tastes.


CODE
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//http://enbdev.com
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/*
THIS IS HLSL FILE FORMAT FOR EXECUTING ADDITIONAL
POST PROCESSING EFFECTS. MAKE THE COPY BEFORE CHANGING IT!
*/

//enable blurring, useless, disabled at all
//#define EBLURRING

//enable sharpening
#define ESHARPENING

//if defined, color sharpen, otherwise sharp by gray
#define ESHARPENINGCOLOR

//enable noise in dark areas
#define ENOISE


float ShiftSamplingRange=0.1;
float SamplingRange=1.0; //sharpening or blurring range
float SharpeningAmount=9.5;
float ScanLineAmount=0.0;
float ScanLineRepeat=1.0; //0.5, 0.3333, 0.25, 0.125, so on
float NoiseAmount=0.22;


//keyboard controled variables
float tempF1;
float tempF2;
float tempF3;
float tempF4;
float tempF5;
float tempF6;
float tempF7;
float tempF8;
float tempF9;
float tempF0;

//global variables, already set before executing this code
float ScreenSize; //width of the display resolution (1920 f.e.)
float ScreenScaleY; //screen proportions (1.333 for 1920/1080)

//textures
texture2D texColor;
texture2D texNoise;

sampler2D SamplerColor = sampler_state
{
Texture   = <texColor>;
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = NONE;//NONE;
AddressU  = Clamp;
AddressV  = Clamp;
SRGBTexture=FALSE;
MaxMipLevel=0;
MipMapLodBias=0;
};

sampler2D SamplerNoise = sampler_state
{
Texture   = <texNoise>;
MinFilter = POINT;
MagFilter = POINT;
MipFilter = NONE;//NONE;
AddressU  = Wrap;
AddressV  = Wrap;
SRGBTexture=FALSE;
MaxMipLevel=0;
MipMapLodBias=0;
};

struct VS_OUTPUT_POST {
float4 vpos  : POSITION;
float2 txcoord : TEXCOORD0;
};

struct VS_INPUT_POST {
float3 pos  : POSITION;
float2 txcoord : TEXCOORD0;
};

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
VS_OUTPUT_POST VS_PostProcess(VS_INPUT_POST IN)
{
VS_OUTPUT_POST OUT;

float4 pos=float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0);

OUT.vpos=pos;
OUT.txcoord.xy=IN.txcoord.xy;

return OUT;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//--------------------Fast Approximate Anti-Aliasing --------------------------
//         FXAA v2 CONSOLE by TIMOTHY LOTTES @ NVIDIA  
//          Ported to ENBSeries by MysTer92 (Svyatoslav Gampel)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++






float4 PS_PostProcess(VS_OUTPUT_POST i) : COLOR
{
#define FXAA_SUBPIX_SHIFT (1.0/8.0)
#define FXAA_REDUCE_MIN   (1.0/16.0)
#define FXAA_REDUCE_MUL   (1.0/16.0)
#define FXAA_SPAN_MAX     8.0

half2 rcpFrame = half2(1/ScreenSize, 1/(ScreenSize/ScreenScaleY));

half4 posPos;
posPos.xy = i.txcoord.xy;
posPos.zw = posPos.xy - (rcpFrame.xy * (0.5 + FXAA_SUBPIX_SHIFT));

half3 rgbNW = tex2D(SamplerColor, posPos.zw ).xyz;
half3 rgbNE = tex2D(SamplerColor, posPos.zw + half2(rcpFrame.x, 0.0) ).xyz;
half3 rgbSW = tex2D(SamplerColor, posPos.zw + half2(0.0, rcpFrame.y) ).xyz;
half3 rgbSE = tex2D(SamplerColor, posPos.zw +rcpFrame.xy ).xyz;
half3 rgbM  = tex2D(SamplerColor, posPos.xy).xyz;
       
half3 luma = half3(0.299, 0.587, 0.114);
half lumaNW = dot(rgbNW, luma);
half lumaNE = dot(rgbNE, luma);
half lumaSW = dot(rgbSW, luma);
half lumaSE = dot(rgbSE, luma);
half lumaM  = dot(rgbM,  luma);
       
half lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
half lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
       
half2 dir;
       
half lumaNWNE = lumaNW + lumaNE;
half lumaSWSE = lumaSW + lumaSE;
       
dir.x = -((lumaNWNE) - (lumaSWSE));
dir.y =  ((lumaNW + lumaSW) - (lumaNE + lumaSE));
       
half dirReduce = max( (lumaSWSE + lumaNWNE) * (0.25 * FXAA_REDUCE_MUL),
        FXAA_REDUCE_MIN);
half rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce);
dir = min(half2( FXAA_SPAN_MAX,  FXAA_SPAN_MAX),
   max(half2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),
   dir * rcpDirMin)) * rcpFrame.xy;
             
half3 rgbA = (1.0/2.0) * (
 tex2D(SamplerColor, posPos.xy + dir * (1.0/3.0 - 0.5) ).xyz +
 tex2D(SamplerColor, posPos.xy + dir * (2.0/3.0 - 0.5) ).xyz);
half3 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * (
 tex2D(SamplerColor, posPos.xy + dir * (0.0/3.0 - 0.5) ).xyz +
 tex2D(SamplerColor, posPos.xy + dir * (3.0/3.0 - 0.5) ).xyz);
half lumaB = dot(rgbB, luma);
       
if((lumaB < lumaMin) || (lumaB > lumaMax))
 return half4(rgbA, 1.0);
       
return float4(rgbB, 1.0);
}


float4 PS_PostProcess5(VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{
float4 res;
float4 coord=0.0;

coord.xy=IN.txcoord.xy;
float4 origcolor;

coord.w=0.0;


origcolor=tex2Dlod(SamplerColor, coord);

// coord.x=IN.txcoord.x-(1.5/ScreenSize);
// float4 lshift=tex2Dlod(SamplerColor, coord);
// coord.x=IN.txcoord.x+(1.5/ScreenSize);
// float4 rshift=tex2Dlod(SamplerColor, coord);


float2 offset[8]=
{
float2(1.0, 1.0),
float2(-1.0, -1.0),
float2(-1.0, 1.0),
float2(1.0, -1.0),

float2(1.41, 0.0),
float2(-1.41, 0.0),
float2(0.0, 1.41),
float2(0.0, -1.41)
};
int i=0;

float4 tcol=origcolor;
float invscreensize=1.0/ScreenSize;
//for (i=0; i<8; i++) //higher quality
for (i=0; i<8; i++)
{
float2 tdir=offset[i].xy;
coord.xy=IN.txcoord.xy+tdir.xy*invscreensize*SamplingRange;//*1.0;
float4 ct=tex2Dlod(SamplerColor, coord);

tcol+=ct;
}
tcol*=0.111; // 1.0/(4+1)
//tcol*=0.111; // 1.0/(8+1)  //higher quality


/*
//not interesting
#ifdef EBLURRING
//blur
res=tcol;
#endif
*/

//sharp
#ifdef ESHARPENING

#ifdef ESHARPENINGCOLOR
//color
res=origcolor*(1.0+((origcolor-tcol)*SharpeningAmount));
#else
//non color
float difffact=dot((origcolor.xyz-tcol.xyz), 0.333);
res=origcolor*(1.0+difffact*SharpeningAmount);
#endif

//less sharpening for bright pixels
float rgray=origcolor.z; //blue fit well
//float rgray=max(origcolor.x, max(origcolor.y, origcolor.z));
rgray=pow(rgray, 3.0);
res=lerp(res, origcolor, saturate(rgray));

#endif




//grain noise
#ifdef ENOISE
float origgray=max(res.x, res.y);//dot(res.xyz, 0.333);
origgray=max(origgray, res.z);
coord.xy=IN.txcoord.xy*16.0 + origgray;
float4 cnoi=tex2Dlod(SamplerNoise, coord);
res=lerp(res, (cnoi.x+0.5)*res, NoiseAmount*saturate(1.0-origgray*1.8));
#endif


res.w=1.0;
return res;
}

float4 PS_Process6(VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{
float4 res;
float4 coord=0.0;

coord.xy=IN.txcoord.xy;
float4 origcolor;

coord.w=0.0;


origcolor=tex2Dlod(SamplerColor, coord);

// coord.x=IN.txcoord.x-(1.5/ScreenSize);
// float4 lshift=tex2Dlod(SamplerColor, coord);
// coord.x=IN.txcoord.x+(1.5/ScreenSize);
// float4 rshift=tex2Dlod(SamplerColor, coord);


float2 offset[8]=
{
 float2(1.0, 1.0),
 float2(-1.0, -1.0),
 float2(-1.0, 1.0),
 float2(1.0, -1.0),

 float2(1.41, 0.0),
 float2(-1.41, 0.0),
 float2(0.0, 1.41),
 float2(0.0, -1.41)
};
int i=0;

float4 tcol=origcolor;
float2 invscreensize=1.0/ScreenSize;
invscreensize.y=invscreensize.y/ScreenScaleY;
//for (i=0; i<8; i++) //higher quality
/* for (i=0; i<4; i++)
{
 float2 tdir=offset[i].xy;
 coord.xy=IN.txcoord.xy+tdir.xy*invscreensize*SamplingRange;//*1.0;
 float4 ct=tex2Dlod(SamplerColor, coord);

 tcol+=ct;
}
tcol*=0.2; // 1.0/(4+1)
//tcol*=0.111; // 1.0/(8+1)  //higher quality
*/

coord.xy=IN.txcoord.xy;
origcolor=tex2Dlod(SamplerColor, coord);
res.y=origcolor.y;

coord.xy=IN.txcoord.xy;
coord.y-=invscreensize*ShiftSamplingRange;
origcolor=tex2Dlod(SamplerColor, coord);
res.x=origcolor.x;

coord.xy=IN.txcoord.xy;
coord.y+=invscreensize*ShiftSamplingRange;
origcolor=tex2Dlod(SamplerColor, coord);
res.z=origcolor.z;


res.w=1.0;
return res;
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//--------------------Fast Approximate Anti-Aliasing Techniques -------------
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

technique PostProcess
{
   pass P0
   {
VertexShader = compile vs_3_0 VS_PostProcess();
PixelShader  = compile ps_3_0 PS_PostProcess();

FogEnable=FALSE;
ALPHATESTENABLE=FALSE;
SEPARATEALPHABLENDENABLE=FALSE;
AlphaBlendEnable=FALSE;
FogEnable=FALSE;
SRGBWRITEENABLE=FALSE;
}
}
technique PostProcess2
{
  pass P0
  {

VertexShader = compile vs_3_0 VS_PostProcess();
PixelShader  = compile ps_3_0 PS_PostProcess5();

DitherEnable=FALSE;
ZEnable=FALSE;
CullMode=NONE;
ALPHATESTENABLE=FALSE;
SEPARATEALPHABLENDENABLE=FALSE;
AlphaBlendEnable=FALSE;
StencilEnable=FALSE;
FogEnable=FALSE;
SRGBWRITEENABLE=FALSE;
}
}
technique PostProcess3
{
pass P0
{

 VertexShader = compile vs_3_0 VS_PostProcess();
 PixelShader  = compile ps_3_0 PS_Process6();

 DitherEnable=FALSE;
 ZEnable=FALSE;
 CullMode=NONE;
 ALPHATESTENABLE=FALSE;
 SEPARATEALPHABLENDENABLE=FALSE;
 AlphaBlendEnable=FALSE;
 StencilEnable=FALSE;
 FogEnable=FALSE;
 SRGBWRITEENABLE=FALSE;
}
}

n3o123
  • n3o123

    Mark Chump

  • Members
  • Joined: 01 Apr 2011

#23022

Posted 22 June 2011 - 05:10 PM

Hello
What should I set it generates no FXAA DoF?

Stolen_X
  • Stolen_X

    Peon

  • Members
  • Joined: 12 Sep 2010

#23023

Posted 22 June 2011 - 05:11 PM

Finally,thx a lot Dpeasant3... icon14.gif

Kross
  • Kross

    The World Is Mine.....

  • Members
  • Joined: 04 Aug 2010

#23024

Posted 22 June 2011 - 05:15 PM

Thanks Dpeasant3 biggrin.gif

gp65cj04
  • gp65cj04

    Snitch

  • Members
  • Joined: 07 Mar 2010

#23025

Posted 22 June 2011 - 05:16 PM

enbeffect.fx which I use.

CODE

//++++++++++++++++++++++++++++++++++++++++++++
// ENBSeries effect file
// visit http://enbdev.com for updates
// Copyright 2010 (c) Boris Vorontsov
//L3EVO settings by gp65cj04 & lpf312
//DoF code from AMD
// Using decompiled shader of GTA4 game by
// Rockstar Games.
//++++++++++++++++++++++++++++++++++++++++++++

//NOTE: enable or disable these
//to disable, write // symbols before #define
//#define APPLYGAMECOLORCORRECTION //use contrast, brightness, saturation from game

float EColorSaturation = 1.0;

float EBrightnessV1 = 1.0;
float EBloomAmountV1 = 0.34;
float EBloomAmountAdditiveV1 = 1.4;

float BP_factor = 0.1; //bleach bypass

int DoF_TAPS = 60; //0: turn off, 4 , 8, 24, higer means better, but more performance drop.

//   sampler2D AdapLumSampler;
//   sampler2D BloomSampler;
//   float4 ColorCorrect;
//   float4 ColorShift;
//   float Exposure;
//   sampler2D GBufferTextureSampler2;
//   sampler2D GBufferTextureSampler3;
//   sampler2D HDRSampler;
//   sampler2D JitterSampler;
//   float PLAYER_MASK;
//   sampler2D StencilCopySampler;
//   float4 TexelSize;
//   float4 ToneMapParams;
//   float4 deSatContrastGamma;
//   float4 dofBlur;
//   float4 dofDist;
//   float4 dofProj;
//   float gDirectionalMotionBlurLength;
//   float4 globalScreenSize;
//   row_major float4x4 motionBlurMatrix;
//
//
// Registers:
//
//   Name                         Reg   Size
//   ---------------------------- ----- ----
//   globalScreenSize             c44      1
//   Exposure                     c66      1
//   motionBlurMatrix             c72      4
//   TexelSize                    c76      1
//   dofProj                      c77      1
//   dofDist                      c78      1
//   dofBlur                      c79      1
//   gDirectionalMotionBlurLength c80      1
//   ToneMapParams                c81      1
//   deSatContrastGamma           c82      1
//   ColorCorrect                 c83      1
//   ColorShift                   c84      1
//   PLAYER_MASK                  c85      1
//   GBufferTextureSampler2       s0       1
//   GBufferTextureSampler3       s1       1
//   HDRSampler                   s2       1
//   BloomSampler                 s3       1
//   AdapLumSampler               s4       1
//   JitterSampler                s5       1
//   StencilCopySampler           s6       1

//quad
struct VS_OUTPUT_POST
{
float4 vpos  : POSITION;
float2 txcoord0 : TEXCOORD0;
};
struct VS_INPUT_POST
{
float3 pos  : POSITION;
float2 txcoord0 : TEXCOORD0;
};

//int4 _i0 : register(i0);

/*
float4 _c0 : register(c0);
float4 _c1 : register(c1);
float4 _c2 : register(c2);
float4 _c3 : register(c3);
float4 _c4 : register(c4);
float4 _c5 : register(c5);
float4 _c6 : register(c6);
*/
float4 _c44 : register(c44);
float4 _c66 : register(c66);
float4 _c72 : register(c72);
float4 _c73 : register(c73);
float4 _c74 : register(c74);
float4 _c75 : register(c75);
float4 _c76 : register(c76);
float4 _c77 : register(c77);
float4 _c78 : register(c78);
float4 _c79 : register(c79);
float4 _c80 : register(c80);
float4 _c81 : register(c81);
float4 _c82 : register(c82);
float4 _c83 : register(c83);
float4 _c84 : register(c84);
float4 _c85 : register(c85);
float maxi : register(c86);
float temp : register(c87);

texture2D texs0 : register(s0);
texture2D texs1 : register(s1);
texture2D texs2 : register(s2);
texture2D texs3 : register(s3);
texture2D texs4 : register(s4);
texture2D texs5 : register(s5);
texture2D texs6 : register(s6);
texture2D texs7 : register(s7);
texture2D texs13 : register(s13);//palette
texture2D texs15 : register(s15);
//sampler2D s0=sampler_state { Texture=<texs0>; };
//sampler2D s1=sampler_state { Texture=<texs1>; };
sampler2D s2=sampler_state { Texture=<texs2>; };
//sampler2D s3=sampler_state { Texture=<texs3>; };
sampler2D s4=sampler_state { Texture=<texs4>; };
sampler2D s5=sampler_state { Texture=<texs5>; };
sampler2D s6=sampler_state { Texture=<texs6>; };
sampler2D s7=sampler_state { Texture=<texs7>; };
//sampler2D s13=sampler_state { Texture=<texs13>; };
sampler2D s15=sampler_state { Texture=<texs15>; };

//next samplers states fixing problems on ATI cards
sampler2D s0 = sampler_state
{
   Texture   = <texs0>;
MinFilter = LINEAR;//
MagFilter = LINEAR;//
MipFilter = NONE;//NONE;//LINEAR;
AddressU  = Clamp;
AddressV  = Clamp;
SRGBTexture=FALSE;
MaxMipLevel=0;
MipMapLodBias=0;
};

sampler2D s1 = sampler_state
{
   Texture   = <texs1>;
MinFilter = LINEAR;//
MagFilter = LINEAR;//
MipFilter = NONE;//NONE;//LINEAR;
AddressU  = Clamp;
AddressV  = Clamp;
SRGBTexture=FALSE;
MaxMipLevel=0;
MipMapLodBias=0;
};

sampler2D s3 = sampler_state
{
   Texture   = <texs3>;
MinFilter = LINEAR;//
MagFilter = LINEAR;//
MipFilter = NONE;//NONE;//LINEAR;
AddressU  = Clamp;
AddressV  = Clamp;
SRGBTexture=FALSE;
MaxMipLevel=0;
MipMapLodBias=0;
};

sampler2D s13 = sampler_state
{
Texture   = <texs13>;
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = NONE;
AddressU  = Clamp;
AddressV  = Clamp;
SRGBTexture=FALSE;
MaxMipLevel=0;
MipMapLodBias=0;
};

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++




float4 PS_C215BE6E(VS_OUTPUT_POST IN) : COLOR
{
float4 _oC0=0.0; //output

float4 _c0=float4(0, 0.212500006, 0.715399981, 0.0720999986);
float4 _c1=float4(0.25, 1, 256, 0);
float4 _c2=float4(0, 2, 4, 8);
float4 _c3=float4(58.1640015, 47.1300011, 0, 0);
float4 _c4=float4(-0.5, -1.5, 1.5, 0.5);
float4 _c5=float4(2, -1, 0.125, 0);
float4 _c6=float4(256, 2, 4, 8);
//mine
float4 _c7=float4(1.0, 0.1, 0.8, 1.0);
float4 _c8=float4(0.0, 0.1, 0.8, 0.333);
float4 _c9=float4(0.06, 0.1, 0.8, 0.1);
float4 _c10=float4(0.01, 1.4, 0.0, 0.32);
float4 _c11=float4(0.333333, 1.0, 0.0, 0.0);
float4 _c12=float4(0.27, 0.67, 0.06, 0.0);
float4 _c13=float4(0.0, 0.0, 0.0, 0.00001);
float4 _c150=float4(0.55, 0.9, 0.85, 0.9);
float4 _c195=float4(0.0, 0.0, 0.0, 0.07);//0.7


float4 r0;
float4 r1;
float4 r2;
float4 r3;
float4 r4;
float4 r5;
float4 r6;
float4 r7;
float4 r8;
float4 r9;
float4 r10;
float4 r11;


float4 _v0=0.0;
_v0.xy=IN.txcoord0.xy;


r1=tex2D(s2, _v0.xy); //HDRSampler
r2=tex2D(s3, _v0.xy); //BloomSampler



//*************************

float2 center;
float depth;
float focus;


r0=tex2D(s1, _v0.xy); //GBufferTextureSampler3
r0.y=-_c77.x + _c77.y; //-dofProj.x + dofProj.y
r0.y=1.0/r0.y;
r0.z=r0.y * _c77.y; //dofProj.y
r0.z=r0.z * -_c77.x; //dofProj.x
r0.x=_c77.y * -r0.y + r0.x;
r0.x=1.0/r0.x;
r0.y=r0.z * r0.x;

r0.w=abs(_c79.w);
r3=_c4; //-0.5, -1.5, 1.5, 0.5



depth=r0.z * r0.x - _c78.w; //dofDist.w
depth+=_c78.y * -r3.w; //dofDist.y
depth+=148;//offset
center.x=_v0.x-0.5;
center.y=0.5-_v0.y;



//***************


if(DoF_TAPS > 0)
{
depth = max(depth, 0); //fix zoom bug

float4 vDofParams = float4(0, 1.5, 450.0, 1.0); //near blur depth, focal plane depth, far blur depth, blurriness cut off constant
float dist;

if(depth < vDofParams.y)
    dist = (depth - vDofParams.y)/(vDofParams.y - vDofParams.x);
else
{
    dist = (depth - vDofParams.y)/(vDofParams.z - vDofParams.y);
    dist = clamp(dist, 0, vDofParams.w);
}

    dist = dist * 0.5 + 0.5;


/*
static float2 poisson[24]=
{
 float2(1.0, 0.0), //0 degrees
 float2(0.0, -1.0),
 float2(-1.0, 0.0),
 float2(0.0, 1.0),

 float2(0.7071, 0.7071), //45 degrees
 float2(0.7071, 0.7071),
 float2(-0.7071, -0.7071),
 float2(-0.7071, 0.7071),

 float2(0.9659, 0.2588), //15 degrees
 float2(0.2588, -0.9659),
 float2(-0.9659, -0.2588),
 float2(-0.2588, 0.9659),

 float2(0.8660, 0.5000), //60 degrees
 float2(0.5000, -0.8660),
 float2(-0.8660, -0.5000),
 float2(-0.5000, 0.8660),

 float2(0.5000, 0.8660), //30 degrees
 float2(0.8660, -0.5000),
 float2(-0.5000, -0.8660),
 float2(-0.8660, 0.5000),

 float2(0.2588, 0.9659), //75 degrees
 float2(0.9659, -0.2588),
 float2(-0.2588, -0.9659),
 float2(-0.9659, 0.2588),
};
*/


       static float3 poisson[60] =
       {
           float3( 0.2165, 0.1250, 1.0000 ),
           float3( 0.0000, 0.2500, 1.0000 ),
           float3( -0.2165, 0.1250, 1.0000 ),
           float3( -0.2165, -0.1250, 1.0000 ),
           float3( -0.0000, -0.2500, 1.0000 ),
           float3( 0.2165, -0.1250, 1.0000 ),
           float3( 0.4330, 0.2500, 1.0000 ),
           float3( 0.0000, 0.5000, 1.0000 ),
           float3( -0.4330, 0.2500, 1.0000 ),
           float3( -0.4330, -0.2500, 1.0000 ),
           float3( -0.0000, -0.5000, 1.0000 ),
           float3( 0.4330, -0.2500, 1.0000 ),
           float3( 0.6495, 0.3750, 1.0000 ),
           float3( 0.0000, 0.7500, 1.0000 ),
           float3( -0.6495, 0.3750, 1.0000 ),
           float3( -0.6495, -0.3750, 1.0000 ),
           float3( -0.0000, -0.7500, 1.0000 ),
           float3( 0.6495, -0.3750, 1.0000 ),
           float3( 0.8660, 0.5000, 1.0000 ),
           float3( 0.0000, 1.0000, 1.0000 ),
           float3( -0.8660, 0.5000, 1.0000 ),
           float3( -0.8660, -0.5000, 1.0000 ),
           float3( -0.0000, -1.0000, 1.0000 ),
           float3( 0.8660, -0.5000, 1.0000 ),
           float3( 0.2163, 0.3754, 0.8670 ),
           float3( -0.2170, 0.3750, 0.8670 ),
           float3( -0.4333, -0.0004, 0.8670 ),
           float3( -0.2163, -0.3754, 0.8670 ),
           float3( 0.2170, -0.3750, 0.8670 ),
           float3( 0.4333, 0.0004, 0.8670 ),
           float3( 0.4328, 0.5004, 0.8847 ),
           float3( -0.2170, 0.6250, 0.8847 ),
           float3( -0.6498, 0.1246, 0.8847 ),
           float3( -0.4328, -0.5004, 0.8847 ),
           float3( 0.2170, -0.6250, 0.8847 ),
           float3( 0.6498, -0.1246, 0.8847 ),
           float3( 0.6493, 0.6254, 0.9065 ),
           float3( -0.2170, 0.8750, 0.9065 ),
           float3( -0.8663, 0.2496, 0.9065 ),
           float3( -0.6493, -0.6254, 0.9065 ),
           float3( 0.2170, -0.8750, 0.9065 ),
           float3( 0.8663, -0.2496, 0.9065 ),
           float3( 0.2160, 0.6259, 0.8851 ),
           float3( -0.4340, 0.5000, 0.8851 ),
           float3( -0.6500, -0.1259, 0.8851 ),
           float3( -0.2160, -0.6259, 0.8851 ),
           float3( 0.4340, -0.5000, 0.8851 ),
           float3( 0.6500, 0.1259, 0.8851 ),
           float3( 0.4325, 0.7509, 0.8670 ),
           float3( -0.4340, 0.7500, 0.8670 ),
           float3( -0.8665, -0.0009, 0.8670 ),
           float3( -0.4325, -0.7509, 0.8670 ),
           float3( 0.4340, -0.7500, 0.8670 ),
           float3( 0.8665, 0.0009, 0.8670 ),
           float3( 0.2158, 0.8763, 0.9070 ),
           float3( -0.6510, 0.6250, 0.9070 ),
           float3( -0.8668, -0.2513, 0.9070 ),
           float3( -0.2158, -0.8763, 0.9070 ),
           float3( 0.6510, -0.6250, 0.9070 ),
           float3( 0.8668, 0.2513, 0.9070 )
       };


float2 pixelSizeHigh;
float2 pixelSizeLow;


pixelSizeHigh.x = 1.005 / _c44.x;
pixelSizeHigh.y = 1.005 / _c44.y;

pixelSizeLow.xy = pixelSizeHigh.xy;

float2 vMaxCoC = float2(5.0, 10.0);

float radiusScale = 0.4;

float discRadius;
float discRadiusLow;
float centerDepth;
float4 tdepth;

float4  tapHigh;
float4  tapLow;

centerDepth = dist;

discRadius = abs(centerDepth * vMaxCoC.y - vMaxCoC.x);
discRadiusLow = discRadius * radiusScale;

r1 = 0.0;

for(int t = 0; t < DoF_TAPS; t++)
{
    float2  coordLow = _v0.xy + (pixelSizeLow.xy * poisson[t].xy * discRadiusLow);
    float2  coordHigh = _v0.xy + (pixelSizeHigh.xy * poisson[t].xy * discRadius);

    tapLow = tex2D(s2, coordLow.xy) * poisson[t].z;
    tapHigh = tex2D(s2, coordHigh.xy) * poisson[t].z;

    tdepth = tex2D(s1, coordHigh.xy); //GBufferTextureSampler3
    tdepth.y = -_c77.x + _c77.y; //-dofProj.x + dofProj.y
    tdepth.y = 1.0 / tdepth.y;
    tdepth.z = tdepth.y * _c77.y; //dofProj.y
    tdepth.z = tdepth.z * -_c77.x; //dofProj.x
    tdepth.x = _c77.y * -tdepth.y + tdepth.x;
    tdepth.x = 1.0 / tdepth.x;

    tdepth.w = tdepth.z * tdepth.x - _c78.w; //dofDist.w
    tdepth.w += _c78.y * -r3.w; //dofDist.y
    tdepth.w += 148;//offset

    tdepth.w = max(tdepth.w, 0); //fix zoom bug

    if(tdepth.w < vDofParams.y)
        tapHigh.w = (tdepth.w - vDofParams.y)/(vDofParams.y - vDofParams.x);
    else
    {
        tapHigh.w = (tdepth.w - vDofParams.y)/(vDofParams.z - vDofParams.y);
        tapHigh.w = clamp(tapHigh.w, 0, vDofParams.w);
    }

        tapHigh.w = tapHigh.w * 0.5 + 0.5;

    tapLow.w = tapHigh.w;

    float  tapBlur = abs(tapHigh.w * 2.0 - 1.0);
    float4  tap = lerp(tapHigh, tapLow, tapBlur);

    if(tap.w >= centerDepth) tap.w = 1.0;
    else tap.w = abs(tap.w * 2.0 - 1.0);

    r1.xyz += tap.xyz * tap.w;
    r1.w += tap.w;


}

r1.xyz /= r1.w;

//float4 dofcolor = r1;

//dofcolor.w = r1.w / DoF_TAPS;
}

//***************

r1.w=dot(r1.xyz, r1.xyz); //dp3
r1.w=1.0/r1.w;
if (-r1.w<0.0)
{
 r3 = r1;
 r4 = r1;
 r5 = r1;
 r6 = r1;
 r7 = r1;
}
else
{
 r3 = _c0.x;
 r4 = _c0.x;
 r5 = _c0.x;
 r6 = _c0.x;
 r7 = _c0.x;
}

r0.x=r0.z * r0.x - _c78.w; //dofDist.w
r0.x=_c78.y * -r3.w + r0.x; //dofDist.y
r1.w=max(r0.x, _c0.x); //0.0
r0.x=1.0/_c78.z; //dofDist.z
r0.x=r1.w * r0.x;
r1.w=lerp(_c79.y, _c79.z, r0.x);//dofBlur
r0.x=min(_c79.z, r1.w); //dofBlur.z

r0.z=dot(r7.xyz, _c0.yzw); //0.212500006, 0.715399981, 0.0720999986
r8.x=dot(r3.xyz, _c0.yzw); //0.212500006, 0.715399981, 0.0720999986
r8.y=dot(r4.xyz, _c0.yzw); //0.212500006, 0.715399981, 0.0720999986
r8.z=dot(r5.xyz, _c0.yzw); //0.212500006, 0.715399981, 0.0720999986
r8.w=dot(r6.xyz, _c0.yzw); //0.212500006, 0.715399981, 0.0720999986
r1.w=dot(r8, _c1.xxxx); //0.25

r8=r8 - r1.w;
r2.w=dot(r8, r8);
r0.z=r0.z - r1.w;
r0.z=r0.z * r0.z - r2.w;
r0.x=r0.x*r0.x;
if (r0.z<0.0)
{
 r0.x=r0.x;
} else r0.x=_c1.y; //1.0


r8=tex2D(s0, _v0.xy); //GBufferTextureSampler2


r8.yz=_c1.yz; // 1.0, 256.0
r9=r8.w * -r8.z + _c2; //0, 2, 4, 8
if (r9.w<0.0) //r9<0.0
{
 r9=_c1.w; //0.0
} else r9=_c1.y; //1.0
//r9 is filtered sky mask

float skymask = r9.x;

if(depth < 1000) skymask = 0.0;


//r10=r8.w + tempc6;//c6.yzwx; //256, 2, 4, 8
r10=r8.w * -_c6.x + _c6.yzwx; //256, 2, 4, 8


if (r10.x<0.0)
{
 r10.x=-_c1.w; //0.0
} else r10.x=-_c1.y; //1.0

if (r10.y<0.0)
{
 r10.y=-_c1.w; //0.0
} else r10.y=-_c1.y; //1.0

if (r10.z<0.0)
{
 r10.z=-_c1.w; //0.0
} else r10.z=-_c1.y; //1.0

if (r10.w<0.0)
{
 r10.w=-_c1.w; //0.0
} else r10.w=-_c1.y; //1.0


r9=r9 + r10;
r9=r9 * _c4.x; //-0.5


r0.z=dot(r9, _c1.yyyy); //1.0
r0.z=r0.z + _c4.w; //0.5
r0.z=1.0/r0.z;
r8.xzw=r3.xyz * r9.x;


r7.xyz=r7 * _c4.w + r8.xzw; //0.5
r7.xyz=r4 * r9.y + r7;
r7.xyz=r5 * r9.z + r7;
r7.xyz=r6 * r9.w + r7;
r7.xyz=r0.z * r7;
r0.z=-r0.x + _c1.y; //1.0
r1.w=r0.x * _c1.x; //0.25


r3.xyz=r3 * r1.w;
r3.xyz=r7 * r0.z + r3;
r3.xyz=r4 * r1.w + r3;
r3.xyz=r5 * r1.w + r3;
r3.xyz=r6 * r1.w + r3;


//r4.xyz=_v0.yxy * _c5.x + _c5.y; //2, -1
r4.x=_v0.y * _c5.x + _c5.y;
r4.y=_v0.x * _c5.x + _c5.y;
r4.z=_v0.y * _c5.x + _c5.y;

r0.z=r4.y * _c77.z; //dofProj.z
r0.z=r0.y * r0.z;
r1.w=-r4.x * _c77.w; //dofProj.w
r1.w=r0.y * r1.w;
r5.xyz=r1.w * _c73; //motionBlurMatrix.2
r5.xyz=r0.z * _c72 + r5; //motionBlurMatrix.1
r5.xyz=-r0.y * _c74 + r5; //motionBlurMatrix.3
r5.xyz=r5 + _c75; //motionBlurMatrix.4

r0.y=-r5.z * _c77.z; //dofProj.z
r0.y=1.0/r0.y;
r6.x=r5.x * r0.y;
r0.y=r5.z * _c77.w; //dofProj.w
r0.y=1.0/r0.y;
r6.y=r5.y * r0.y;
//r0.yz=-r4 + r6.xxyw;
r0.yz=-r4.yz + r6.xy;

//r0.yz=r0 * _c80.x; //gDirectionalMotionBlurLength.x
r0.y=r0.y * _c80.x;
r0.z=r0.z * _c80.x;
//r4.xy=r0.yzzw * _c5.z; //0.125
r4.x=r0.y * _c5.z;
r4.y=r0.z * _c5.z;
r5=tex2D(s6, _v0.xy); //StencilCopySampler
r1.w=r5.x + -_c85.x; //PLAYER_MASK.x
r4.zw=r3.xyxy * _c2.w; //8.0
//r4.z=r3.x * _c2.w;
//r4.w=r3.y * _c2.w;
//r4.zw=_v0.xyxy * _c3.xyxy + r4; //58.1640015, 47.1300011
r4.z=_v0.x * _c3.x + r4.z; //v2
r4.w=_v0.y * _c3.y + r4.w; //v2
r5=tex2D(s5, r4.zw); //JitterSampler
r2.w=r5.x + _c4.x; //-0.5
//r4.zw=r4.xyxy * r2.w + _v0.xyxy; //v0
r4.z=r4.x * r2.w + _v0.x; //v2
r4.w=r4.y * r2.w + _v0.y; //v2
r5.xyz=r3.xyz;
r2.w=_c1.y; //1.0
r3.w=_c1.y; //1.0

//motion blur
for (int iii=0; iii<7; iii++)
{
// r6.xy=r4 * r3.w + r4.zwzw; //v0
r6.x=r4.x * r3.w + r4.z; //v2
r6.y=r4.y * r3.w + r4.w; //v2
 r7=tex2D(s6, r6.xy);
 r5.w=r7.x - _c85.x;
 if (r5.w<0.0)
 {
  r5.w=_c1.y; //1.0
 } else r5.w=_c1.w; //0.0
 r6=tex2D(s2, r6.xy);
 r5.xyz=r6.xyz * r5.w + r5.xyz;
 r2.w=r2.w + r5.w;
 r3.w=r3.w + _c1.y; //1.0
}



r2.w=1.0/r2.w;

//r0.yz=r0 * _c44.xxyw; //globalScreenSize
r0.y=r0.y * _c44.x; //globalScreenSize
r0.z=r0.z * _c44.y; //globalScreenSize

r0.y=dot(r0.yz, r0.yz)+_c0.x;//dp2

//r0.y=sqrt(r0.y);
//r0.y=1.0/r0.y;
r0.y=pow(r0.y, _c4.w); //0.5

r0.y=r0.y * _c4.w; //0.5
r0.x=r0.x + _c1.y; //1.0
r0.x=1.0/r0.x;
//r0.y is wrong
r0.x=saturate(r0.y * r0.x);
r4.xyz=r5 * r2.w - r3;
r0.xyz=r0.x * r4 + r3;

//_oC0.xyz=0.5*r0.xyz;

if (-r1.w<0.0) r0.xyz=r3.xyz;
if (-r0.w<0.0) r0.xyz=r1.xyz;



//for future use
r11=r0;




r1=tex2D(s4, _c0.x); //AdapLumSampler , 0.0
r0.w=1.0/r1.x;
r0.w=r0.w * _c81.y; //ToneMapParams.y
r1.x=1.0/r0.w;
r1.x=r1.x * _c81.x; //ToneMapParams.x
r1.xyz=r2 * _c66.x - r1.x; //Exposure.x
r2.xyz=max(r1, _c0.x); //0.0
r1.xyz=r2 * _c81.z; //ToneMapParams.z
r1.xyz=r1 * _c1.x; //0.25
r0.xyz=r0 * _c66.x + r1; //Exposure.x
r1.xyz=r0.w * r0;
r1.x=dot(r1.xyz, _c0.yzw); //0.2125, 0.7154, 0.0721
r0.xyz=r0 * r0.w - r1.x;
r0.xyz=_c82.x * r0 + r1.x; //deSatContrastGamma.x
r0.w=r1.x * _c84.w; //ColorShift.w
r1.yzw=r0.w * _c84.xxyz; //ColorShift

//darken as DarkeningAmount, but keeps colors
r2.x=saturate(r0.w);
r0.xyz=r0.xyz - _c84.xyz * r0.w; //ColorShift
r0.xyz=r2.x * r0.xyz + r1.yzww;

//coloring (green, brown, ...)
r0.xyz=2.0 * r0.xyz * _c83.xyz; //ColorCorrect

//keeps colors, changes luma
r1.x=saturate(r1.x);//luma
r0.w=_c82.z - _c1.y; //deSatContrastGamma.z - 1.0
r2.x=pow(r1.x, r0.w);

_oC0.xyz=r0.xyz * r2.x; //orig
_oC0.w=_c1.y; //1.0

//*******************************

float4 color;

color = r11;

float4 colorbloom  =tex2D(s3, _v0.xy); //bloom

colorbloom.r *= 1.1;
colorbloom.g *= 1.0;
colorbloom.b *= 0.9;

color += colorbloom * EBloomAmountV1;

//increase color
float cgray = dot(color.xyz, 0.333);//luma
float3 poweredcolor = pow(color.xyz, EColorSaturation);
float newgray = dot(poweredcolor.xyz, 0.333);
color.xyz = poweredcolor.xyz*cgray/(newgray+0.0001);

r10.x = dot(color.xyz, _c12.xyz); //luminance
r10.x = max(r10.x, 1.0) * EBrightnessV1;
color *= r10.x;

color.xyz = lerp(color.xyz, pow(color.xyz*2, 0.6), 0.3);

r5 = tex2D(s4, _c0.x);//adaptation luminance
//r5=1.0;

//adaptation
r5.w = r5.x;
color.xyz /= r5.w;
r3.xy = _c10.xwxw;
r3.xy *= r5.w;

color *= _c7.y; //pre multiply
r1 = color * _c7.z + _c7.w; //e multiply
color /= r1;

//HERE 0.8 is bloom for additive mix
color += EBloomAmountAdditiveV1*colorbloom * r3.x;

       color.xyz = lerp(color.xyz, 1 - pow(2.71, -color.xyz), 0.4);

float middlegray = dot(color.xyz, 0.3333);
float3 diffcolor = color.rgb-middlegray;
color.rgb += diffcolor*1.0;

color.xyz = saturate(color.xyz);
color.xyz = lerp(color.xyz, sin(color.xyz*1.57079), 0.4);



#ifdef APPLYGAMECOLORCORRECTION
//apply original corrections (((
r0.w=1.0;//_c81.y/r5.x;//r5 is AdapLumSampler

luma=0.27*color.r + 0.67*color.g + 0.06*color.b;
color.xyz=color.xyz * r0.w - luma;
color.xyz=_c82.x * color.xyz + luma; //deSatContrastGamma.x
r0.w=luma * _c84.w; //ColorShift.w
r1.xyz=r0.w * _c84.xyz; //ColorShift

//darken as DarkeningAmount, but keeps colors
color.xyz=color.xyz - _c84.xyz * r0.w; //ColorShift
color.xyz=saturate(r0.w) * color.xyz + r1.xyz;

//coloring (green, brown, ...)
color.xyz=2.0 * color.xyz * _c83.xyz; //ColorCorrect

//desaturating
luma=saturate(luma);
r0.w=_c82.z - _c1.y; //deSatContrastGamma.z - 1.0
color.xyz=color.xyz * pow(luma, r0.w);
#endif //APPLYGAMECOLORCORRECTION


//pallete texture (0.082 version feature)
#ifdef E_CC_PALETTE
color.rgb=saturate(color.rgb);
float3 brightness=0.001;//tex2D(s4, _c0.x);//adaptation luminance
// brightness=brightness/(brightness+1.0);
float3 palette;
float4 uvsrc=0.0;
uvsrc.y=brightness.r;
uvsrc.x=color.r;
palette.r=tex2Dlod(s13, uvsrc).r;
uvsrc.x=color.g;
uvsrc.y=brightness.g;
palette.g=tex2Dlod(s13, uvsrc).g;
uvsrc.x=color.b;
uvsrc.y=brightness.b;
palette.b=tex2Dlod(s13, uvsrc).b;
color.rgb=palette.rgb;
#endif //E_CC_PALETTE

float luma = dot(color.xyz, _c12.xyz);
float3 blend = luma.xxx;
float L = min(1, max(0, 10*(luma - 0.45)));
float3 result1 = 2.0 * color.xyz * blend;
float3 result2 = 1.0 - 2.0*(1.0 - blend)*(1.0 - color.xyz);
float3 newColor = lerp(result1.xyz, result2.xyz, L);
float3 mixRGB = BP_factor * newColor.xyz;
mixRGB += ((1.0f - BP_factor) * color.xyz);

color.xyz = mixRGB;


float Weight;

r0.xyz = color.xyz;
r2.x = dot(color.xyz, 0.3333);
r2.x = 1 - pow(2.71, -r2.x*6.0);
r2.x = r2.x * 0.125;
r0.xyz = saturate(r0.xyz - r2.x);
r0.xyz = lerp(r0.xyz, sin(r0.xyz*1.570796), 1.0);
Weight=0.6 - r2.x*0.3;
color.xyz=lerp(color.xyz, r0.xyz, Weight);

r10.x = dot(color.xyz, _c12.xyz);
color.xyz = lerp(color.xyz, r10.x, 0.1);

/*
focus = length(center.xy)*1.41421;
focus = pow(focus, 5);

color.xyz -= focus*0.3;
*/

color.xyz = saturate(color.xyz);


_oC0.xyz=color.xyz;

//_oC0.w=1.0;
return _oC0;
}


//mine temporary post process
technique Shader_C215BE6E
{
   pass p0
   {
 PixelShader  = compile ps_3_0 PS_C215BE6E();
}
}




//original shader of post processing
technique Shader_ORIGINALPOSTPROCESS
{
   pass p0
   {

PixelShader=
asm
{
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
//
// Parameters:
//
//   sampler2D AdapLumSampler;
//   sampler2D BloomSampler;
//   float4 ColorCorrect;
//   float4 ColorShift;
//   float Exposure;
//   sampler2D GBufferTextureSampler2;
//   sampler2D GBufferTextureSampler3;
//   sampler2D HDRSampler;
//   sampler2D JitterSampler;
//   float PLAYER_MASK;
//   sampler2D StencilCopySampler;
//   float4 TexelSize;
//   float4 ToneMapParams;
//   float4 deSatContrastGamma;
//   float4 dofBlur;
//   float4 dofDist;
//   float4 dofProj;
//   float gDirectionalMotionBlurLength;
//   float4 globalScreenSize;
//   row_major float4x4 motionBlurMatrix;
//
//
// Registers:
//
//   Name                         Reg   Size
//   ---------------------------- ----- ----
//   globalScreenSize             c44      1
//   Exposure                     c66      1
//   motionBlurMatrix             c72      4
//   TexelSize                    c76      1
//   dofProj                      c77      1
//   dofDist                      c78      1
//   dofBlur                      c79      1
//   gDirectionalMotionBlurLength c80      1
//   ToneMapParams                c81      1
//   deSatContrastGamma           c82      1
//   ColorCorrect                 c83      1
//   ColorShift                   c84      1
//   PLAYER_MASK                  c85      1
//   GBufferTextureSampler2       s0       1
//   GBufferTextureSampler3       s1       1
//   HDRSampler                   s2       1
//   BloomSampler                 s3       1
//   AdapLumSampler               s4       1
//   JitterSampler                s5       1
//   StencilCopySampler           s6       1
//

   ps_3_0
   def c0, 0, 0.212500006, 0.715399981, 0.0720999986
   def c1, 0.25, 1, 256, 0
   def c2, 0, 2, 4, 8
   def c3, 58.1640015, 47.1300011, 0, 0
   def c4, -0.5, -1.5, 1.5, 0.5
   def c5, 2, -1, 0.125, 0
   def c6, 256, 2, 4, 8
def c180, 0.0, 0.0, 0.0, 100.5
def c181, 1.0, 0.0, 0.0, 20.01
def c183, 800.0, 600.0, 0.0, 100.5
   defi i0, 7, 0, 0, 0
   dcl_texcoord v0.xy
   dcl_2d s0
   dcl_2d s1
   dcl_2d s2
   dcl_2d s3
   dcl_2d s4
   dcl_2d s5
   dcl_2d s6
   texld r0, v0, s1
   add r0.y, -c77.x, c77.y
   rcp r0.y, r0.y
   mul r0.z, r0.y, c77.y
   mul r0.z, r0.z, -c77.x
   mad r0.x, c77.y, -r0.y, r0.x
   rcp r0.x, r0.x
   mul r0.y, r0.z, r0.x
   texld r1, v0, s2
   texld r2, v0, s3
   abs r0.w, c79.w
   mov r3, c4
   mad r4.xy, c76, r3, v0
   texld r4, r4, s2
   mad r5.xy, c76, r3.zxzw, v0
   texld r5, r5, s2
   mad r3.xz, c76.xyyw, r3.wyzw, v0.xyyw
   texld r6, r3.xzzw, s2
   mad r3.xy, c76, r3.ywzw, v0
   texld r7, r3, s2
   dp3 r1.w, r4, r4
   rcp r1.w, r1.w
   cmp r3.xyz, -r1.w, c0.x, r4
   dp3 r1.w, r5, r5
   rcp r1.w, r1.w
   cmp r4.xyz, -r1.w, c0.x, r5
   dp3 r1.w, r6, r6
   rcp r1.w, r1.w
   cmp r5.xyz, -r1.w, c0.x, r6
   dp3 r1.w, r7, r7
   rcp r1.w, r1.w
   cmp r6.xyz, -r1.w, c0.x, r7
   dp3 r1.w, r1, r1
   rcp r1.w, r1.w
   cmp r7.xyz, -r1.w, c0.x, r1
   mad r0.x, r0.z, r0.x, -c78.w
   mad r0.x, c78.y, -r3.w, r0.x
   max r1.w, r0.x, c0.x
   rcp r0.x, c78.z
   mul r0.x, r1.w, r0.x
   lrp r1.w, r0.x, c79.z, c79.y
   min r0.x, c79.z, r1.w
   dp3 r0.z, r7, c0.yzww
   dp3 r8.x, r3, c0.yzww
   dp3 r8.y, r4, c0.yzww
   dp3 r8.z, r5, c0.yzww
   dp3 r8.w, r6, c0.yzww
   dp4 r1.w, r8, c1.x
   add r8, r8, -r1.w
   dp4 r2.w, r8, r8
   add r0.z, r0.z, -r1.w
   mad r0.z, r0.z, r0.z, -r2.w
   mul r0.x, r0.x, r0.x
   cmp r0.x, r0.z, c1.y, r0.x
   texld r8, v0, s0
   mov r8.yz, c1
   mad r9, r8.w, -r8.z, c2
   cmp r9, r9, c1.y, c1.w
   mad r10, r8.w, -c6.x, c6.yzwx
   cmp r10, r10, -c1.y, -c1.w
   add r9, r9, r10
   mul r9, r9, c4.x
   dp4 r0.z, r9, c1.y
   add r0.z, r0.z, c4.w
   rcp r0.z, r0.z
   mul r8.xzw, r3.xyyz, r9.x
   mad r7.xyz, r7, c4.w, r8.xzww
   mad r7.xyz, r4, r9.y, r7
   mad r7.xyz, r5, r9.z, r7
   mad r7.xyz, r6, r9.w, r7
   mul r7.xyz, r0.z, r7
   add r0.z, -r0.x, c1.y
   mul r1.w, r0.x, c1.x
   mul r3.xyz, r3, r1.w
   mad r3.xyz, r7, r0.z, r3
   mad r3.xyz, r4, r1.w, r3
   mad r3.xyz, r5, r1.w, r3
   mad r3.xyz, r6, r1.w, r3
   mad r4.xyz, v0.yxyw, c5.x, c5.y
   mul r0.z, r4.y, c77.z
   mul r0.z, r0.y, r0.z
   mul r1.w, -r4.x, c77.w
   mul r1.w, r0.y, r1.w
   mul r5.xyz, r1.w, c73
   mad r5.xyz, r0.z, c72, r5
   mad r5.xyz, -r0.y, c74, r5
   add r5.xyz, r5, c75
   mul r0.y, -r5.z, c77.z
   rcp r0.y, r0.y
   mul r6.x, r5.x, r0.y
   mul r0.y, r5.z, c77.w
   rcp r0.y, r0.y
   mul r6.y, r5.y, r0.y
   add r0.yz, -r4, r6.xxyw
   mul r0.yz, r0, c80.x
   mul r4.xy, r0.yzzw, c5.z
   texld r5, v0, s6
   add r1.w, r5.x, -c85.x
   mul r4.zw, r3.xyxy, c2.w
   mad r4.zw, v0.xyxy, c3.xyxy, r4
   texld r5, r4.zwzw, s5
   add r2.w, r5.x, c4.x
   mad r4.zw, r4.xyxy, r2.w, v0.xyxy
   mov r5.xyz, r3
   mov r2.w, c1.y
   mov r3.w, c1.y

   rep i0
     mad r6.xy, r4, r3.w, r4.zwzw
     texld r7, r6, s6
     add r5.w, r7.x, -c85.x
     cmp r5.w, r5.w, c1.w, c1.y
     texld r6, r6, s2
     mad r5.xyz, r6, r5.w, r5
     add r2.w, r2.w, r5.w
     add r3.w, r3.w, c1.y
   endrep

   rcp r2.w, r2.w
   mul r0.yz, r0, c183.xxyw//c44.xxyw
   dp2add r0.y, r0.yzzw, r0.yzzw, c0.x
   rsq r0.y, r0.y
   rcp r0.y, r0.y
   mul r0.y, r0.y, c4.w
   add r0.x, r0.x, c1.y
   rcp r0.x, r0.x
   mul_sat r0.x, r0.y, r0.x
   mad r4.xyz, r5, r2.w, -r3
   mad r0.xyz, r0.x, r4, r3
   cmp r0.xyz, r1.w, r3, r0
   cmp r0.xyz, -r0.w, r0, r1

   texld r1, c0.x, s4
   rcp r0.w, r1.x
   mul r0.w, r0.w, c81.y
   rcp r1.x, r0.w
   mul r1.x, r1.x, c81.x
   mad r1.xyz, r2, c66.x, -r1.x
   max r2.xyz, r1, c0.x
   mul r1.xyz, r2, c81.z
   mul r1.xyz, r1, c1.x
   mad r0.xyz, r0, c66.x, r1
   mul r1.xyz, r0.w, r0
   dp3 r1.x, r1, c0.yzww
   mad r0.xyz, r0, r0.w, -r1.x
   mad r0.xyz, c82.x, r0, r1.x
   mul r0.w, r1.x, c84.w
   mul r1.yzw, r0.w, c84.xxyz
   mov_sat r2.x, r0.w
   mad r0.xyz, c84, -r0.w, r0
   mad r0.xyz, r2.x, r0, r1.yzww
   mul r0.xyz, r0, c83
   add r0.xyz, r0, r0
   mov_sat r1.x, r1.x
   add r0.w, -r8.y, c82.z
   pow r2.x, r1.x, r0.w
//mul r2.x, r2.x, c181.x
   mul oC0.xyz, r0, r2.x
   mov oC0.w, c1.y

//texld r1, v0, s2
//mul oC0.xyz, r1, c199.z
};
   }
}


n3o123
  • n3o123

    Mark Chump

  • Members
  • Joined: 01 Apr 2011

#23026

Posted 22 June 2011 - 05:21 PM

I used now the Dpeasant effect.txt

user posted image
user posted image
user posted image
user posted image
user posted image

Stolen_X
  • Stolen_X

    Peon

  • Members
  • Joined: 12 Sep 2010

#23027

Posted 22 June 2011 - 05:23 PM

This forum reminds me of that old now, when everyone shared with each other codes, etc... icon14.gif

Sry my english... blush.gif

[FDC]NYZE.ONE
  • [FDC]NYZE.ONE

    Gangsta

  • BUSTED!
  • Joined: 21 Sep 2010

#23028

Posted 22 June 2011 - 05:25 PM

Agree With Stolen smile.gif

NaidRaida
  • NaidRaida

    Inactive user

  • Members
  • Joined: 14 Dec 2010

#23029

Posted 22 June 2011 - 05:26 PM Edited by NaidRaida, 22 June 2011 - 05:29 PM.

QUOTE (Dpeasant3 @ Wednesday, Jun 22 2011, 17:07)
This is a 3-pass effect.txt i use with AA. so youll get FXAA(with lowered qulity) + colourshift + sharpening + noise. You should edit it to your tastes.

Thanks but you should describe which parameters are relevant to change visual quality.
How should we use this code which no explanation? sarcasm.gif
No need to explain every parameter but the important ones.
Thereīs a lot of new code Iīve never seen.

Dpeasant3
  • Dpeasant3

    landsknecht

  • Members
  • Joined: 05 Jun 2010

#23030

Posted 22 June 2011 - 05:31 PM

QUOTE (NaidRaida @ Wednesday, Jun 22 2011, 20:26)
QUOTE (Dpeasant3 @ Wednesday, Jun 22 2011, 17:07)
This is a 3-pass effect.txt i use with AA. so youll get FXAA(with lowered qulity) + colourshift + sharpening + noise. You should edit it to your tastes.

Thanks but you should describe which parameters are relevant to change visual quality.
How should we use this code which no explanation? sarcasm.gif
No need to explain every parameter but the important ones.
Thereīs a lot of new code Iīve never seen.

Why?
float ShiftSamplingRange=0.1;
float SamplingRange=1.0; //sharpening or blurring range
float SharpeningAmount=9.5;
float ScanLineAmount=0.0;
float ScanLineRepeat=1.0; //0.5, 0.3333, 0.25, 0.125, so on
float NoiseAmount=0.22;
Its obvious that these lines should be edited. I mean i dont know a sh*t about hlsl, but still these lines speak of themselves.

NaidRaida
  • NaidRaida

    Inactive user

  • Members
  • Joined: 14 Dec 2010

#23031

Posted 22 June 2011 - 05:37 PM

Yeah, yeah, this is known, I thought there must be more "to adjust for own taste" because of new effects. If not then great! Thank you! smile.gif
You donīt know a sh*t about HLSL? Come on, you do! wink.gif

Dpeasant3
  • Dpeasant3

    landsknecht

  • Members
  • Joined: 05 Jun 2010

#23032

Posted 22 June 2011 - 05:39 PM

QUOTE (NaidRaida @ Wednesday, Jun 22 2011, 20:37)
Yeah, yeah, this is known, I thought there must be more "to adjust for own taste" because of new effects. If not then great! Thank you! smile.gif

No, i just combined 3 effects into one and edited them to match my setts, thats it. smile.gif

NaidRaida
  • NaidRaida

    Inactive user

  • Members
  • Joined: 14 Dec 2010

#23033

Posted 22 June 2011 - 05:40 PM

Sorry then, I thought it would be more complicated.

tomsteel1
  • tomsteel1

    ✘Texturer and Tester✘

  • Members
  • Joined: 13 May 2011

#23034

Posted 22 June 2011 - 05:46 PM

@Dpeasent3 Are you going to update your sets with the new stuff because i really cannot do this, lol i keep failing, Plz update them, i love your work

NaidRaida
  • NaidRaida

    Inactive user

  • Members
  • Joined: 14 Dec 2010

#23035

Posted 22 June 2011 - 06:00 PM Edited by NaidRaida, 22 June 2011 - 06:02 PM.

QUOTE (tomsteel1 @ Wednesday, Jun 22 2011, 17:46)
@Dpeasent3 Are you going to update your sets with the new stuff because i really cannot do this, lol i keep failing, Plz update them, i love your work

You just need to copy the code and put it into your file. That canīt be that hard, huh?
Itīs the effect.txt file. Open it with editor and paste all the code. Delete the other before. Do a backup of the old code!!!
All you need is the code he posted.

[FDC]NYZE.ONE
  • [FDC]NYZE.ONE

    Gangsta

  • BUSTED!
  • Joined: 21 Sep 2010

#23036

Posted 22 June 2011 - 06:05 PM

Awesome Icelaglace enbeffect.fx+DP3 effect.txt

user posted image

fzn09
  • fzn09

    Rat

  • Members
  • Joined: 15 Jul 2009

#23037

Posted 22 June 2011 - 06:14 PM

dp3 icon14.gif and gpc icon14.gif

which part in enbeffect.fx gives the bokeh DOF effect?

Jakshi
  • Jakshi

    Player Hater

  • Members
  • Joined: 19 May 2010

#23038

Posted 22 June 2011 - 06:17 PM

Hey fzn 09 could you upload your enbeffect.fx and effect.txt. When I try to put the dof code into the file it brakes enb and it looks like vanilla. also i'm not sure if fxaa is working as it should.

corvettelover
  • corvettelover

    Still D.R.E.

  • Members
  • Joined: 27 Jun 2008

#23039

Posted 22 June 2011 - 06:48 PM

Hey i just want the fxaa and or the one posted on this page that has fxaa+the other stuff. however, could someone post a enb config that looks like vanilla IV? I tried but i cannot figure it out for the life of me. basically i just want fxaa and/or + fxaa + colourshift + sharpening + noise.

thanks.

nkjellman
  • nkjellman

    Boss

  • Members
  • Joined: 28 Aug 2008
  • United-States

#23040

Posted 22 June 2011 - 06:55 PM

More pics of my ENB series settings. Keep in mind Im using these settings on patch 1.0.7.0.

user posted image
user posted image
user posted image
user posted image
user posted image
user posted image
user posted image
user posted image
user posted image
user posted image

So what do you think?




2 user(s) are reading this topic

1 members, 1 guests, 0 anonymous users