我是着色器的新手,并且无法弄清楚为什么mod()函数不能像我期望的那样工作。我正在使用Xcode在SpriteKit中为SKScene编写着色器。 我可以更改为全屏红色,因此我知道着色器正在应用于场景。 如果有人可以看看下面的代码并帮助我,那就太棒了。
由于
vec2 xy = gl_FragCoord.xy;
vec4 colour = vec4(0.0 ,0.0 ,0.0 ,1.0);
float m = mod(xy.x, 3.0);
if (m == 0.0) {
// never going here
colour.r = 1.0;//turn it red
}
gl_FragColor = colour;
答案 0 :(得分:0)
将mod值更改为整数。
highp int x = int(xy.x);
//float m = xy.x - 3.0 * floor(xy.x / 3.0);
highp int m = mod(xy.x, 3);