このシリーズはまだ続くので、カテゴリ「3Dスキャナー」を追加しました。
さて、今回は3D CGソフトの応用についてです。

3Dスキャナーの最新モデルを調べていると、性能が上がるほどポリゴン(3角形の面)数
が多くなりそうです。
しかし、あまり面数が多いと安い3Dプリンターでは出力できない場合がある様で、
その場合は、3Dソフトの機能で「頂点数の削減」を実行する様です。
これは、私のプログラムでやったポリゴンの間引きではなくて、複数の3角形を
纏めて大きな3角形にする処理です。(間引くだけでは穴が開いた状態なので)

昨日、「頂点数の削減」が高速で比較的に綺麗に実行できる「メタセコイア」という
日本製の3Dソフトを発見しました。
30日以内なら制限が色々付きますが、使えましたので実験してみました。
以下は、先日も紹介したゴルフボールのデータで、約35万ポリゴンです。

メタセコイア0722001


中央部を拡大すると、ひし形を基本に並べておいて小さな3角形を補完的に追加している様です。

メタセコイア0722002


以下は、メタセコイアの「頂点の削減」処理後で、約半分にしてみました。
数秒で処理が終わり、ちょっとすかすかした感じになりました。

メタセコイア0722003

中央部を拡大して見ると、器用に3角形を大きくしているのが判りますが、
はたして結晶の様な平面に適用したらどうなるのか判りません。

メタセコイア0722004


そろそろ、実際に3Dスキャナーで鉱物結晶をスキャンしてみたいなと思い、
DMM.COMでSENSEのスキャナーをレンタルしようと思って調べたら、
なんと8月中旬まで予約で埋まっていました。
夏休みの宿題で、利用する人が多いのでしょうか?



スポンサーサイト
 2014_07_25


結晶シミュレーション・ソフトやデジタル鉱物図鑑の結晶図画面では、表示中の結晶図から
STLデータを作成できます。その際、STLデータでは1面が3角形(ポリゴン)に制限されるので、
1面が多角形の通常の結晶面を、複数の3角形に分割します。
その結果として、普通の結晶図の1面が良く判らなくなってしまいます。

また、3Dスキャナーで読み込んだSTLデータは、サンプルデータを見る限り、微小ポリゴンの集合に
なっていて、鉱物結晶をスキャンした場合に1つの結晶面が判らない恐れがあると思っています。

そこで、基準面(赤丸3か所で指定)との面角の大きさで、濃さを変えた色を塗ってみました。
以下はその結果で、全部STL形式のデータです。
1枚目が人手作成のフィギュア、2枚目がゴルフボールの3Dスキャンデータ
(本プログラムのターゲット)、3枚目が結晶プログラムで作成した水晶のデータです。
なお、1枚目のフィギュアの色がおかしいのは、複数の凸立体が複雑に重なっている為で、
鉱物の単結晶は1個の凸立体なのでこうはなりません。念のため。

3dscan062600.jpg
3dscan062601.jpg
3dscan062602.jpg


3枚目は3Dスキャンデータでは無いのですが、狙っていたのはこの様な図でした。
同じ結晶面上のポリゴンが、同じ色になっているのがお判りでしょうか?
3Dスキャナーで平面をスキャンした時にも、こうなってくれると良いのですが、
さて・・・・


 2014_06_26


これまで、肝心の3Dスキャナーに関しての情報を、あまり載せていませんでした。
以下に、主だった機種の比較表が有りましたので参考まで。

http://3d-printer-studio.com/3dscaner-compare/

現在の3Dスキャナーは、スキャン対象物が10cm~数mが主流です。
3Dプリンターで出力する主流が、フィギュアや人物のミニチュアや中小型部品なので当然でしょう。

しかし、面測角に相応しい鉱物結晶は通常数mm~数cmなので、主流の3Dスキャナーでは駄目です。
特殊用途として、指輪などの数cmのジュエリー用途もあるので、こういうスキャナーに期待したい。
解像度と概略仕様だけを見ると、Artec Spider、HANDYSCAN 3D EXAscan、Rexcan CS+あたりが
有望なんですが、今の価格はとても高そう?
私が買える数万円の世界に落ちてくるのは、まだまだ先と思います。

ただ、測定精度が上がるとコピー商品の品質が上がってしまうので、
著作権を重視する多くの先進国にとっては困りものです。



 2014_06_22


再び、測角プログラムを改造しました。
いつもの事ですが、1つの問題をブレークスルーすると、結構断続的に改善が進みます。

前回は、大きなデータの場合にはデータを間引く処理を追加しましたが、精度が落ちそうな
気がしたので、ファイルを分割する処理も追加しました。
以下は、前回のゴルフボールのデータを4分割したのを、読み込んだ状態です。
ディンプルの状態が良く見えます。

3DSCAN062100.jpg

さらに、それを4倍に拡大した状態が、以下です。

3DSCAN062101.jpg

さらに、以下はタイヤのホイールキャップを、1/2間引いて表示した状態です。(別のスキャナのデータ)
試しに平らそうな場所(左)で測角してみましたが、約0.5度でした。

3DSCAN062102.jpg

まあまあの精度ですが、数mmの鉱物結晶表面で、結晶面を正確に捉えるには
まだまだ精度が足りないでしょうね。

ちなみに、図の2枚目と3枚目で、右側のボタンが色々変化しているのが判りますでしょうか?
色々と試行錯誤しながら、微修正を加えています。



 2014_06_22


久々の、3Dスキャナー・ネタの登場です。
と言っても、3Dスキャナーを買ったのでは無くて、某社の3Dスキャナーで撮った
ゴルフボールのデータがWebに置いてあったので、私のプログラムで動くかどうかを
実験した結果の報告です。

結論から言えば、ポリゴン数が大きくて、最初は全く使い物にはなりませんでした。
また、色々やって行くうちに、この方法の限界も見えてきました。
主な問題は、以下の2点でした。

問題1: ポリゴンの描画が遅く、1万ポリゴン以上では使いものにならない。
問題2: プログラム内の配列数が、100万以上持てない。
      つまり、100万ポリゴン以上は処理できない。

今回のプログラムは、結晶シミュレーション・プログラムをベースに作成しています。
鉱物結晶では、通常は結晶面が100面以下なので、上の問題は3Dスキャナーの
データ特有の問題になります。
しかし、そんな事で諦めていてもしょうがないので、色々と対策してみました。


まず、ポリゴン描画の遅さについては、線1本ごとの描画割り込みを止めてみました。
すると、かなり(10倍以上)改善したので、線1000本ごとの描画割り込みに変えました。

次に、100万ポリゴンの限界については、ポリゴン数が大きい場合は、データを間引くようにしました。
最初は、これを人手で指定していましたが、面倒なので自動化しました。
この間引き処理は人手でも出来、これを使うと全体の描画が早くなります。

以下の図は、その様子を示したもので、最初は生のデータをそのまま読み込んだ状態です。
ポリゴン数が約35万と多いので、自動的に1/2に間引いています。

3DSCAN062000.jpg

1/2に間引いているのに、まだこんなにポリゴンが集中していて、真っ黒です。
そこで、1/16(取り敢えず、今の最大)に間引いてみます。

3DSCAN062001.jpg

ポリゴンが少し見えてきたので、描画を4倍にしてみたのが下図です。

3DSCAN062002.jpg

赤3点、青3点を適当に選んで、面角を計算してみましたが、問題なく計算できています。
ここまでの時間は数分なので、やっと実用的になってきました。
あとは安くて高精度な3Dスキャナーだけど・・・・、もう数年掛かりそうです。

 2014_06_20



07  « 2017_08 »  09

SUN MON TUE WED THU FRI SAT
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

アクセスカウンタ

プロフィール

WG管理人

Author:WG管理人
鉱物結晶研究家

検索フォーム

ブロとも申請フォーム

QRコード

QR




pagetop