当以下等式成立时,我需要编写一个像素颜色为黑色的着色器:
(像素的 x 坐标)mod 2 == 1
如果它是假的,像素应该是白色的。因此,我搜索了网络,但没有成功。
更多信息:我有一个分辨率为 800 x 600 的 OpenGL 场景和其中的茶壶。茶壶是红色的。现在我需要创建斑马外观。这是我写的一些代码,但它不起作用:
片段着色器:
void main(){
if (mod(gl_FragCoord[0].x * 800.0 , 2.0) == 0){
gl_FragColor = vec4(1.0,1.0,1.0,1.0);
}else{
gl_FragColor = vec4(0.0,0.0,0.0,1.0);
}
}
顶点着色器:
void main(void)
{
gl_Position = ftransform();
gl_TexCoord[0] = gl_MultiTexCoord0;
}
据我所知, gl_FragCood.x 在范围(0,1)内,因此我需要乘以宽度。