GLSL Motif en Damier

je veux à l'ombre du quad avec les checkers:

f(P)=[étage(Px)+sol(Py)]mod2.

Mon quad est:

glBegin(GL_QUADS);    
  glVertex3f(0,0,0.0);    
  glVertex3f(4,0,0.0);    
  glVertex3f(4,4,0.0);   
  glVertex3f(0,4, 0.0); 
glEnd();

Le vertex shader fichier:

varying float factor;
float x,y;
void main(){
  x=floor(gl_Position.x);
  y=floor(gl_Position.y);
  factor = mod((x+y),2.0);
}

Et le fragment shader fichier est:

varying float factor;
void main(){
  gl_FragColor = vec4(factor,factor,factor,1.0);
}

Mais im obtenir ceci:

GLSL Motif en Damier

Il semble que la fonction mod doeasn pas de travail ou peut-être quelque chose d'autre...
Toute aide?

Intéressant. Le résultat montre que le quad est effectivement rendu que deux triangles (topleft/bottomright). Sinon, le résultat serait plus comme un lissé damier. Si c'était le cas, vous pouvez utiliser un seuillage de la fonction dans votre fragment shader pour obtenir un bon damier. Comme il est, l'interpolation est inutile pour un effet damier.

OriginalL'auteur Sanich | 2011-01-14