• Вход / Регистрация
    Логин:
    Пароль:
Поиск по сайту
Архив - только для чтения
Форум ГТА » Сайт и форум » Архив » ENB Series GTA 4 (Часть IV) (Ваши настройки, инструкции, вопросы и т.д.)
ENB Series GTA 4 (Часть IV)
offline
 memphis
Дата: Понедельник, 2012-04-02, 23:30 | Сообщение # 1
Гангстер
Сообщений: 2690
ENBSeries GTA IV (Часть IV). (I), (II), (III)



Прежде чем обращаться в эту тему, советуем ознакомиться с FAQ. Вдруг там уже есть ответ на Ваш вопрос?

Информация, обязательная к прочтению:
Все сообщения, никаким образом не касающиеся темы обсуждения ENB, будут удаляться, а авторы - наказываться без предупреждения.
Для тех, кому не понятно, что изложено выше, - формулировка слегка проще: флуд в данной теме запрещен, причем в любых его проявлениях, спасибо за внимание, надеемся на ваше благоразумие.

Максимальный размер публикуемого изображения без превью не должен превышать 300px по большей стороне.
Все скриншоты и видео прятать под спойлер!

Тэг spoiler используется именно так, как показано в п.2.7 правил сайта. Обратите внимание на кавычки и проверьте перед отправкой сообщения, так ли это оформили Вы.







 
offline
 pac2
Дата: Вторник, 2013-01-22, 20:13 | Сообщение # 4306
Пользователь
Сообщений: 84
Improff, не надо удалять еффект, возьми лучше с конфига факе
hunter63, спасибо)


http://fotki.yandex.ru/users/ko-tolik/
skype: medusascream31


Сообщение отредактировал pac2pac - Вторник, 2013-01-22, 20:15
 
offline
 Improff
Дата: Вторник, 2013-01-22, 21:14 | Сообщение # 4307
Пользователь
Сообщений: 58
pac2pac, спасибо, помогло.
Vitos, пробывал на этом кфг, там муть необъяснимая началась.А вот на некоторых кфг удаление помогает,но не в этом.
 
offline
 студент
Дата: Среда, 2013-01-23, 01:09 | Сообщение # 4308
Пользователь
Сообщений: 18
всем привет. сейчас у меня такой enbeffect ,хочу добавить доф. помогите плиз
[spoiler="Скрытый текст"]// Adjustable Variables

#include "enbconfig.ini"

// Depth of Field

//#define HQDOF
#define LQDOF
//#define NODOF

// distance at which the depth of field blur begins

float DOFDistance = 400;

////////////////////////////////////////////

// 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
// 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

////////////////////////////////////////////

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>; };

//Sampler 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 s5 = sampler_state
{
Texture = <texs5>;
MinFilter = GaussianQuad;
MagFilter = GaussianQuad;
MipFilter = NONE;
AddressU = Wrap;
AddressV = wrap;
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);
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 _c12 = float4(0.299, 0.587, 0.114, 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

////////////////////////////////////////////

// Depth of Field

#ifdef HQDOF

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;
int DoF_TAPS = 60;
if (DoF_TAPS > 0)
{
depth = max(depth, 0);
float4 vDofParams = float4(2.5, 0, DOFDistance, 1.0);
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 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.0 / _c44.x;
pixelSizeHigh.y = 1.0 / _c44.y;
pixelSizeLow.xy = pixelSizeHigh.xy;
float2 vMaxCoC = float2(5.0, 10.0);
float radiusScale = DOFBlurAmount*0.1;
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;
//}
//else
//{
// r3 = _c0.x;
//}
r3 = lerp(_c0.x, r1, saturate(r1.w * 10000));
r4 = r3;
r5 = r3;
r6 = r3;
r7 = r3;

#endif //HQDOF

#ifdef LQDOF

r0 = tex2D(s1, _v0.xy);
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;
r1 = tex2D(s2, _v0.xy); //HDRSampler
r2 = tex2D(s3, _v0.xy); //BloomSampler
//r1 *= 10.0;
r0.w = abs(_c79.w);
r3 = _c4; //-0.5, -1.5, 1.5, 0.5
float2 center;
float distance;
float focus;
float farblur;
float dof;
distance = r0.z * r0.x - _c78.w; //dofDist.w
distance += _c78.y * -r3.w; //dofDist.y
distance += 400-DOFDistance;//offset
center.x = _v0.x - 0.5;
center.y = 0.5 - _v0.y;
focus = length(center.xy)*1.41;
focus = pow(focus,3) * 3.5;
focus = max(focus,0.0);
farblur = clamp(distance * 0.018, 0.2, 1.8);
if (distance * 0.1 > 2)
{
dof = 0.0;
}
else
{
dof = 0.0;
}
float2 off_c76 = _c76.xy*min(focus + farblur + dof, DOFBlurAmount*0.25);
r4.xy = off_c76.xy * r3.xy + _v0.xy; //TexelSize.xy
r4 = tex2D(s2, r4.xy); //HDRSampler
r5.xy = off_c76.xy * r3.zx + _v0.xy; //TexelSize.xy
r5 = tex2D(s2, r5.xy); //HDRSampler
r3.xz = off_c76.xy * r3.wz + _v0.xy; //TexelSize.xy
r6 = tex2D(s2, r3.xz); //HDRSampler
r3.xy = off_c76.xy * r3.yw + _v0; //TexelSize.xy
r7 = tex2D(s2, r3.xy); //HDRSampler
r1.w = dot(r4.xyz, r4.xyz);
r1.w = 1.0 / r1.w;
if (-r1.w < 0.0)
{
r3.xyz = r4.xyz;
}
else
{
r3.xyz = _c0.x;
}
r1.w = dot(r5.xyz, r5.xyz); //dp3
r1.w = 1.0 / r1.w;
if (-r1.w < 0.0)
{
r4.xyz = r5.xyz;
}
else
{
r4.xyz = _c0.x;
}
r1.w = dot(r6.xyz, r6.xyz); //dp3
r1.w = 1.0 / r1.w;
if (-r1.w < 0.0)
{
r5.xyz = r6.xyz;
}
else
{
r5.xyz = _c0.x;
}
r1.w = dot(r7.xyz, r7.xyz); //dp3
r1.w = 1.0 / r1.w;
if (-r1.w < 0.0)
{
r6.xyz = r7.xyz;
}
else
{
r6.xyz = _c0.x;
}
r1.w = dot(r1.xyz, r1.xyz); //dp3
r1.w = 1.0 / r1.w;
if (-r1.w < 0.0)
{
r7.xyz = r1.xyz;
}
else
{
r7.xyz = _c0.x;
}

#endif //LQDOF

#ifdef NODOF

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;

float4 vDofParams = float4(-50, 1.5, 50000, 1);

float2 FocusPoint = float2(0.5, 0.45);
r4=tex2D(s1, FocusPoint); //GBufferTextureSampler3
r4.y=-_c77.x + _c77.y; //-dofProj.x + dofProj.y
r4.y=1/r4.y;
r4.z=r4.y * _c77.y; //dofProj.y
r4.z=r4.z * -_c77.x; //dofProj.x
r4.x=_c77.y * -r4.y + r4.x;
r4.x=1/r4.x;
r4.y=r4.z * r4.x;

float cdepth;

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

r4.w = tex2D(s0, FocusPoint).w;
if(r4.w > 0)
{
vDofParams.z = cdepth*6.0;
vDofParams.y = cdepth;
}

depth = max(depth, 0); //fix zoom bug

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 float3 poisson[8]=
{
float3(0.0, 0.0, 1.0), //0 degrees
float3(0.527, -0.085, 1.0),
float3(-0.040, 0.536, 1.0 ),
float3(-0.670, -0.179, 1.0 ),
float3(-0.419, -0.616, 1.0 ),
float3( 0.440, -0.639, 1.0), //45 degrees
float3(-0.757, 0.349, 1.0 ),
float3(0.574, 0.685, 1.0),
};

float2 pixelSizeHigh;
float2 pixelSizeLow;

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

pixelSizeHigh.xy *= 1.0;

pixelSizeLow.xy = pixelSizeHigh.xy;

float2 vMaxCoC = float2(5.0, 10.0);

float radiusScale = 0.0;

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 < 8; 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;
else tap.w = abs(tap.w * 2.0 - 1.0);

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

}

r1.xyz /= r1.w;

r1.w=dot(r1.xyz, r1.xyz); //dp3
r1.w=1.0/r1.w;

r3 = lerp(_c0.x, r1, saturate(r1.w * 10000));

r4 = r3;
r5 = r3;
r6 = r3;
r7 = r3;

#endif //NODOF

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
//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.yz * _c5.z; //0.125
r5 = tex2D(s6, _v0.xy); //StencilCopySampler
r1.w = r5.x - _c85.x; //PLAYER_MASK.x
r4.zw = r3.xy * _c2.w; //8.0
r4.zw = _v0.xy * _c3.xy + r4.zw; //58.1640015, 47.1300011
r5 = tex2D(s5, r4.zw); //JitterSampler
//r2.w = r5.x - 0.5; //-0.5
r4.zw = r4.xy * (r5.x - 4) + _v0.xy; //0.082 fixed
r5.xyz = r3.xyz;
r2.w = _c1.y; //1.0
r3.w = _c1.y; //1.0

////////////////////////////////////////////

// Motion blur

for (int iii=0; iii<10; iii++)
{
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.3)
{
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.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;

////////////////////////////////////////////

// Bloom

r11 = r0;
float4 color = r11;
float4 origcolor = tex2D(s2, _v0.xy);
r5 = tex2D(s4, _c0.x);
r5.w = r5.x;
r5.w = 1.0/r5.w;
color.xyz = color.xyz * r5.w;
float4 colorbloom = tex2D(s3, _v0.xy);//0.5
colorbloom *= r5.w;
float bloomgray = dot(colorbloom.xyz, 0.333) * 0.01;
colorbloom.r *= 0.005;
colorbloom.g *= 0.005;
colorbloom.b *= 0.005;
color = colorbloom * BloomAmount*10.0 + color;
color.xyz = lerp(color.xyz, color.xyz * 0.8+colorbloom.xyz * 0.3, saturate(bloomgray));
color.xyz = max(color.xyz, 0.0001);
float cgray = dot(color.xyz, 0.333);
float3 poweredcolor = pow(color.xyz, ColorSaturation/10.0);
float newgray = dot(poweredcolor.xyz, 0.333);
color.xyz = poweredcolor.xyz * cgray / (newgray + 0.0001);
color *= Brightness*0.150;
float4 curr = ((color * (0.1 * color + 0.1 * 0.5) + 0.2 * 0.02) / (color * (0.1 * color + 0.5) + 0.2 * 2.3)) - 0.02 / 2.3;
float4 whiteScale = ((11.2 * (0.1 * 11.2 + 0.1 * 0.5) + 0.2 * 0.02) / (11.2 * (0.1 * 11.2 + 0.5) + 0.2 * 2.3)) - 0.02 / 2.3;
color = curr * whiteScale;
color = pow(color, 1/2.2);
color.xyz = saturate(color.xyz);
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 = 0.25 * newColor.xyz;
mixRGB += ((1.0f - 0.25) * color.xyz);
color.xyz = mixRGB;
color.xyz = lerp(color.xyz, 0.5 * (1 + sin((color.xyz - 0.5) * 3.1415926)), Contrast*0.175);
color = (BloomAdd*0.0150) * colorbloom * r3.x + color;

////////////////////////////////////////////

// Pallete texture (0.082 version feature)

color.rgb = saturate(color.rgb);
float3 brightness = 0.001; //tex2D(s4, _c0.x);
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;

////////////////////////////////////////////

focus = length(center.xy) * 1.41421;
focus = pow(focus, 5);
color.xyz -= focus * VignetteAmount*0.03;
_oC0.xyz = color.xyz;
//_oC0.w = 1.0;
return _oC0;
}

technique Shader_C215BE6E
{
pass p0
{
PixelShader = compile ps_3_0 PS_C215BE6E();
}
}[/spoiler]
 
offline
 AgainstAllAutority
Дата: Среда, 2013-01-23, 01:14 | Сообщение # 4309
Гангстер
Сообщений: 801
студент, вообще-то там у тебя 3 ДоФ'а на выбор:
Код

// Depth of Field

//#define HQDOF
#define LQDOF
//#define NODOF

// distance at which the depth of field blur begins

float DOFDistance = 400;  


 
offline
 студент
Дата: Среда, 2013-01-23, 01:20 | Сообщение # 4310
Пользователь
Сообщений: 18
AgainstAllAutority ну 3 я не заметил, но упоминание об дофе я увидел, только незнаю как его включить, какой параметр крутить, хочу немного добавить, чтобы не было слишком много, главное какой параметр крутить. спасибо
 
offline
 Simple999
Дата: Среда, 2013-01-23, 05:25 | Сообщение # 4311
Гангстер
Сообщений: 1001
Юзеры, чет мудрил с тенями, норм ?+ тачки в тени не темнеют
[spoiler="Скрытый текст"]




[/spoiler]


? 21.12.2013 - Дней на сайте: 999
 
offline
 pac2
Дата: Среда, 2013-01-23, 08:16 | Сообщение # 4312
Пользователь
Сообщений: 84
Simple999, кажется все классно)

------
А я вот солнышко сделал, как вам?
[spoiler="+"]
[/spoiler]


http://fotki.yandex.ru/users/ko-tolik/
skype: medusascream31


Сообщение отредактировал pac2pac - Среда, 2013-01-23, 08:20
 
offline
 kam4373
Дата: Среда, 2013-01-23, 08:35 | Сообщение # 4313
Пользователь
Сообщений: 72
pac2pac, Красиво смотриться.. а чей енб? твой?

Добавлено (23.01.2013, 08:35)
---------------------------------------------
Simple999, А твоего кфг релиза небудет ?



FHIVE_ , Единствиная девочка.


Сообщение отредактировал kam4373 - Среда, 2013-01-23, 08:34
 
offline
 Simple999
Дата: Среда, 2013-01-23, 09:25 | Сообщение # 4314
Гангстер
Сообщений: 1001
pac2pac,
солнце супер мне нравится)
kam4373,
Будет)

вот машина в тени с темными цветами

не работает спойлер?



? 21.12.2013 - Дней на сайте: 999


Сообщение отредактировал Jaxer - Среда, 2013-01-23, 11:34
 
offline
 kam4373
Дата: Среда, 2013-01-23, 11:37 | Сообщение # 4315
Пользователь
Сообщений: 72
Simple999, Красиво очень даже . Тени те что нехватали в 4ке

Добавлено (23.01.2013, 11:37)
---------------------------------------------
Поставил сглаживание smaa , опять появились эти точки вокруг авто как исправить кто сталкивался с такой проблемой помогите пожалуйста... я тут уже обращался по поводу этого но я исправил а щас не действует чем я исправлял [spoiler="спойлер"]http://rghost.ru/43246202.view[/spoiler]


FHIVE_ , Единствиная девочка.


Сообщение отредактировал kam4373 - Среда, 2013-01-23, 11:42
 
offline
 Simple999
Дата: Среда, 2013-01-23, 14:17 | Сообщение # 4316
Гангстер
Сообщений: 1001
kam4373,
поставь fxaa, хотя я ушел от fxaa и smaa, потом понял, что ватная картинка либо шума много
юзаю effect.txt


? 21.12.2013 - Дней на сайте: 999


Сообщение отредактировал Simple999 - Среда, 2013-01-23, 14:17
 
offline
 kam4373
Дата: Среда, 2013-01-23, 14:24 | Сообщение # 4317
Пользователь
Сообщений: 72
Simple999, y Меня ATI Radeon возможно их поставить?


FHIVE_ , Единствиная девочка.
 
offline
 Simple999
Дата: Среда, 2013-01-23, 14:25 | Сообщение # 4318
Гангстер
Сообщений: 1001
kam4373,
Попробуй, нечего не возможного нету)


? 21.12.2013 - Дней на сайте: 999
 
offline
 pac2
Дата: Среда, 2013-01-23, 16:50 | Сообщение # 4319
Пользователь
Сообщений: 84
Цитата
Попробуй, нечего не возможного нету)

lol
kam4373, да, мой микс


http://fotki.yandex.ru/users/ko-tolik/
skype: medusascream31
 
offline
 Spark98
Дата: Среда, 2013-01-23, 17:04 | Сообщение # 4320
Пользователь
Сообщений: 94
Gregor, гида по enbeffect'у ещё нет (пока что нет)
Rus_87, такая трабла возникает возникает в некоторых "недоделанных" миксах. Вспомню скажу как лечит)
pac2pac, скрины в другой теме здесь вроде Ну а так, микс только для показухи машинок)
Improff, при включении АА настрой его или смени)
kam4373, отражения глобальные крути, они у тебя наверно завышены.
Simple999, а ты не используешь SweetFx? Вещь кстати хорошая отчасти, я его использую вместо FXAA)
С DS=1.5+sweetFX на ATI шикарно просто :)


#NeRo by CrazY
Skype: spark1016394


Сообщение отредактировал Spark98 - Среда, 2013-01-23, 17:11
 
Форум ГТА » Сайт и форум » Архив » ENB Series GTA 4 (Часть IV) (Ваши настройки, инструкции, вопросы и т.д.)
Поиск: