モザイクフィルタを作ってみたところ不可解な境界線が現れてしまいました

画像をモザイクにしようと思ってこんなシェーダーを作成していました

uniform sampler2D tex;
void main() {
    vec2 uv = floor(texCoord * 30.0) / 30.0;
    gl_FragColor = texture2D(tex, uv);
}

実際に使ってみると↓のような見た目になり、なにやらモザイクのセル間に謎の境界線が...

f:id:kaneta1011:20180622164101p:plain

UVを表示してペイントのスポイトで問題の箇所のUVがおかしくなっていないか確認したが問題は見つかりませんでした

実装はどう考えても問題なかったので、それ以外の要因があると2時間ほど頭を抱えていたところ、原因はミップマップがonになっていたからでした

モザイク処理したことによってセル間で急激にUVが切り替わり、境界線でミップマップレベルが大きくなっていたようです

ミップマップ off後

f:id:kaneta1011:20180622165427p:plain

ミップマップには気を付けましょう