Advertisement
Guest User

elevated - rgba:tbc

a guest
May 9th, 2011
433
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. sampler t0,t1,t2;
  2. float4 q[16];
  3. float4x4 v:register(c16);
  4. float3 no(float2 p) {
  5. float2 f=p-floor(p);
  6. float2 u=f*f*f*(f*(f*6-15)+10);
  7. float a=tex2Dlod(t0,float4((floor(p)+float2(0,0))/256,0,0));
  8. float b=tex2Dlod(t0,float4((floor(p)+float2(1,0))/256,0,0));
  9. float c=tex2Dlod(t0,float4((floor(p)+float2(0,1))/256,0,0));
  10. float d=tex2Dlod(t0,float4((floor(p)+float2(1,1))/256,0,0));
  11. return float3(a+(b-a)*u.x+(c-a)*u.y+(a-b-c+d)*u.x*u.y,30*f*f*(f*(f-2)+1)*(float2(b-a,c-a)+(a-b-c+d)*u.yx));
  12. }
  13.  
  14. float f(float2 p,float o) {
  15. float2 d=0;
  16. float a=0;
  17. float b=3;
  18.  
  19. for (float i=0; i<o; i++) {
  20. float3 n=no(.25*p);
  21. d+=n.yz;
  22. a+=(b*=.5)*n.x/(1+mul(d,d));
  23. p=mul(float2x2(1.6,-1.2,1.2,1.6),p);
  24. }
  25.  
  26. return a;
  27. }
  28.  
  29. float3 cn(float2 p,float e,float o) {
  30. float a=f(p,o);
  31. return normalize(float3(q[2].w*(a-f(p+float2(e,0),o)),e,q[2].w*(a-f(p+float2(0,e),o))));
  32. }
  33.  
  34. float3 b(float3 p,float3 c,float3 d) {
  35. float a=mul(d,q[3]);
  36. float b=lerp(a,mul(c,q[3]),.5+.5*q[2].x);
  37. return float3(.13,.18,.22)*(c.y+.25*saturate(-b)-.1*no(1024*p.xz).y)+float3(1.4,1,.7)*saturate(b)*saturate(2*a);
  38. }
  39.  
  40. float4 m0(float4 x:position,out float4 y:color):position {
  41. x.z=q[2].w*f(x.yx,8);
  42. y=x.yzxw;
  43. return mul(v,y);
  44. }
  45.  
  46. float4 m1(float2 x:vpos):color {
  47. float2 o=q[0]+x.x*.37;
  48. float3 c;
  49. float t=q[3].w*q[0].z;
  50. c.x=16*cos(t*tex2D(t0,o+=.1)+3*tex2D(t0,o+=.1))+8*cos(t*tex2D(t0,o+=.1)*2+3*tex2D(t0,o+=.1));
  51. c.z=16*cos(t*tex2D(t0,o+=.1)+3*tex2D(t0,o+=.1))+8*cos(t*tex2D(t0,o+=.1)*2+3*tex2D(t0,o+=.1));
  52. c.y=q[2].w*f(c.xz,3)+q[1].x+q[1].y*x.x;o+=q[3].w*.5;
  53. c.x+=.002*no(o+=.1);
  54. c.y+=.002*no(o+=.1);
  55. c.z+=.002*no(o+=.1);
  56. return float4(c,.3*cos(t*2));
  57. }
  58.  
  59. float4 m2(float4 y:color):color {
  60. return y;
  61. }
  62.  
  63. float4 m3(float2 x:texcoord):color {
  64. float2 o=x+.5/1280;
  65. float4d=tex2D(t1,o);
  66. float3 e=normalize(mul(v,float4(x.x*2-1,-x.y*2+1,1,1)));
  67. float2 s=e.xz/e.y;
  68. float k=(2*s.y+1000)%8;
  69. float3 c=float3(.55,.65,.75)+.1*f(s+q[3].w*.2,10)+.5*pow(1-e.y,8)+pow(saturate(mul(e,q[3])),16)*float3(.4,.3,.1)+float4(1+.4*k,2,3+.5*k,0)*(1-cos(12.5664*s.y))*saturate(1-abs(s.y)/10-abs(s.x+q[5+k].x*.0012-8)/20)*exp(-q[5+k].x*.0002);
  70.  
  71. if (d.w>.5) {
  72. float t=length(d.xyz-q[4].xyz);
  73. float w=q[1].w-d.y;
  74.  
  75. if (w<0) {
  76. float3 n=cn(d.xz,.001*t,12-log2(t));
  77. float h=f(3*d.xz,3);
  78. float r=no(666*d.xz);
  79. c=(.1+.75*q[2].x)*(.8+.2*r);
  80. c=lerp(c,lerp(float3(.8,.85,.9),float3(.45,.45,.2)*(.8+.2*r),q[2].x),smoothstep(.5-.8*n.y,1-1.1*n.y,h*.15));
  81. c=lerp(c,lerp(float3(.37,.23,.08),float3(.42,.4,.2),q[2].x)*(.5+.5*r),smoothstep(0,1,50*(n.y-1)+(h+q[2].x)/.4));
  82. c*=b(d,n,cn(d.xz,.001*t,5));
  83. } else {
  84. t=(q[1].w-q[4].y)/e.y;
  85. d=q[4]+e.xyzz*t;
  86.  
  87. float3 n=normalize(cn(float2(512,32)*d.xz+saturate(w*60)*float2(q[3].w,0),.001*t,4)*float3(1,6,1));
  88. c=.12*(float3(.4,1,1)-float3(.2,.6,.4)*saturate(w*16));c*=.3+.7*q[2].x;
  89. c+=pow(1-mul(-e,n),4)*(pow(mul(q[3],reflect(-e,n)),32)*float3(.32,.31,.3)+.1);
  90. c=lerp(c,b(d,n,n),smoothstep(1,0,q[2].x+w*60-f(666*d.xz+saturate(w*60)*float2(q[3].w,0)*2,5))*.5);
  91. }
  92.  
  93. c*=.7+.3*smoothstep(0,1,256*abs(w));
  94. c*=exp(-.042*t);
  95. c+=(1-exp(-.1*t))*(float3(.52,.59,.65)+pow(saturate(mul(e,q[3])),8)*float3(.6,.4,.1));
  96. }
  97.  
  98. return float4(c,0);
  99. }
  100.  
  101. float4 m4(float2 x:texcoord):color {
  102. float2 o=x+.5/1280;
  103. float4 d=tex2D(t1,o);
  104. float3 c=tex2D(t2,o);
  105.  
  106. if(d.w>.5) {
  107. d=mul(v,float4(d.xyz,1));
  108. d.y*=-1;
  109. c=0;
  110.  
  111. for (float i=0; i<16; i++) {
  112. c.x+=tex2D(t2,o+i*(.5+.5*d.xy/d.w-o)/16+float2(2,0)/1280).x;
  113. c.y+=tex2D(t2,o+i*(.5+.5*d.xy/d.w-o)/16).y;
  114. c.z+=tex2D(t2,o+i*(.5+.5*d.xy/d.w-o)/16+float2(-2,0)/1280).z;
  115. }
  116.  
  117. c/=16;
  118. }
  119.  
  120. c=pow(c,.45)*q[2].z+q[2].y;
  121. c*=.4+9.6*o.x*o.y*(1-o.x)*(1-o.y);
  122. c.xz*=.98;
  123. float w=tex2D(t0,q[3].w*.1);
  124. o+=w;
  125. c-=.005*w;
  126. c.x+=.01*tex2D(t0,o+=.1);
  127. c.y+=.01*tex2D(t0,o+=.1);
  128. c.z+=.01*tex2D(t0,o+=.1);
  129.  
  130. return float4(c,0);
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement