GrateWhiteのDAEクラス
- 2008 年 8月 18 日
久々にPaperVisionに戻ってきました。
parsersパッケージのクラスで3Dファイルフォーマットを読み込めるよう。
PV3Dで何に興味があるってこれが一番気になる私。
オリジナルな3Dモデルを上手い事PV3Dで使えたら、表現の幅は相当広がるし、
PV3Dで出来る範囲が判っていれば的確なモデルをモデラーに頼める訳です。
それにはやはり一つずつクリアしていかないとやっぱり判らないが多そう。
とりあえず、APIドキュメントや先人達のトライを参考に無料で使えてモデル素材が豊富なSketchUpでモデリングされた3Dモデルを読み込むことから初めてみます。
この件に限らず、PV3Dはnote.xさんが大変詳しく記述されているので参考にしています。
SketchUpは、Googleが提供するGoogle Earthの3Dモデルを作れる3Dアプリ。このソフトのファイルフォーマットがPV3Dで読み込めることが知られています。
何はともあれ、まずはPV3Dで表示をしてみたいので、さっそく
Google SketchUpのページからSketchUpをダウンロード。
[ファイル] [3Dギャラリー] [モデルを取得] から Google3Dギャラリーにアクセスして、適当にモデルを取得します。
僕は「The Golden Pavilion (Kinkaku-ji) 金閣寺」のkmzファイルを取得してみました。
これをStuffIt Expanderにドロップすると、「Kinkakuji.kmz フォルダ」が出来ます。
この中にある、Kinkakuji.daeという拡張子daeのファイルが3Dモデルデータ。これをPV3Dで読み込みます。この読み込みに使うのがparsersパッケージのDAEクラス。
インスタンスを作って、loadメソッドでdaeファイルを指定します。
APIドキュメントによると、loadメソッドにマテリアルの指定を別途第二引数で渡せるようだけれど、とりあえず後回し。
var dae = new DAE(); dae.load("Kinkakuji/models/Kinkakuji.dae"); |
と、表示することは簡単に出来たのだけれど、上手く表示されない3Dモデルも沢山あるし、Bitmapをマッピングしない時はどうなるのとか、マテリアルのマッピングが終わるのはどうやって判定するのかとか、ゆがみを減らすにはとか、解っていないとマズそうな問題が山積み。
先は長そうだけれど、引き続きやっていこうかと。