openFrameworksとGLSLでセルシェーディングやってみた。ToonShading + ContourDetection / GLSL & openFrameworks


(Cel)ToonShading + ContourDetection / GLSL & openFrameworks from rettuce on Vimeo.

TLでUnityを使ったセルシェーディングの記事を見て、
好きなエフェクトながら一回もやったことないなーと思って、
Unityでやる前に自分でglslでやってみるかーと。

そういえばToonShadingは好きで昔一度挑戦してみたことがあったけど
今よりもっと分かってなかったので挫折したことがあった気が。。する。。。苦

ToonShadingは色んなところでやられてて、
ここのが割といい感じで解説も丁寧だったので参考にさせてもらいました。:)

で、セルアニメ表現といえばGRAVITY DAZEの記事があったなと思い読み返してみると、(GRAVITY DAZE2出るね!!!楽しみ!!!)
ドンピシャの内容で、正に自分で女優ライトとかを実装してたw
まーlightと法線の内積計算のところでカメラからのも更に加えてってしただけだけども。

んでこの中に書かれてる、『輪郭線の法線方向に膨張させたキャラクターモデルの視線方向に向いていないポリゴン(裏面)のみを黒で描画する』って方法がめちゃくちゃ面白くて、
昔この記事読んだ時もなるほどー!って思ったけどその時は全然やり方とか分からなかったんだけど、さっきのToonShadingの記事に書かれてた図で意味がよく分かって、
geometry shaderで法線方向にポリゴンのエッジを膨張させるって方法で解決した。
そっちはこっちを参考にしました。:) (さすがGrasshopper!!!)

まだobject毎のmatrix入れたりとかカメラ距離に合わせた輪郭線のweight調整とか諸々まだまだだけど、
bloom処理入れたりtextureに反映させたりと色々できそうなこと想像してワクワクしてきた。。!

あと仕事用に書いてる部分があってまだglslがversion 120でしか書けなかったので、(当たり前だけどGLSL1.3とか3.3のリファレンスが多かった、、)
趣味案件でoF0.9.0でOpenGL+GLSL4系はやく触りたい!!!!!

ちまちまといろんなエフェクトつくって勉強していこう。:)
仕事のも進めよう。。(遠い目

you