使用着色器更改第4个像素

时间:2016-02-09 17:23:05

标签: xcode opengl-es sprite-kit fragment-shader

我是着色器的新手,并且无法弄清楚为什么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;

1 个答案:

答案 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);