- Reestructuración de ficheros y directorios general
- merge v0.01 --> Añadido fileselector - Añadidas fuentes de Gem y Pure Data - pix2jpg incluído en Gem. Archivos de construcción de Gem modificados. - Añadido fichero ompiling.txt con instrucciones de compilación
This commit is contained in:
parent
c9adfd020b
commit
e85d191b46
3100 changed files with 775434 additions and 3073 deletions
62
Gem/examples/12.multi_screen_projection/soft_edge.frag
Normal file
62
Gem/examples/12.multi_screen_projection/soft_edge.frag
Normal file
|
@ -0,0 +1,62 @@
|
|||
// Cyrille Henry 2010
|
||||
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
//uniform sampler2DRect MyTex;
|
||||
uniform sampler2D MyTex;
|
||||
uniform vec2 overlap, geometry_screen, geometry_computer;
|
||||
|
||||
void main (void)
|
||||
{
|
||||
// FSAA
|
||||
|
||||
// change coord from computer matrix to screen matrice
|
||||
vec2 coord = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
|
||||
vec2 pos_new = coord;
|
||||
pos_new *= geometry_computer;
|
||||
float screen_num = floor(pos_new.x)+floor(pos_new.y)*geometry_computer.x; // number of the screen
|
||||
pos_new = fract(pos_new); // coord in 1 screen (from 0 to 1)
|
||||
pos_new.x += fract(screen_num/geometry_screen.x)*geometry_screen.x;
|
||||
pos_new.y += floor(screen_num/geometry_screen.x);
|
||||
pos_new /= geometry_screen;
|
||||
|
||||
// compute position regarding to the overlap
|
||||
vec2 pos = pos_new;
|
||||
pos *= geometry_screen;
|
||||
|
||||
vec2 pos_over = fract(pos);
|
||||
pos_over *= overlap;
|
||||
pos_over -= overlap/2.;
|
||||
pos += pos_over;
|
||||
pos += overlap/2.;
|
||||
pos /= geometry_screen + overlap;
|
||||
vec4 color = texture2D(MyTex, pos);
|
||||
|
||||
// compute fade on Top and Right
|
||||
vec2 black = pos_new;
|
||||
black *= geometry_screen;
|
||||
black = fract(black);
|
||||
black *= 1. + (overlap/ (geometry_screen/2.));
|
||||
black -= 1.;
|
||||
black = max(black,0.);
|
||||
black *= (geometry_screen / 2.) / overlap;
|
||||
if ( ( floor(pos_new.x*geometry_screen.x) < geometry_screen.x-1. ) && (overlap.x != 0.) )
|
||||
color *= (1.-black.x);
|
||||
if ( ( floor(pos_new.y*geometry_screen.y) < geometry_screen.y-1. ) && (overlap.x != 0.) )
|
||||
color *= (1.-black.y);
|
||||
|
||||
// compute fade on Left and bottom
|
||||
black = pos_new;
|
||||
black *= geometry_screen;
|
||||
black = fract(black);
|
||||
black = vec2(1.) - black;
|
||||
black *= 1. + (overlap/ (geometry_screen/2.));
|
||||
black -= 1.;
|
||||
black = max(black,0.);
|
||||
black *= (geometry_screen / 2.) / overlap;
|
||||
if ( ( floor(pos_new.x*geometry_screen.x) > 0. ) && (overlap.x != 0.) )
|
||||
color *= (1.-black.x);
|
||||
if ( ( floor(pos_new.y*geometry_screen.y) > 0. ) && (overlap.x != 0.) )
|
||||
color *= (1.-black.y);
|
||||
|
||||
gl_FragColor = color;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue