Ich spiele mit SKShader für iOS.Verwenden Sie übergeordnete Koordinaten in SKShader
void main() {
vec4 val = texture2D(u_texture, v_tex_coord);
float len = 0.5 + 0.5 * sin(10.0 * u_time + 0.05 * (gl_FragCoord.x + gl_FragCoord.y));
vec4 c = vec4(vec3(len), 1);
gl_FragColor = c * val;
}
Ich möchte diesen Shader Sprites zuweisen, die verbunden sind, und ich möchte, dass die Wirkung zwischen den Sprites glatt sein. Daher glaube ich nicht, dass ich v_tex_coord im Shader verwenden kann. Ich benutze stattdessen gl_FragCoord.
Das Problem ist, dass die Sprites Kinder eines SKNode sind, die verschoben werden können. Und da sich gl_FragCoord in Bildschirmkoordinaten befindet, beeinflusst diese Bewegung die Animation.
F: Gibt es eine Möglichkeit zu vermeiden, dass die Sprite-Shader von einer Bewegung des Elternknotens betroffen sind, ohne einheitliche Daten, die die Position und die zRotation des Sprites enthalten, an den Shader weiterzuleiten?