Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ORIGINAL NFS-HR ENBEFFECT.FX / ICESSHADER.FX BY MASTERKONTROL
- //
- //
- //"""""" """""" """""" """"""
- //"::::" "::::" "::::" "::::"
- //"::::" "::::"TTTTTTTTTTTTTTTTTTTTTTT hhhhhhh SSSSSSSSSSSSSSS iiii "::::" "::::"
- // ":::" ":::" T:::::::::::::::::::::T h:::::h SS:::::::::::::::S i::::i ":::" ":::"
- // "::" "::" T:::::::::::::::::::::T h:::::h S:::::SSSSSS::::::S iiii "::" "::"
- // """ """ T:::::TT:::::::TT:::::T h:::::h S:::::S SSSSSSS """ """
- // TTTTTT T:::::T TTTTTTeeeeeeeeeeee h::::h hhhhh S:::::S eeeeeeeeeeee nnnn nnnnnnnn ssssssssss eeeeeeeeeeee iiiiiii
- // T:::::T ee::::::::::::ee h::::hh:::::hhh S:::::S ee::::::::::::ee n:::nn::::::::nn ss::::::::::s ee::::::::::::ee i:::::i
- // T:::::T e::::::eeeee:::::eeh::::::::::::::hh S::::SSSS e::::::eeeee:::::een::::::::::::::nn ss:::::::::::::s e::::::eeeee:::::eei::::i
- // T:::::T e::::::e e:::::eh:::::::hhh::::::h SS::::::SSSSS e::::::e e:::::enn:::::::::::::::ns::::::ssss:::::se::::::e e:::::ei::::i
- // T:::::T e:::::::eeeee::::::eh::::::h h::::::h SSS::::::::SS e:::::::eeeee::::::e n:::::nnnn:::::n s:::::s ssssss e:::::::eeeee::::::ei::::i
- // T:::::T e:::::::::::::::::e h:::::h h:::::h SSSSSS::::S e:::::::::::::::::e n::::n n::::n s::::::s e:::::::::::::::::e i::::i
- // T:::::T e::::::eeeeeeeeeee h:::::h h:::::h S:::::Se::::::eeeeeeeeeee n::::n n::::n s::::::s e::::::eeeeeeeeeee i::::i
- // T:::::T e:::::::e h:::::h h:::::h S:::::Se:::::::e n::::n n::::nssssss s:::::s e:::::::e i::::i
- // TT:::::::TT e::::::::e h:::::h h:::::h SSSSSSS S:::::Se::::::::e n::::n n::::ns:::::ssss::::::se::::::::e i::::::i
- // T:::::::::T e::::::::eeeeeeee h:::::h h:::::h S::::::SSSSSS:::::S e::::::::eeeeeeee n::::n n::::ns::::::::::::::s e::::::::eeeeeeee i::::::i
- // T:::::::::T ee:::::::::::::e h:::::h h:::::h S:::::::::::::::SS ee:::::::::::::e n::::n n::::n s:::::::::::ss ee:::::::::::::e i::::::i
- // TTTTTTTTTTT eeeeeeeeeeeeee hhhhhhh hhhhhhh SSSSSSSSSSSSSSS eeeeeeeeeeeeee nnnnnn nnnnnn sssssssssss eeeeeeeeeeeeee iiiiiiii
- //MMMMMMMM MMMMMMMM tttt KKKKKKKKK KKKKKKK tttt lllllll
- //M:::::::M M:::::::M ttt:::t K:::::::K K:::::K ttt:::t l:::::l
- //M::::::::M M::::::::M t:::::t K:::::::K K:::::K t:::::t l:::::l
- //M:::::::::M M:::::::::M t:::::t K:::::::K K::::::K t:::::t l:::::l
- //M::::::::::M M::::::::::M aaaaaaaaaaaaa ssssssssss ttttttt:::::ttttttt eeeeeeeeeeee rrrrr rrrrrrrrr KK::::::K K:::::KKK ooooooooooo nnnn nnnnnnnn ttttttt:::::ttttttt rrrrr rrrrrrrrr ooooooooooo l::::l
- //M:::::::::::M M:::::::::::M a::::::::::::a ss::::::::::s t:::::::::::::::::t ee::::::::::::ee r::::rrr:::::::::r K:::::K K:::::K oo:::::::::::oo n:::nn::::::::nn t:::::::::::::::::t r::::rrr:::::::::r oo:::::::::::oo l::::l
- //M:::::::M::::M M::::M:::::::M aaaaaaaaa:::::ass:::::::::::::s t:::::::::::::::::t e::::::eeeee:::::eer:::::::::::::::::r K::::::K:::::K o:::::::::::::::on::::::::::::::nn t:::::::::::::::::t r:::::::::::::::::r o:::::::::::::::o l::::l
- //M::::::M M::::M M::::M M::::::M a::::as::::::ssss:::::stttttt:::::::tttttt e::::::e e:::::err::::::rrrrr::::::rK:::::::::::K o:::::ooooo:::::onn:::::::::::::::ntttttt:::::::tttttt rr::::::rrrrr::::::ro:::::ooooo:::::o l::::l
- //M::::::M M::::M::::M M::::::M aaaaaaa:::::a s:::::s ssssss t:::::t e:::::::eeeee::::::e r:::::r r:::::rK:::::::::::K o::::o o::::o n:::::nnnn:::::n t:::::t r:::::r r:::::ro::::o o::::o l::::l
- //M::::::M M:::::::M M::::::M aa::::::::::::a s::::::s t:::::t e:::::::::::::::::e r:::::r rrrrrrrK::::::K:::::K o::::o o::::o n::::n n::::n t:::::t r:::::r rrrrrrro::::o o::::o l::::l
- //M::::::M M:::::M M::::::M a::::aaaa::::::a s::::::s t:::::t e::::::eeeeeeeeeee r:::::r K:::::K K:::::K o::::o o::::o n::::n n::::n t:::::t r:::::r o::::o o::::o l::::l
- //M::::::M MMMMM M::::::Ma::::a a:::::assssss s:::::s t:::::t tttttte:::::::e r:::::r KK::::::K K:::::KKKo::::o o::::o n::::n n::::n t:::::t ttttttr:::::r o::::o o::::o l::::l
- //M::::::M M::::::Ma::::a a:::::as:::::ssss::::::s t::::::tttt:::::te::::::::e r:::::r K:::::::K K::::::Ko:::::ooooo:::::o n::::n n::::n t::::::tttt:::::tr:::::r o:::::ooooo:::::ol::::::l
- //M::::::M M::::::Ma:::::aaaa::::::as::::::::::::::s tt::::::::::::::t e::::::::eeeeeeee r:::::r K:::::::K K:::::Ko:::::::::::::::o n::::n n::::n tt::::::::::::::tr:::::r o:::::::::::::::ol::::::l
- //M::::::M M::::::M a::::::::::aa:::as:::::::::::ss tt:::::::::::tt ee:::::::::::::e r:::::r K:::::::K K:::::K oo:::::::::::oo n::::n n::::n tt:::::::::::ttr:::::r oo:::::::::::oo l::::::l
- //MMMMMMMM MMMMMMMM aaaaaaaaaa aaaa sssssssssss ttttttttttt eeeeeeeeeeeeee rrrrrrr KKKKKKKKK KKKKKKK ooooooooooo nnnnnn nnnnnn ttttttttttt rrrrrrr ooooooooooo llllllll
- //
- //++++++++++++++++++++++++++++++++++++++++++++
- // ENBSeries effect file
- // visit http://enbdev.com for updates
- // Copyright 2010 (c) Boris Vorontsov
- // Master Kontrol - END.OF.LINE.......... NFS-HR Project 2011
- // ENB FX By IceLaGlace V1.35 2011 (c)
- // Rockstar Games - 2008 (c)
- //++++++++++++++++++++++++++++++++++++++++++++
- //NOTE: enable or disable these
- //to disable, write // symbols before #define
- //#define POSTPROCESS_V2 //overwise v1 of color processing // LEAVE THIS!!!!!!!!!!!!!!!!!!!!!!!!!!
- //#define APPLYGAMECOLORCORRECTION //use contrast, brightness, saturation from game
- // DEPTH OF FIELD SETTINGS.
- //////////////////////////////////-----------------------------------------------------------------]
- // ICE 135 (-150, 1.5, 10.0, 1) PACKET (-150, 0, 0, 0); MK (-5.0, 2.0, 25.0, 1.0) MK (4.0, 1.4, 65.0, 1.0) MK (-1.0, 1.0, 200.0, 1.0)
- // TILT (50.0 1 100.0 1)? MADE (0.05, 0.25, 40.0, 0.025) MK DDOF (0.5 2.0 16.0 -1.0) LAST (1.0, 2.0, 28.0, 1.0) Tilt-ish
- float NearBlur = -25.0;
- float FocalPlane = 1.95;
- float FarBlur = 1.0;
- float BlurCutoffConstant = 1.05;
- float Dist1 = 0.25;
- float Dist2 = 0.25;
- float2 MaxCoC = float2 (5.0, 18.0);
- int PixelSizeMultiplier = 1.25;
- float BlurIntensity = 0.125;
- float2 FocusPoint= float2 (0.475, 0.475);
- //float4 FocusPoint= float4 (-0.45, 0.65, -0.15, 0.85);
- // DOF STYLES.
- /////////////////----------------------------------------------------------------------------------]
- #define STATIC_DOF
- #define DYNAMIC_DOF
- // DOF QUALITY.
- ///////////////////--------------------------------------------------------------------------------]
- // LQ = 24 TAPS, HQ = 60 TAPS.... CHOOSE ONE ONLY!!
- //#define DOF_LQ
- #define DOF_HQ
- // MOTION BLUR.
- ////////////////////-------------------------------------------------------------------------------]
- int MBSteps = 11;
- int MBAmount = 0.55;
- // Bloom
- ///////////////////////////
- float Contrast = 0.75;
- float BloomR = 1.50;
- float BloomG = 0.88;
- float BloomB = 0.30;
- /////////////////////////////
- float EColorSaturation=1.65;
- float EBloomAmount=0.03;
- float AdaptationDepth = 0.35;
- // HDR Settings
- ///////////////////////////
- float4 FogColor={0.75, 0.25, 1.25, 0.75};
- float Defog=0.0;
- float Exposure=0.041;
- float Gamma=0.5;
- float BlueShift=0;
- // Ice filmic
- ///////////////////////////
- float A = 0.113; // SCREEN LUMA
- float B = 0.302; // OVERALL BLEACH DARKNESS / Lower=Darker
- float C = 0.480; // FOREGROUND SCREEN BRIGHTNESS / Higher=Brighter
- float D = 0.011; // OVERALL CONTRAST
- float E = 0.002; // MIDDLE SCREEN CONTRAST
- float F = 2.500;
- float W = 9.20; // LUMINANCE BRIGHTNESS BRIGHTS
- // Bleach Bypass
- ///////////////////////////
- float BP_factor = 0.25;
- // Vignette
- ///////////////////////////
- float VignetteAmount = 0.0;
- // sampler2D AdapLumSampler;
- // sampler2D BloomSampler;
- // float4 ColorCorrect;
- // float4 ColorShift;
- // float4 FogColor
- // 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); //Motion Blur
- texture2D texs6 : register(s6);
- texture2D texs7 : register(s7);
- texture2D texs13 : register(s13); //Palette (0.82)
- 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 s5 = sampler_state
- {
- Texture = <texs5>;
- MinFilter = GaussianQuad;
- MagFilter = GaussianQuad;
- MipFilter = LINEAR;
- AddressU = Wrap;
- AddressV = wrap;
- SRGBTexture=FALSE;
- MaxMipLevel=0;
- MipMapLodBias=0;
- };
- sampler2D s13 = sampler_state
- {
- Texture = <texs13>;
- MinFilter = LINEAR;
- MagFilter = LINEAR;
- MipFilter = NONE;//NONE;//LINEAR;
- 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
- //DOF - IceLaGlace - MK Edit-ion 2012 :)
- //////////////////////////////////////////////-------------------------------------------------------]
- 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;
- // (-150, 1.5, 10.0, 1); PACKET (-150, 0, 0, 0); MK (-5.0, 2.0, 25.0, 1.0) MK (4.0, 1.4, 65.0, 1.0) MK (-1.0, 1.0, 200.0, 1.0)
- //float4 vDofParams = float4(-15.0, 2.0, 45.0, 1.0);
- float4 vDofParams = float4(NearBlur, FocalPlane, FarBlur, BlurCutoffConstant);
- // Near Blur, Focal Plane, Far Blur, Blur Cutoff Constant
- #ifdef STATIC_DOF
- r4=tex2D(s1, FocusPoint); //GBufferTextureSampler3
- r4.y=-_c77.x + _c77.y; //-dofProj.x + dofProj.y
- r4.y=1.0/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.0/r4.x;
- r4.y=r4.z * r4.x;
- #ifdef DYNAMIC_DOF
- 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; // Default was 6.0 (ICE)
- vDofParams.y = cdepth;
- }
- #endif
- depth = max(depth, 0); //Zoom Bug Fixed
- 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 * Dist1 + Dist2; // MK - Top switches
- #ifdef DOF_LQ
- int DoF_TAPS=24;
- static float3 poisson[24]=
- {
- float3(1.0, 0.0, 1.0000 ),
- 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 ),
- 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 ),
- 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 ),
- 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 ),
- 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 ),
- float3(0.9659, -0.2588, 1.0000 ),
- float3(-0.2588, -0.9659, 1.0000 ),
- float3(-0.9659, 0.2588, 1.0000 )
- };
- #endif
- #ifdef DOF_HQ
- int DoF_TAPS=60;
- 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 )
- };
- #endif
- float2 pixelSizeHigh;
- float2 pixelSizeLow;
- pixelSizeHigh.x = 1.0 / _c44.x;
- pixelSizeHigh.y = 1.0 / _c44.y;
- pixelSizeHigh.xy *= PixelSizeMultiplier;
- pixelSizeLow.xy = pixelSizeHigh.xy;
- float2 vMaxCoC = MaxCoC; // float2 (5.0, 10.0); MK TESTING
- float radiusScale = BlurIntensity;
- 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 = 2.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 = 2.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); //Fixed 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 = r11;
- dofcolor.w = r1.w / DoF_TAPS;
- #endif //DEPTH OF FIELD.
- r1.w=dot(r1.xyz, r1.xyz); //dp2
- 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);
- 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;
- 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 = 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;
- } else r10.x=-_c1.y;
- 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;
- } else r10.z=-_c1.y;
- if (r10.z<0.0)
- {
- r10.z=-_c1.w;
- } else r10.z=-_c1.y;
- if (r10.w<0.0)
- {
- r10.w=-_c1.w;
- } else r10.w=-_c1.y;
- r9=r9 + r10;
- r9=r9 * _c4.x;
- r0.z=dot(r9, _c1.yyyy);
- r0.z=r0.z + _c4.w;
- r0.z=1.0/r0.z;
- r8.xzw=r3.xyz * r9.x;
- r7.xyz=r7 * _c4.w + r8.xzw;
- 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;
- r1.w=r0.x * _c1.x;
- 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;
- 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;
- //MOTION BLUR STYLES - MasterKontrol.
- ////////////////////////////////////////////////-----------------------------------------------------]
- r0.y=r0.y * _c80.x;
- r0.z=r0.z * _c80.x;
- r4.xy=r0.yz * _c5.z;
- r5=tex2D(s6, _v0.xy);
- r1.w=r5.x - _c85.x;
- r4.zw=r3.xy * _c2.w;
- r4.zw=_v0.xy * _c3.xy + r4.zw;
- r5=tex2D(s5, r4.zw);
- r4.zw=r4.xy * (r5.x - 4) + _v0.xy;
- r5.xyz=r3.xyz;
- r2.w=_c1.y;
- r3.w=_c1.y;
- // MOTION BLUR STRENGTH.
- //////////////////////////////////-------------------------------------------------------------------]
- for (int iii=0; iii<MBSteps; iii++)
- {
- r6.x=r4.x * r3.w + r4.z;
- r6.y=r4.y * r3.w + r4.w;
- r7=tex2D(s6, r6.xy);
- r5.w=r7.x - _c85.x;
- if (r5.w<MBAmount)
- {
- 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.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;
- if (-r1.w<0.0) r0.xyz=r3.xyz;
- if (-r0.w<0.0) r0.xyz=r1.xyz;
- //Color Processing
- 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, 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
- //Process.
- //float4 color = r0 * r11;
- r0=tex2D(s2, _v0.xyz); //HDR Color - MK
- float4 color = r0;
- float4 origcolor = tex2D(s2, _v0.xyz);
- //Adaptation Luminance
- r5=tex2D(s4, _c0.x);
- //Adaptation
- r5.w=r5.x;
- r5.w=AdaptationDepth/r5.w;
- r0.xyz=r11 * r5.w;
- r3.xy=_c10.xwxw;
- r3.xy=r3.xy * r5.w;
- color.xyz=color.xyz * r5.w;
- //Temp 2.0 Test
- r7=tex2D(s3, _v0.xy);
- color=r7 * 0 + r0; // * 0 + r11 does not work
- float4 colorbloom = tex2D(s3, _v0.xy);//0.5
- colorbloom *= r5.w;
- colorbloom.r*=lerp(1, 1.5, saturate(pow(depth/250.0, 0.5)));
- colorbloom.g*=lerp(1, 1.5, saturate(pow(depth/250.0, 0.5)));
- colorbloom.b*=lerp(1, 1.5, saturate(pow(depth/250.0, 0.5)));
- //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);
- float bloomgray=dot(colorbloom.xyz, 0.333) * EBloomAmount;
- colorbloom.r *= BloomR;
- colorbloom.g *= BloomG;
- colorbloom.b *= BloomB;
- float4 dirtTex=tex2D(s13, _v0.xy);
- float4 uvsrclens=0.0;
- float3 lensDirt=saturate(lensDirt.xyz);
- lensDirt=dirtTex.xyz;
- colBloom.xyz+=colBloom.xyz*lensDirt.xyz*0.5;
- color.xyz=lerp(color.xyz, color.xyz*0.8+colorbloom.xyz*0.3, saturate(bloomgray));
- color.xyz=max(color.xyz, 0.0001);
- color *= Exposure;
- float4 curr = ((color*(A*color+C*B)+D*E)/(color*(A*color+B)+D*F))-E/F;
- float4 whiteScale = ((W*(A*W+C*B)+D*E)/(W*(A*W+B)+D*F))-E/F;
- color = curr*whiteScale;
- color = pow(color,1/2.2);
- //color.xyz = saturate(color.xyz);
- color.xyz=color.xyz*0.98 + sin(color.xyz*1.570796)*0.08;
- //Bleach Bypass Code
- ///////////////////////////////////////////
- float luma = dot(color.xyz, _c12.xyz);
- float3 blend = luma.xxx;
- float L = min(1, max(0, 10*(luma - 0.5)));
- float3 result1 = 1.5 * color.xyz * blend;
- float3 result2 = 1.0 - 1.5*(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;
- //Increase Constrast
- ////////////////////////////////////////////
- color.xyz = lerp(color.xyz, 0.5 * (1 + sin((color.xyz - 0.5)*3.1415926)), Contrast);
- #ifdef APPLYGAMECOLORCORRECTION
- //Apply Original Corrections (((
- r0.w=1.0;//_c81.y/r5.x; //r5 is Adaptation Luminance Sampler
- 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, 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
- //Cross Processing Code - IceLaGlace 2011 (c)
- ////////////////////////////////////////////////////
- float Weight;
- r0.xyz=color.xyz;
- r2.x = dot(color.xyz, 0.333);
- r2.x = 1 - pow(1.71, -r2.x*5.0);
- r2.x = r2.x * 0.094; // 8-19-2012 Changing Gamma / Brightness Levels
- r0.xyz = saturate(r0.xyz - r2.x);
- r0.xyz = lerp(r0.xyz, sin(r0.xyz*1.570796), 1.25);
- Weight=0.6 - r2.x*0.5;
- color.xyz=lerp(color.xyz, r0.xyz, Weight);
- r10.x = dot(color.xyz, _c12.xyz);
- color.xyz = lerp(color.xyz, r10.x, 0.1);
- float fRatio = 0.5;
- float moodR = 1.02;
- float moodG = 1.02;
- float moodB = 1.01;
- float4 colInput = r0;
- float4 colMood = 0.56;
- colMood.r = moodR;
- colMood.g = moodG;
- colMood.b = moodB;
- float fLum = ( colInput.r + colInput.g + colInput.b ) / 3;
- colMood = lerp(0, colMood, saturate(fLum * 2.0));
- colMood = lerp(colMood, 1, saturate(fLum - 0.5) * 2.0);
- float4 colOutput = lerp(colInput, colMood, saturate(fLum * fRatio));
- color.rgb=max(0, colOutput);
- r0.a=1.0;
- //Vignette Code
- ////////////////////////////////////////
- focus = length(center.xy)*1.41421;
- focus = pow(focus, 4);
- color.xyz -= focus * VignetteAmount;
- _oC0.xyz=color.xyz;
- //_oC0.w=1.0;
- return _oC0;
- }
- //Temporary Post Process
- technique Shader_C215BE6E
- {
- pass p0
- {
- PixelShader = compile ps_3_0 PS_C215BE6E();
- }
- }
- //Original Post Process
- 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;
- // float4 FogColor
- // 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
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement