Lucyのレンダリングにトライ(1)

スタンフォード・バニーは有名でレンダリングモデルとしては色々と使われている。それで気を良くしてLucyをレンダリングしようとすると出来ない。
イメージ 1

(画像引用)http://graphics.stanford.edu/data/3Dscanrep/

まず、第一の難問はデータサイズだ。
コンプレスされた状態で307Mバイトというデカさ。これをアンコンプレスすると508Mバイトにも達する。Qsplatというものもあってなんと50Mまでリサイズされているが私の手持ちのシステムでは読み込みが出来ない。
さて、もっともポピュラーというか古典的なポリゴン形式(STL形式)なら大抵は扱えるのだがこれに変換するとなんと4.2Gバイトにも達する。

そこで考えたのが次のような手段だ。
(1)ルーシーのVertexを取り出して点群化
(2)点群から曲面式を得る。(陰関数曲面化)
(3)陰関数をポリゴン化

陰関数曲面化することで任意の精度でポリゴン化が行える。荒くポリゴン化すればそれだけサイズも小さく出きるというわけだ。

さて、陰関数曲面をポリゴン化するアルゴリズムにはボクセルを使った方法等がある。有名なのはJules Bloomenthalの方法だ。Jules Bloomenthalの方法はC/C++コードがパブリックドメインで公開されているので誰でも利用できる。http://www.unchainedgeometry.com/jbloom/papers.html
ただ、ちょっとしたコツも居るので誰でもと言うわけには行かないかも知れないがそもそも陰関数曲面をポリゴン化しようとしているならその点の知識はあるだろうし自力でも作れない事も無いが面倒なので今回もフリーのツールを使った。
http://blogs.yahoo.co.jp/cat_falcon/28280004.html
イメージ 2

今日は点群を取り出してみたが全てのVertexを取り出していたら陰関数曲面化できないので点群の時点で1/50、1/100、1/1000まで間引いたデータを作成してみた。
陰関数曲面化にはRBF法を使うのでかなりの精度で補間されるはずだ。