我想樹蔭跳棋四:GLSL棋盤圖案
F(P)= [樓層(PX)+地板(PY)]模2。
我四是:
glBegin(GL_QUADS);
glVertex3f(0,0,0.0);
glVertex3f(4,0,0.0);
glVertex3f(4,4,0.0);
glVertex3f(0,4, 0.0);
glEnd();
頂點着色器文件:
varying float factor;
float x,y;
void main(){
x=floor(gl_Position.x);
y=floor(gl_Position.y);
factor = mod((x+y),2.0);
}
而片段着色器文件是:
varying float factor;
void main(){
gl_FragColor = vec4(factor,factor,factor,1.0);
}
但是我得到這個:
看來,MOD功能doeasn't工作或財產以後也許還有... 任何幫助嗎?
有趣。結果顯示四邊形實際上呈現爲兩個三角形(topleft/bottomright)。否則,結果將更像一個平滑的棋盤。如果是這樣,你可以在你的片段着色器中使用閾值函數來獲得合適的棋盤格。實際上,插值對棋盤格效果沒有用處。 – 2013-07-18 10:52:18