リプリケーションとは
フラグメントシェーダーで、現在、処理している画素の座標をある数字で割ることで、図形がリプリケーション(複製)されるという現象のことでした。なんとなく、ある数字で割った余りなのだから、同じ図形が繰り返されるというのはイメージがつくかもしれませんが、とても不思議ですよね。
まず前提として
glslは、頂点シェーダーであれば、頂点の数だけ、フラグメントシェーダーであれば、画素の数だけ同じプログラムが並列で実行されるのでしたね。
ということは、フラグメントシェーダーであれば、全く別個の平行世界が画素の数だけ存在するともいえますね。
このまま、何も基準もない状態であれば、全く別個の平行世界が画素の数だけ存在することになりますが、現在、処理している画素の座標(gl_FragCoord.xy)を基準とすることで1つの世界とすることができます。
このgl_FragCoord.xyを正規化したものをpとします。
vec2 p = (gl_FragCoord.xy * 2.0 - r) / min(r.x, r.y);
このpを割るということは世界を割っているのに他ならないのです。