Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- number cx = 0.5;
- number cy = 0.5;
- number cz = 25;
- number R = 0.2;
- number x0=0.5;
- number y0=0.5;
- number z0=0;
- extern number rot;
- vec4 effect( vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords ){
- number y1=texture_coords.y;
- number x1=texture_coords.x;
- number z1=50;
- number dx = x1 - x0;
- number dy = y1 - y0;
- number dz = z1 - z0;
- number a = dx*dx + dy*dy + dz*dz;
- number b = 2*dx*(x0-cx) + 2*dy*(y0-cy) + 2*dz*(z0-cz);
- number c = cx*cx + cy*cy + cz*cz + x0*x0 + y0*y0 + z0*z0 + -2*(cx*x0 + cy*y0 + cz*z0) - R*R;
- number t = (-b-sqrt(pow(b,2)-4*a*c))/(2*a);
- if (t > 0) {
- number nx=(texture_coords.x-cx)/R/2;
- number ny=(texture_coords.y-cy)/R/2;
- number tu = asin(nx)/3.14 + 0.5 ;
- number tv = asin(ny)/3.14 + 0.5 ;
- vec2 texcoords = vec2(mod(tu+rot,1),tv);
- vec4 pixel = Texel(texture, texcoords );
- return pixel;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement