j'ai fait un peu d'ombrage simple GLSL d'une carte de dames:GLSL - avant vs faces arrière des polygones
f(P) = [ floor(Px)+floor(Py)+floor(Pz) ] mod 2
Il semble bien fonctionner, sauf le fait que je vois l'intérieur des objets, mais je veux pour voir seulement la face avant. Des idées pour résoudre ce problème? Merci!
Teapot (glutSolidTeapot()):
Cube (glutSolidCube):
Le fichier vertex shader est:
varying float x,y,z;
void main(){
gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex;
x = gl_Position.x;
y = gl_Position.y;
z = gl_Position.z;
}
Et le fichier shader fragment est:
varying float x,y,z;
void main(){
float _x=x;
float _y=y;
float _z=z;
_x=floor(_x);
_y=floor(_y);
_z=floor(_z);
float sum = (_x+_y+_z);
sum = mod(sum,2.0);
gl_FragColor = vec4(sum,sum,sum,1.0);
}