レンズフレアの作り方

レンズフレアとは

レンズフレアとは、
逆光を撮影したときにレンズ内で光が屈折してできる
輪っかや多角形の光のことです。
 
レンズフレアの具体的な画像については、Googleのイメージ検索で、、。
http://images.google.co.jp/images?q=%E3%83%AC%E3%83%B3%E3%82%BA%E3%83%95%E3%83%AC%E3%82%A2&hl=ja&lr=lang_ja&oe=UTF-8&client=firefox&rls=org.mozilla:ja:official&ie=UTF-8&sa=N&tab=wi
 

まずは画像の用意

これは使っている描画ライブラリに依存します。
 
加算合成が使える場合は、Photoshopなどで、逆光のエフェクトを使うことで作成できます。
 
SDLのように半透明しか使えない場合は、抜き色と逆光の境界が取りづらいので、
自分で作る必要があります。
 
例えば、このような感じです。

テキトーに幾何学図形を描いて、明るいグラデーションで塗りつぶします。
 

処理

レンズフレアの使い方は、

  • 光源からの距離を計算
  • 画面の中心に配置

という方法があります。

ただ、kenmoは光源からの距離を計算する方法はやったことがないので、
パスします(´∀`;
(GameProgramingGems1かエフェクトマニアックスとかに書いてあったような気がしますが、、)
 
何も考えず、中心に配置する方法を説明します。
 
まず最初の段階では、
レンズフレアは中心に重なっている状態です。
 
そして、時間の経過とともに、
中心を通る直線を引き、その線上を動くようにします。
 
移動速度は、それぞればらばらにして、
中心から離れるほどアルファ値を低くします。

 
 
ただ、中心から離れるほどアルファ値を低くする、
というのは、レンズフレアを常駐させる場合です。
 
ステージ開始のエフェクトとして使い、
パッと表示してすぐ消える、
というような使い方を場合は、
移動量が大きいものほど、アルファ値の減衰率を大きくすると
いい感じに消えてくれます。