123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // Cyrille Henry 2011
- // modifications by Peter Venus & Marian Weger 2012
- // #extension GL_ARB_texture_rectangle : enable
- // uniform sampler2DRect MyTex;
- uniform sampler2D MyTex;
- uniform float Cx,Cy,rot, Width, Max, Min, Size;
- void main (void)
- {
- // calculate next power of two image size
- float i = 0.;
- float number = 0.;
- for(i=0.;i<24.;i++)
- {
- if(pow(2., i)>Size)
- {
- number=pow(2., i);
- break;
- }
- }
- float factor = Size / number;
- vec2 car_position = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
- float pol_r = (factor*Min) + (car_position.y * (Max - Min));
- float pol_theta = ((car_position.x * (Width / factor)) + rot) * 3.1415926536 / 180.;
- //
- vec2 new_car;
- //
- new_car.x = cos(pol_theta);
- new_car.y = sin(pol_theta);
- //
- new_car *= pol_r/2.;
- //
- new_car += factor * vec2(Cx, Cy);
- vec4 color = texture2D(MyTex, new_car);
- gl_FragColor = color;
- }
|