【发布时间】:2022-01-11 20:52:28
【问题描述】:
我想用棋盘格遮住四边形:
f(P)=[地板(Px)+地板(Py)]mod2。
我的四边形是:
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 功能不起作用或者其他什么... 有什么帮助吗?
【问题讨论】:
-
有趣。结果显示四边形实际上被渲染为两个三角形(左上/右下)。否则结果会更像一个平滑的棋盘格。如果是这样,您可以在片段着色器中使用阈值函数来获得正确的棋盘格。事实上,插值对于棋盘效果是无用的。
标签: glsl