軽量な輪郭抽出かもしれない話(ただし制限大)

ちょっと長くなる予感がします。

つうことで拙作「ぷらづまれいヤ・ぜろ」はプリミティブ表現メインで絵をつくってるのですが、輪郭処理を入れてます。輪郭処理ってのはキャラと背景の境界に線を入れて浮き上がらせる、トーンシェードと組み合わせてマンガっぽい表現にするアレです。

で、以前のヤツは2D表現固定だったので、かなーりいい加減な処理で済んでいましたが、ちょっとカメラワーク的な処理のために真面目な3D表現にしようかなーと思ったのが最近。もう既に地獄だった。。。


さて、輪郭抽出には幾つかポピュラーな手法があります。ポピュラーなんで資料もその辺に転がってます。
http://lovelove.rabi-en-rose.net/blog.php?n=167
古い記事ですが、すげーまとまってて判りやすいです。

そんなわけで、プログラマブルシェーダの勉強とかもしてたのですが、どーにも重い重い。いや、使ってる開発機がatomネットブック(粉さん曰く、atomZで最遅を誇る viliv S5)なんだもんで酷なのは当然なんですが。とはいえ、今のご時世だと、ネットブックでゲームしている人も結構居るのかなあ、と。それに、かっちょええグラフィックのゲームだったら、そりゃハイスペックのマシンを要求してもいいけど、高々2D半くらいのしょっぱいゲームを遊んでもらうのに、非力なマシンじゃ駄目です、ってのも宜しくないのかなあと思ったのです。ちうことで、プログラマブルシェーダの利用は中止です。。。止せばいいのに。。。

ところで、輪郭抽出にあたって、上の記事に載っていない、軽量で効果も抜群なスんばらしい手法が別にあったりします。つうても、これもポピュラーなんですが、モデルを表示する際に、モデルのコピーを作ってちょっと拡大、ちょっと画面奥へ移動してから、黒で塗りつぶしてやるとキレーに輪郭が現れるよ、って具合のもの。よーするに、ちょっと拡大したモデルの上から同じ形のモデルで上書き描画してやると、輪郭が残るってわけです。

なんだけど、こいつって3Dでは鬼門のアルファ(半透明処理)を絡めようとすると、破綻しますよね。半透明のモデルに対して適用すると、輪郭用に塗った背後のシルエットが透けて見えてしまって、駄目な感じだ!

困った。。。ってところで、続きます。