Advertisement
Guest User

Code Is My Pron by Nuance

a guest
Apr 25th, 2011
1,069
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. varying vec3 o;
  2. varying mat4 p;
  3.  
  4. void main(void) {
  5. p=gl_ModelViewMatrix;
  6. o=vec3(gl_Vertex.xy,.99);
  7. gl_Position=vec4(o,1.);
  8. }
  9.  
  10. uniform sampler3D t;
  11. varying vec3 o;
  12. varying mat4 p;
  13. vec3 e(vec3 s, int i) {
  14. float n=1.;
  15. s*=2.;
  16. vec3 r=vec3(0.);
  17. for(;i>0;i--) {
  18. r+=texture3D(t,s).xyz*n;
  19. n*=0.7;s*=1.93;
  20. }
  21. return r;
  22. }
  23.  
  24. void main(void){
  25. vec3 d=normalize(o*vec3(1.,.6,1.));
  26. vec3 r=vec3(0.,0.,8.*p[0][1]-8.);
  27. float s=sin(p[0][3]*9.42);
  28. float c=cos(p[0][3]*9.42);
  29. r.xz=r.xz*mat2(c,-s,s,c);
  30. d.xz=d.xz*mat2(c,-s,s,c);
  31. s=sin(p[0][2]*9.42);c=cos(p[0][2]*9.42);
  32. r.yz=r.yz*mat2(c,-s,s,c);
  33. d.yz=d.yz*mat2(c,-s,s,c);
  34. vec3 l=vec3(0.,0.,0.);
  35. float m=0.;
  36. vec3 w=vec3(.016,.012,.009)*p[1][0];
  37. while(length(r)<15.&&m<0.95) {
  38. float i=min(length(r+vec3(0.,9.,0.))-8.2+20.*p[2][1],max(abs(r.y)-1.1-p[1][3]*20.,abs(length(r.xz)-2.+2.*p[1][2])*(.5+p[2][0])-2.*p[1][2]+1.2));
  39. vec3 n=r;n.y-=p[0][0]*.66;
  40. vec3 c=e(n*0.03,2)*.04*p[1][1];
  41. n.y=n.y*(.05+p[1][1])-.5*p[0][0];
  42. float v=e(c+n*.08,6).r;
  43. i-=.5*v;
  44. l+=w;
  45. m+=.003;
  46. float t=(1.-m)*clamp(1.-exp(i),0.,1.);
  47. float f=smoothstep(-2.5,-1.5,-length(r)+v*6.*(p[2][1]+1.));
  48. l+=(mix(vec3(.7,.2,.0),vec3(.1,.45,.85),f)*clamp(abs(f-.5),-0.5,1.)+clamp(r.y+v.x-2.*p[1][3]-1.,.0,100.))*t;
  49. m+=t;
  50. r+=d*max(.02,(i)*.5);
  51. }
  52. l+=(1.-m)*mix(vec3(.0,.1,.2),vec3(.0,.0,.1),normalize(r).y);
  53. gl_FragColor=vec4(l-.3,1.);
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement