• Вход / Регистрация
    Логин:
    Пароль:
Поиск по сайту
Архив - только для чтения
Форум ГТА » Сайт и форум » Архив » 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
 pit_bull
Дата: Вторник, 2012-09-11, 17:21 | Сообщение # 2431
Гангстер
Сообщений: 51
AgainstAllAutority,Привет. Не додумалась моя голова :)

Только напиши мне где моя ошибка или что я делал не так,мне просто уже самому интересно
Парни все кто мне помогают спасибо вам огромное.


My Gallery
Самое большое заблуждение детства - мы думали, что быть взрослыми здорово...
 
offline
 Vitos
Дата: Вторник, 2012-09-11, 17:40 | Сообщение # 2432
Гангстер
Сообщений: 569
portal-2x2, смысл этого кода - полоски сверху и снизу. Витя их придумал, я тестил. Сказал запилить на мании под совместным авторством. Полоски пашут.
 
offline
 portal-2x2
Дата: Вторник, 2012-09-11, 18:27 | Сообщение # 2433
Гангстер
Сообщений: 1264
Vitos, Какой фигни только не придумают :D


AMD FX 4300, 6GB DDR3 1333,GTS450,HDD
 
offline
 Orangebrains
Дата: Вторник, 2012-09-11, 18:58 | Сообщение # 2434
Гангстер
Сообщений: 615
m0ut, мне так нравится.

portal-2x2, Vitos, в HD6 для скайрима есть точно такая же виньетка. Правда код длиннее, но его и настроить можно лучше. Там куча контроллеров.
 
offline
 portal-2x2
Дата: Вторник, 2012-09-11, 19:30 | Сообщение # 2435
Гангстер
Сообщений: 1264
Я думал что виньетка это вот : [spoiler="Код"]
#define VIGNETTE
#ifdef VIGNETTE
float rovigpwr = 0.75; //for a circular vignette
float2 sqvigpwr = float2( 0.5, 0.5 ); // for the top and bottom of the screen
float vsatstrength = 1; // color distortion
float vignettepow = 1; // increases the contrast and sharpness
float vstrengthatnight = 10.25;
float2 inTex = _v0;
float vhnd = 0.5;
float4 voriginal = r0;
float4 vcolor = voriginal;
vcolor.xyz=1;
inTex -= 0.5; // center
inTex.y += 0.01; // offset from the center
float vignette = 1.0 - dot( inTex, inTex );
vcolor *= pow( vignette, vignettepow );
float4 rvigtex = vcolor;
rvigtex.xyz = pow( vcolor, 1 );
rvigtex.xyz = lerp(float3(0.5, 0.5, 0.5), rvigtex.xyz, 2.0); // contrast
rvigtex.xyz = lerp(float3(1,1,1),rvigtex.xyz,rovigpwr); // strength of the circular vinetty
float4 vigtex = vcolor;
vcolor.xyz = float3(1,1,1);
float3 topv = min((inTex.y+0.5)*2,1.5) * 2; // top
float3 botv = min(((0-inTex.y)+0.5)*2,1.5) * 2; // botton
topv= lerp(float3(1,1,1), topv, sqvigpwr.x);
botv= lerp(float3(1,1,1), botv, sqvigpwr.y);
vigtex.xyz = (topv)*(botv);
vigtex.xyz*=rvigtex.xyz;
vigtex.xyz = lerp(vigtex.xyz,float3(1,1,1),(1-vstrengthatnight)*(1-vhnd)); //for a dark screen
vigtex.xyz = min(vigtex.xyz,1);
vigtex.xyz = max(vigtex.xyz,0);
float3 vtintensity = dot(r0.xyz, float3(0.2125, 0.7154, 0.0721));
r0.xyz = lerp(vtintensity, r0.xyz, ((((1-(vigtex.xyz*2))+2)-1)*vsatstrength)+1 );
r0.xyz *= (vigtex.xyz);
#endif
[/spoiler]


AMD FX 4300, 6GB DDR3 1333,GTS450,HDD
 
offline
 Orangebrains
Дата: Вторник, 2012-09-11, 19:41 | Сообщение # 2436
Гангстер
Сообщений: 615
portal-2x2, эта обычная круговая?
А есть что-то типа киношных полос. Тоже из HD6.

Добавлено (11.09.2012, 19:39)
---------------------------------------------
Виньетка есть в Айсе 2.1

Добавлено (11.09.2012, 19:41)
---------------------------------------------
Вот пример этой виньетки:
[spoiler="Скрин от 10 августа"][/spoiler]

 
offline
 Daniel_555_
Дата: Вторник, 2012-09-11, 20:01 | Сообщение # 2437
Модмейкер
Сообщений: 208
Orangebrains, ппц как красиво!!


Daniel_555_
 
offline
 AgainstAllAutority
Дата: Вторник, 2012-09-11, 22:40 | Сообщение # 2438
Гангстер
Сообщений: 801
pit_bull, смотри:
(эффект от айса 1.2 чтоле?)
ищем строчку
Code

return _oC0;   

перед ней есть
Code

_oC0.xyz=color.xyz;   


это значит, что картинка, что будет выведена на экран хранится в переменной color

перед той строчкой ставишь код, что был выложен, заменив r0 на color

Code

if (_v0.y <0.075)
{
color.xyz = 0;
}
if (_v0.y >0.925)
{
color.xyz = 0;
}   
// а это твоя строчка в эфекте, перед ней (т.е НАД) и копируешь код
_oC0.xyz=color.xyz;   

portal-2x2, я его сам придумал. Это самый простой метод "киношных полос" какой может только быть))) учи матчасть))))




Сообщение отредактировал AgainstAllAutority - Вторник, 2012-09-11, 22:47
 
offline
 Maksim22
Дата: Вторник, 2012-09-11, 22:53 | Сообщение # 2439
Гангстер
Сообщений: 380
AgainstAllAutority, Вот,о чем и говорил.
[spoiler="енбеффект от ААА"]http://rghost.ru/40314304[/spoiler]

[spoiler="Мой енбеффект"]http://rghost.ru/40314335[/spoiler]

Пост по поводу дофа,у меня есть два файла енбеффект,один с очень крутым дофом(твоим как я понял)и мой,если можно,перекинуть в мой енбеффект только код дофа,потому что когда я заменяю целиком весь файл картинка у меня убивается,тускнеет....


Проц: Intel I5 2500K 4.5Ghz + Zalman CNPS11X Extreme
Мат.плата: Аsus P8P67
Видео: Inno3D GeForce GTX 770 iChill HerculeZ X3 Ultra
Озу: 16Гб 1600Mhz
Бп: CHIEFTEC APS-650C


Сообщение отредактировал Maksim22 - Вторник, 2012-09-11, 22:56
 
offline
 Orangebrains
Дата: Вторник, 2012-09-11, 22:56 | Сообщение # 2440
Гангстер
Сообщений: 615
AgainstAllAutority, а можешь разнообразить этот простой метод?
Ну настройку потоньше сделать, например)
Quote (Maksim22)
потому что когда я заменяю целиком весь файл картинка у меня убивается,тускнеет....

ну так правильно. другой енбэффект настроен под другой енб. вот и тускнеет.
пересади код дофа просто.
 
offline
 AgainstAllAutority
Дата: Вторник, 2012-09-11, 23:05 | Сообщение # 2441
Гангстер
Сообщений: 801
Maksim22, окей, это будет "инструкция" для всех:

находим в файле строчку:
Code

//for future use
r11=r0;

именно с этой строчки в 99% эффектов начинается часть посвященная обработку цвета, по ряду причин проще копировать именно её!
от этой строчки до
Code

return _oC0;

все посвящено смешиванию цвета и блума, подстроек яркости и тп
главное, не забывайте, что у вас к этим настройкам могут быть привязанны контроллеры в самом начале эффекта
в эффекте от ААА (который кстати с ошибкой, но не суть :D ) в начале много букаф с цифирями через знаки равно. Это и есть контроллеры.

Теперь просто ПЕРЕНОСИМ ВСЕ от первой до второй показанной строчек
вот так:
Code

//++++++++++++++++++++++++++++++++++++++++++++
// ENBSeries effect file
// visit http://enbdev.com for updates
// Copyright 2010 (c) Boris Vorontsov
//
// Using decompiled shader of GTA4 game by
// Rockstar Games.
//++++++++++++++++++++++++++++++++++++++++++++
// DoF code from AMD.
// Tonemapping code from filmicgames.com
// converted by gp65cj04
// Codes & Shaders are made by ICELAGLACE & DPEASANT3 & DKT70 & GP65CJ04 & BORIS
//++++++++++++++++++++++++++++++++++++++++++++

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

int    DoF_TAPS = 12; // qulity: 8 or 24.
int    PixelSizeMultiplier = 2; // set this value to 2 when you active SSAA.

float2    FocusPoint = float2(0.5, 0.45);

float    EColorSaturation = 0.98;  
float    BP_factor = 0.10;

float   fRatio = 0.02;
float   moodR = 1.0;
float   moodG = 1.0;
float   moodB = 1.0;

float    EBrightnessV2 = 3.3;
float    Contrast = 1.6;
float    A = 0.20; // Shoulder Strength  
float    B = 1.50; // Linear Strength
float    C = 0.20; // Linear Angle
float    D = 1.90; // Toe Strength
float    E = 0.02; // Toe Numerator
float    F = 1.50; // Toe Denominator
float    W = 11.0; // White Scale
   

float    EBloomAmount = 0.40;
float    BloomR = 1.00;
float    BloomG = 1.00;
float    BloomB = 1.00;

float    VignetteAmount = 0.15;

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

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

  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, 1000.0, 0.45);

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

#ifdef AUTOFOCUS  

         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*2;
   vDofParams.y = cdepth;
  }
#endif

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

         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[24]=
  {
   float3(1.0, 0.0, 1.0000 ), //0 degrees
   float3(0.0, -1.0, 1.0000 ),
   float3(-1.0, 0.0, 1.0000 ),
   float3(0.0, 1.0, 1.0000 ),

   float3(0.7071, 0.7071, 1.0000 ), //45 degrees
   float3(0.7071, 0.7071, 1.0000 ),
   float3(-0.7071, -0.7071, 1.0000 ),
   float3(-0.7071, 0.7071, 1.0000 ),

   float3(0.9659, 0.2588, 1.0000 ), //15 degrees
   float3(0.2588, -0.9659, 1.0000 ),
   float3(-0.9659, -0.2588, 1.0000 ),
   float3(-0.2588, 0.9659, 1.0000 ),

   float3(0.8660, 0.5000, 1.0000 ), //60 degrees
   float3(0.5000, -0.8660, 1.0000 ),
   float3(-0.8660, -0.5000, 1.0000 ),
   float3(-0.5000, 0.8660, 1.0000 ),

   float3(0.5000, 0.8660, 1.0000 ), //30 degrees
   float3(0.8660, -0.5000, 1.0000 ),
   float3(-0.5000, -0.8660, 1.0000 ),
   float3(-0.8660, 0.5000, 1.0000 ),

   float3(0.2588, 0.9659, 1.0000 ), //75 degrees
   float3(0.9659, -0.2588, 1.0000 ),
   float3(-0.2588, -0.9659, 1.0000 ),
   float3(-0.9659, 0.2588, 1.0000 ),
  };

  float2    pixelSizeHigh;
  float2    pixelSizeLow;

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

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

  pixelSizeHigh.xy *= PixelSizeMultiplier;

  pixelSizeLow.xy = pixelSizeHigh.xy;

  float2    vMaxCoC = float2(6.0, 12.0);

  float    radiusScale = 0.5;
   
  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;

  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.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.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<25; 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.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.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);
  r0.w=_c82.z - r8.y; //deSatContrastGamma.z
  r2.x=pow(r1.x, r0.w);

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

//MY CODE BEGINS HERE

//tonemap of brightness
//float grayorig=dot(c, c8.w);
//float gray=pow(grayorig, c199.z);
//c=c*gray/grayorig;

//TODO make adapration
r5=tex2D(s4, _c0.x);//adaptation luminance
//r5=1;

//DISABLED
//r0=tex2D(s2, _v0.xy);//hdr color
//r0=r11; //FROM ORIGINAL CODE AFTER BLUR

r0=r11+r0*1;  

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

r7=tex2D(s3, _v0.xy); //bloom
r7.r*=1.1;  
r7.g*=1;
r7.b*=0.9;
r7=r7*(1-pow(1.2,-r7*1));
//HERE 0.1 is bloom factor 1, soft bloom
r0=r7*0.1 + r0;
r10=dot(r0.xyz, _c12.xyz); //luminance
r10=r10*1;
r0=r0*r10;

r0=(pow(r0*2,0.6))*0.3+r0*1;

r0=r0 * _c7.y; //pre multiply
r1=r0 * _c7.z; //e multiply
r1=r1+_c7.w;
r1.xyz=1.0/r1.xyz;
r0=r0*r1;
//HERE 0.8 is bloom for additive mix
r0=0.8*r7 * r3.x + r0; //c10.x

r0=(1-pow(2.4,-r0))*0.5+r0*0.8;

float middlegray=(r0.r+r0.g+r0.b)*0.33; //dot(r0.xyz, 0.333); //dot(r0.xyz, float3(0.27, 0.67, 0.06));
float3 diffcolor=r0.rgb-middlegray;
r0.rgb+=diffcolor*1;

/*
float luma=dot(r0.xyz,0.333);
float degree=luma*3.1415926*0.5;//0~90
degree=sin(degree);
distance*=0.0004;
distance+=0.04;
luma=pow(luma,3);
luma=pow(2.71,-luma*2)*degree;
//r0.rgb=0.0;
r0.r+=luma*clamp(distance,0.0,0.16);
r0.g+=luma*clamp(distance,0.0,0.16*1.2);
r0.b+=luma*clamp(distance,0.0,0.16*1.4)*1.15;
r0.xyz+=max(focus*0.025,0.04)*luma;
//r0.xyz=1.0;
//r0.xyz=max(r0.xyz-focus*0.2,0);
*/

r0.xyz=r0.xyz*0.6+sin(r0.xyz*3.1415926*0.5)*0.4;

_oC0.xyz=r0.xyz;

  //_oC0.w=1.0;

  return _oC0;
}

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


 
offline
 Orangebrains
Дата: Вторник, 2012-09-11, 23:33 | Сообщение # 2442
Гангстер
Сообщений: 615
AgainstAllAutority, r0.xyz=r0.xyz*0.6+sin(r0.xyz*3.1415926*0.5)*0.4; - что за код?
 
offline
 pit_bull
Дата: Среда, 2012-09-12, 04:38 | Сообщение # 2443
Гангстер
Сообщений: 51
В общем намучившись с кодом от AgainstAllAutority я взял енбэффект который сюда на форум запили portal-2x2.
Я его внимательно "рассмотрев" нашел там этот код
[spoiler="код"]color.xyz=(_v0.y > 0.05 && _v0.y < 0.95) ? color.xyz : 0.0;[/spoiler]
запилил его над строчкой _oC0.xyz=color.xyz и что вы думаете crazy вуаля все работает :)
[spoiler="полосы :)"][/spoiler]

AgainstAllAutority К сожалению с твоим кодом так нечего и не получилось,либо я не способен это понять.
Я все сделал так как ты написал,к сожалению он так и не заработал. И вот что получилось после твоего кода
[spoiler="скрин"][/spoiler]
Всем спасибо,кто помогал :)


My Gallery
Самое большое заблуждение детства - мы думали, что быть взрослыми здорово...


Сообщение отредактировал pit_bull - Среда, 2012-09-12, 05:44
 
offline
 portal-2x2
Дата: Среда, 2012-09-12, 13:34 | Сообщение # 2444
Гангстер
Сообщений: 1264
Продолжаю возится с эпизодами, добавил блич, муд, колор грейд, свел на нет черноту под авто и в других темных местах, теперь даже в тоннеле метро можно расглядеть обьекты (не под источником света)
[spoiler="Скрины"]

http://fotki.yandex.ru/users/gabe-2x2/view/764313/

http://fotki.yandex.ru/users/gabe-2x2/view/764326/

http://fotki.yandex.ru/users/gabe-2x2/view/764327/

http://fotki.yandex.ru/users/gabe-2x2/view/764334/
[/spoiler]
Ну и решил повозится хорошенько с кодом ССАО и добавил виньетку Вити, если бы она еще сужала сам экран (а не добовляла тупо черные линии crazy
[spoiler="Скрины"]

http://fotki.yandex.ru/users/gabe-2x2/view/764336/

http://fotki.yandex.ru/users/gabe-2x2/view/764343/

http://fotki.yandex.ru/users/gabe-2x2/view/764342/

http://fotki.yandex.ru/users/gabe-2x2/view/764350/
[/spoiler]

Добавлено (12.09.2012, 13:34)
---------------------------------------------
ЗЫ Жаль что колор грейд чутка портит небо, добовляя маску :(



AMD FX 4300, 6GB DDR3 1333,GTS450,HDD
 
offline
 Simple999
Дата: Среда, 2012-09-12, 14:09 | Сообщение # 2445
Гангстер
Сообщений: 1001
portal-2x2,
Что за доф?


? 21.12.2013 - Дней на сайте: 999
 
Форум ГТА » Сайт и форум » Архив » ENB Series GTA 4 (Часть IV) (Ваши настройки, инструкции, вопросы и т.д.)
Поиск: