今回の記事は上記の「歪み」部分を参考にさせて頂きました。
簡単な図形を歪ませる
絵を歪ませる前に、_Time
を使って時間経過で円を歪ませてみます。
fixed4 frag(v2f i) : SV_Target { i.uv.x += sin(i.uv.y * _Time.y * 10) * 0.05; //歪み return step(0.3, distance(0.5, i.uv)); //円 }
UV座標をずらすことで歪ませることができる!
絵を歪ませる
円で使った歪みの式をそのまま使います。
fixed4 frag(v2f i) : SV_Target { i.uv.x += sin(i.uv.y * _Time.y * 10) * 0.05; if (i.uv.x < 0 || 1 < i.uv.x) { discard; } fixed4 color = tex2D(_MainTex, i.uv); if (color.a <= 0) { discard; } return color; }
tex2D
に歪んだUV座標を渡すことでいいかんじになりました。
if (i.uv.x < 0 || 1 < i.uv.x) { discard; }
コード内の上の部分ですが、歪ませて右にはみ出た(みきれた)部分が左側に表示されて不自然だったので、discard
しています。
▲このコードがないとこんな風になっちゃってた