i schattieren wollen das Quad mit Kontrolleure:GLSL Schachbrettmuster
f (P) = [Boden (Px) + Boden (Py)] mod2.
Mein Quad ist:
glBegin(GL_QUADS);
glVertex3f(0,0,0.0);
glVertex3f(4,0,0.0);
glVertex3f(4,4,0.0);
glVertex3f(0,4, 0.0);
glEnd();
Die Vertex-Shader-Datei:
varying float factor;
float x,y;
void main(){
x=floor(gl_Position.x);
y=floor(gl_Position.y);
factor = mod((x+y),2.0);
}
Und das Fragment-Shader-Datei ist:
varying float factor;
void main(){
gl_FragColor = vec4(factor,factor,factor,1.0);
}
Aber im diese bekommen:
Es scheint, dass die Mod-Funktion funktioniert nicht oder vielleicht etwas anderes ... Irgendwelche Hilfe?
Interessant. Das Ergebnis zeigt, dass das Quad tatsächlich als zwei Dreiecke dargestellt wird (oben/unten rechts). Ansonsten wäre das Ergebnis mehr wie ein geglättetes Schachbrettmuster. Wenn dies der Fall wäre, könnten Sie eine Schwellwertfunktion in Ihrem Fragment-Shader verwenden, um ein richtiges Schachbrettmuster zu erhalten. So wie es ist, ist die Interpolation für einen Schachbrett-Effekt nutzlos. –