Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct __sampler2D
- {
- sampler2D s;
- float2 pixelsize;
- }
- ;
- float4 __tex2Dgather0(__sampler2D s, float2 c)
- {
- return float4(tex2Dlod(s.s, float4(c + float2(0, 1) * s.pixelsize, 0, 0)).r, tex2Dlod(s.s, float4(c + float2(1, 1) * s.pixelsize.xy, 0, 0)).r, tex2Dlod(s.s, float4(c + float2(1, 0) * s.pixelsize.xy, 0, 0)).r, tex2Dlod(s.s, float4(c, 0, 0)).r);
- }
- float4 __tex2Dgather1(__sampler2D s, float2 c)
- {
- return float4(tex2Dlod(s.s, float4(c + float2(0, 1) * s.pixelsize, 0, 0)).g, tex2Dlod(s.s, float4(c + float2(1, 1) * s.pixelsize.xy, 0, 0)).g, tex2Dlod(s.s, float4(c + float2(1, 0) * s.pixelsize.xy, 0, 0)).g, tex2Dlod(s.s, float4(c, 0, 0)).g);
- }
- float4 __tex2Dgather2(__sampler2D s, float2 c)
- {
- return float4(tex2Dlod(s.s, float4(c + float2(0, 1) * s.pixelsize, 0, 0)).b, tex2Dlod(s.s, float4(c + float2(1, 1) * s.pixelsize.xy, 0, 0)).b, tex2Dlod(s.s, float4(c + float2(1, 0) * s.pixelsize.xy, 0, 0)).b, tex2Dlod(s.s, float4(c, 0, 0)).b);
- }
- float4 __tex2Dgather3(__sampler2D s, float2 c)
- {
- return float4(tex2Dlod(s.s, float4(c + float2(0, 1) * s.pixelsize, 0, 0)).a, tex2Dlod(s.s, float4(c + float2(1, 1) * s.pixelsize.xy, 0, 0)).a, tex2Dlod(s.s, float4(c + float2(1, 0) * s.pixelsize.xy, 0, 0)).a, tex2Dlod(s.s, float4(c, 0, 0)).a);
- }
- float4 __tex2Dgather0offset(__sampler2D s, float2 c, int2 offset)
- {
- return __tex2Dgather0(s, c + offset * s.pixelsize);
- }
- float4 __tex2Dgather1offset(__sampler2D s, float2 c, int2 offset)
- {
- return __tex2Dgather1(s, c + offset * s.pixelsize);
- }
- float4 __tex2Dgather2offset(__sampler2D s, float2 c, int2 offset)
- {
- return __tex2Dgather2(s, c + offset * s.pixelsize);
- }
- float4 __tex2Dgather3offset(__sampler2D s, float2 c, int2 offset)
- {
- return __tex2Dgather3(s, c + offset * s.pixelsize);
- }
- float4 __tex2Dlodoffset(__sampler2D s, float4 c, int2 offset)
- {
- return tex2Dlod(s.s, c + float4(offset * s.pixelsize, 0, 0));
- }
- float4 __tex2Doffset(__sampler2D s, float2 c, int2 offset)
- {
- return tex2D(s.s, c + offset * s.pixelsize);
- }
- int2 __tex2Dsize(__sampler2D s, int lod)
- {
- return int2(1 / s.pixelsize) / exp2(lod);
- }
- uniform float2 __TEXEL_SIZE__
- :
- register(c255);
- uniform float _NSRFX_timer
- :
- register(c0);
- uniform float _NSRFX_timeleft
- :
- register(c1);
- uniform float _NSRFX_frametime
- :
- register(c2);
- static const float _NSCFX_NSpermTexUnit = 0.003906f;
- static const float _NSCFX_NSpermTexUnitHalf = 0.001953f;
- uniform float _NSCFX_NSwidth
- :
- register(c3);
- uniform float _NSCFX_NSheight
- :
- register(c4);
- uniform float _NSCFX_NStimer
- :
- register(c5);
- static const float _NSCFX_NSgrainamount = 0.050000f;
- uniform float _NSCFX_NScolored
- :
- register(c6);
- uniform float _NSCFX_NScoloramount
- :
- register(c7);
- uniform float _NSCFX_NSgrainsize
- :
- register(c8);
- uniform float _NSCFX_NSlumamount
- :
- register(c9);
- void _NSRFX_VS_PostProcess(in uint id, out float4 pos, out float2 texcoord)
- {
- (texcoord.x = ((id == 2) ? 2.000000f : 0.000000f));
- (texcoord.y = ((id == 1) ? 2.000000f : 0.000000f));
- (pos = float4(((texcoord * float2(2.000000f, -2.000000f)) + float2(-1.000000f, 1.000000f)), 0.000000f, 1.000000f));
- }
- void __main(in uint
- id : TEXCOORD0, out float4 pos : POSITION, out float2 texcoord : TEXCOORD)
- {
- _NSRFX_VS_PostProcess(id, pos, texcoord);
- pos.xy += __TEXEL_SIZE__ * pos.ww;
- }
- 21/07/2015 16:56:51:867 [19652] | TRACE | > Compiling shader
- 'GrainPass':
- struct __sampler2D
- {
- sampler2D s;
- float2 pixelsize;
- }
- ;
- float4 __tex2Dgather0(__sampler2D s, float2 c)
- {
- return float4(tex2Dlod(s.s, float4(c + float2(0, 1) * s.pixelsize, 0, 0)).r, tex2Dlod(s.s, float4(c + float2(1, 1) * s.pixelsize.xy, 0, 0)).r, tex2Dlod(s.s, float4(c + float2(1, 0) * s.pixelsize.xy, 0, 0)).r, tex2Dlod(s.s, float4(c, 0, 0)).r);
- }
- float4 __tex2Dgather1(__sampler2D s, float2 c)
- {
- return float4(tex2Dlod(s.s, float4(c + float2(0, 1) * s.pixelsize, 0, 0)).g, tex2Dlod(s.s, float4(c + float2(1, 1) * s.pixelsize.xy, 0, 0)).g, tex2Dlod(s.s, float4(c + float2(1, 0) * s.pixelsize.xy, 0, 0)).g, tex2Dlod(s.s, float4(c, 0, 0)).g);
- }
- float4 __tex2Dgather2(__sampler2D s, float2 c)
- {
- return float4(tex2Dlod(s.s, float4(c + float2(0, 1) * s.pixelsize, 0, 0)).b, tex2Dlod(s.s, float4(c + float2(1, 1) * s.pixelsize.xy, 0, 0)).b, tex2Dlod(s.s, float4(c + float2(1, 0) * s.pixelsize.xy, 0, 0)).b, tex2Dlod(s.s, float4(c, 0, 0)).b);
- }
- float4 __tex2Dgather3(__sampler2D s, float2 c)
- {
- return float4(tex2Dlod(s.s, float4(c + float2(0, 1) * s.pixelsize, 0, 0)).a, tex2Dlod(s.s, float4(c + float2(1, 1) * s.pixelsize.xy, 0, 0)).a, tex2Dlod(s.s, float4(c + float2(1, 0) * s.pixelsize.xy, 0, 0)).a, tex2Dlod(s.s, float4(c, 0, 0)).a);
- }
- float4 __tex2Dgather0offset(__sampler2D s, float2 c, int2 offset)
- {
- return __tex2Dgather0(s, c + offset * s.pixelsize);
- }
- float4 __tex2Dgather1offset(__sampler2D s, float2 c, int2 offset)
- {
- return __tex2Dgather1(s, c + offset * s.pixelsize);
- }
- float4 __tex2Dgather2offset(__sampler2D s, float2 c, int2 offset)
- {
- return __tex2Dgather2(s, c + offset * s.pixelsize);
- }
- float4 __tex2Dgather3offset(__sampler2D s, float2 c, int2 offset)
- {
- return __tex2Dgather3(s, c + offset * s.pixelsize);
- }
- float4 __tex2Dlodoffset(__sampler2D s, float4 c, int2 offset)
- {
- return tex2Dlod(s.s, c + float4(offset * s.pixelsize, 0, 0));
- }
- float4 __tex2Doffset(__sampler2D s, float2 c, int2 offset)
- {
- return tex2D(s.s, c + offset * s.pixelsize);
- }
- int2 __tex2Dsize(__sampler2D s, int lod)
- {
- return int2(1 / s.pixelsize) / exp2(lod);
- }
- #define POSITION VPOS
- uniform float _NSRFX_timer
- :
- register(c0);
- uniform float _NSRFX_timeleft
- :
- register(c1);
- uniform float _NSRFX_frametime
- :
- register(c2);
- static const float _NSCFX_NSpermTexUnit = 0.003906f;
- static const float _NSCFX_NSpermTexUnitHalf = 0.001953f;
- uniform float _NSCFX_NSwidth
- :
- register(c3);
- uniform float _NSCFX_NSheight
- :
- register(c4);
- uniform float _NSCFX_NStimer
- :
- register(c5);
- static const float _NSCFX_NSgrainamount = 0.050000f;
- uniform float _NSCFX_NScolored
- :
- register(c6);
- uniform float _NSCFX_NScoloramount
- :
- register(c7);
- uniform float _NSCFX_NSgrainsize
- :
- register(c8);
- uniform float _NSCFX_NSlumamount
- :
- register(c9);
- float2 _NSCFX_NScoordRot(in float2
- tc, in float angle
- )
- {
- float aspectr = (_NSCFX_NSwidth / _NSCFX_NSheight);
- float rotX = (((((tc.x * 2.000000f) - 1.000000f) * aspectr) * cos(angle)) - (((tc.y * 2.000000f) - 1.000000f) * sin(angle)));
- float rotY = ((((tc.y * 2.000000f) - 1.000000f) * cos(angle)) + ((((tc.x * 2.000000f) - 1.000000f) * aspectr) * sin(angle)));
- (rotX = (((rotX / aspectr) * 0.500000f) + 0.500000f));
- (rotY = ((rotY * 0.500000f) + 0.500000f));
- return float2(rotX, rotY);
- }
- float4 _NSCFX_NSrnm(in float2
- tc)
- {
- float noise = (sin(dot(float3(tc.x, tc.y, _NSCFX_NStimer), float3(12.989800f, 78.233002f, 0.002522f))) * 43758.546875f);
- float noiseR = ((frac(noise) * 2.000000f) - 1.000000f);
- float noiseG = ((frac((noise * 1.215400f)) * 2.000000f) - 1.000000f);
- float noiseB = ((frac((noise * 1.345300f)) * 2.000000f) - 1.000000f);
- float noiseA = ((frac((noise * 1.364700f)) * 2.000000f) - 1.000000f);
- return float4(noiseR, noiseG, noiseB, noiseA);
- }
- float _NSCFX_NSfade(in float t
- )
- {
- return (((t * t) * t) * ((t * ((t * 6.000000f) - 15.000000f)) + 10.000000f));
- }
- float _NSCFX_NSpnoise3D(in float3
- p)
- {
- float3 pi = ((0.003906f * floor(p)) + 0.001953f);
- float3 pf = frac(p);
- float perm00 = _NSCFX_NSrnm(pi.xy).w;
- float3 grad000 = ((_NSCFX_NSrnm(float2(perm00, pi.z)).xyz * 4.000000f) - 1.000000f);
- float n000 = dot(grad000, pf);
- float3 grad001 = ((_NSCFX_NSrnm(float2(perm00, (pi.z + 0.003906f))).xyz * 4.000000f) - 1.000000f);
- float n001 = dot(grad001, (pf - float3(0.000000f, 0.000000f, 1.000000f)));
- float perm01 = _NSCFX_NSrnm((pi.xy + float2(0.000000f, 0.003906f))).w;
- float3 grad010 = ((_NSCFX_NSrnm(float2(perm01, pi.z)).xyz * 4.000000f) - 1.000000f);
- float n010 = dot(grad010, (pf - float3(0.000000f, 1.000000f, 0.000000f)));
- float3 grad011 = ((_NSCFX_NSrnm(float2(perm01, (pi.z + 0.003906f))).xyz * 4.000000f) - 1.000000f);
- float n011 = dot(grad011, (pf - float3(0.000000f, 1.000000f, 1.000000f)));
- float perm10 = _NSCFX_NSrnm((pi.xy + float2(0.003906f, 0.000000f))).w;
- float3 grad100 = ((_NSCFX_NSrnm(float2(perm10, pi.z)).xyz * 4.000000f) - 1.000000f);
- float n100 = dot(grad100, (pf - float3(1.000000f, 0.000000f, 0.000000f)));
- float3 grad101 = ((_NSCFX_NSrnm(float2(perm10, (pi.z + 0.003906f))).xyz * 4.000000f) - 1.000000f);
- float n101 = dot(grad101, (pf - float3(1.000000f, 0.000000f, 1.000000f)));
- float perm11 = _NSCFX_NSrnm((pi.xy + float2(0.003906f, 0.003906f))).w;
- float3 grad110 = ((_NSCFX_NSrnm(float2(perm11, pi.z)).xyz * 4.000000f) - 1.000000f);
- float n110 = dot(grad110, (pf - float3(1.000000f, 1.000000f, 0.000000f)));
- float3 grad111 = ((_NSCFX_NSrnm(float2(perm11, (pi.z + 0.003906f))).xyz * 4.000000f) - 1.000000f);
- float n111 = dot(grad111, (pf - float3(1.000000f, 1.000000f, 1.000000f)));
- float4 n_x = lerp(float4(n000, n001, n010, n011), float4(n100, n101, n110, n111), _NSCFX_NSfade(pf.x));
- float2 n_xy = lerp(n_x.xy, n_x.zw, _NSCFX_NSfade(pf.y));
- float n_xyz = lerp(n_xy.x, n_xy.y, _NSCFX_NSfade(pf.z));
- return n_xyz;
- }
- float4 _NSCFX_NSGrainPass(in float4
- position, in float2 texcoord)
- {
- float3 rotOffset = float3(1.425000f, 3.892000f, 5.835000f);
- float2 rotCoordsR = _NSCFX_NScoordRot(texcoord, (_NSCFX_NStimer + rotOffset.x));
- float2 rot = (rotCoordsR * float2((_NSCFX_NSwidth / _NSCFX_NSgrainsize), (_NSCFX_NSheight / _NSCFX_NSgrainsize)));
- float pNoise = _NSCFX_NSpnoise3D(float3(rot.x, rot.y, 0.000000f));
- float3 noise = float3(pNoise, pNoise, pNoise);
- if ((_NSCFX_NScolored == 1)) {
- float2 rotCoordsG = _NSCFX_NScoordRot(texcoord, (_NSCFX_NStimer + rotOffset.y));
- float2 rotCoordsB = _NSCFX_NScoordRot(texcoord, (_NSCFX_NStimer + rotOffset.z));
- (noise.y = lerp(noise.x, _NSCFX_NSpnoise3D(float3((rotCoordsG * float2((_NSCFX_NSwidth / _NSCFX_NSgrainsize), (_NSCFX_NSheight / _NSCFX_NSgrainsize))), 1.000000f)), _NSCFX_NScoloramount));
- (noise.z = lerp(noise.x, _NSCFX_NSpnoise3D(float3((rotCoordsB * float2((_NSCFX_NSwidth / _NSCFX_NSgrainsize), (_NSCFX_NSheight / _NSCFX_NSgrainsize))), 2.000000f)), _NSCFX_NScoloramount));
- }
- float3 col = position.xyz;
- float3 lumcoeff = float3(0.299000f, 0.587000f, 0.114000f);
- float luminance = lerp(0.000000f, dot(col, lumcoeff), _NSCFX_NSlumamount);
- float lum = smoothstep(0.200000f, 0.000000f, luminance);
- (lum += luminance);
- float2 thepow = pow(lum, 4.000000f);
- (noise = lerp(noise, float3(0.000000f, 0.000000f, 0.000000f), pow(lum, 4.000000f)));
- (col += (noise * 0.050000f));
- return float4(col, 1.000000f);
- }
- float4 __main(in float4
- position : POSITION, in float2 texcoord : TEXCOORD0) : COLOR {
- float4 _return = _NSCFX_NSGrainPass(position, texcoord);
- return _return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement