クリスマスだしたまには便利な記事でも書く。 以前少し書いた、ゲームにアニメ風のエフェクトを入れたいという話。アニメ風というのは例えば こういう光線や光輪を指す。ポイントとしては、わざと線の太さを不安定にしたり途切れ途切れにして躍動感を出す、という所。 さて、まず光輪からいくと、左上に(0,0)、右下に(1,1)のテクスチャ座標を指定した矩形ポリゴンを用意する。(次の画像だけ、u,vを赤と緑に割り当てている) 中心が(0.5,0.5)なので、フラグメントシェーダー上でテクスチャ座標と(0.5,0.5)の距離をとって、ある閾値を超えたらdiscardすると円形になる。 void main() { vec2 rpos = v_texCoord - vec2(0.5, 0.5); float r = length(rpos); if (r > 0.5) { discard; } gl_FragCo