Stroke Based Renderingを実装してみた
Stroke Based Renderingを実装しました。 その過程などをTwitterにつぶやいていたのでそのメモをします。
Stroke Based Renderingを実装しました。 その過程などをTwitterにつぶやいていたのでそのメモをします。
Computer Graphics Gems JP 2012を参考に、 SIGGRAPH 2006の論文、Image deformation using moving least squaresの前半部分、点制御を実装してみました。
Image Deformation Using Moving Least Squaresを実装した。画像表示めんどかったのでイメージじゃなくてメッシュデフォーメーションだけど。 pic.twitter.com/ErXfmfpN0B
— 折登 いつき (@MatchaChoco010) August 22, 2019
実装したデモはGitHub Pagesで公開しています。
論文ではいくつかの変形手法が論じられていましたが、ここでは一番シンプルなアフィン変換による変形を実装しています。
SIGGRAPH 2000の論文、「As-rigid-as-possible shape interpolation」についての解説を書きます。 間違いや不正確な内容などがありましたらTwitterまで連絡をお願いします。
「As-rigid-as-possible shape interpolation」は2次元の三角形メッシュのインターポレーションを行う手法の提案論文です。 この手法で次のようなメッシュのインターポレーションが行なえます。
As Rigid As Possible Shape Interpolation実装できた。二次元のトポロジが同じ頂点の対応付けがなされたメッシュ2つの間の補間を行う手法。 pic.twitter.com/9Hbdx7Cmow
— 折登 いつき (@MatchaChoco010) June 2, 2019
無駄にドロネー三角形分割実装しているのでポチポチやってメッシュを作れます。 pic.twitter.com/LUsq7CArEa
— 折登 いつき (@MatchaChoco010) June 2, 2019
楽しい pic.twitter.com/FJxgoAaj5r
— 折登 いつき (@MatchaChoco010) June 2, 2019
早速論文の手法を解説していきます。
CGの基本的な平滑化のフィルタ処理にガウシアンフィルタというものがあります。また、ガウシアンフィルタの重みの付け方を工夫することでエッジ保存する平滑化のフィルタであるバイラテラルフィルタを作成できます。今回は、その両者のフィルタについて軽く調べたので、軽くまとめてみます。