2017年4月25日(火曜日)。Free3D.com(元のTF3DM.com)からダウンロードした自動車の3Dモデリングデータ、"Audi RS6"を"PoseRay"でデータ変換し、"POV-Ray"でレンダリングしました。
ダウンロードページのキャプチャ画像。
ダウンロードファイル名は"Audi RS6.7z"、そのファイルサイズは6.09MB。アンパックして出来た3Dデータのフォーマットはobjフォーマット。その"audi_rs6.obj"のファイルサイズは、30.7MB。結構大きなデータですから、それなりに精細なデータなのでしょう。期待して"PoseRay"で読み込みました。
読み込み時のエラーはありません。ところが、プレビュー画面には全く何も現れません。
読み込み処理時のメッセージには、次のように表示されています。
Done. Changes: -38182 faces -19069 verts -19838 normals -35 uvs -3 mats -1 groupsloaded in 27secs
間違いなく3Dデータが読み込まれています。
"PoseRay"のMaterialsタブを開いて、PigmentのTranslucencyを確認したところ、全てのmaterialのTranslucencyの値が100になっていました。完全透過状態の物体という指定です。確かにこの指定なら全く物体が見えなくて当たり前です。
何故か時々このようなデータに出合います。オリジナルなデータ作成時に使われたアプリケーションの内部データフォーマットから汎用のobjフォーマットに変換する際に誤変換されたのか?。あるいは読み込む側の"PoseRay"の方に問題があるのか?。その辺りのことは分かりません。
対処としては、個々のmaterialのTranslucency値を手作業で全てゼロに修正しました。
するとプレビュー画面にモデリングデータの姿が現れました。
しかし、これも車の姿ではありません。
そこで、Groupsタブを開いて、モデルを構成する各groupを個々に確認したところ、地面に相当する矩形や反射をコントロールする矩形などがあることがわかりました。自動車のサイズに比べると面積の巨大なそれらの矩形を削除して、車がプレビュー内に大きく見えるようにカメラ位置を変更したところ、次のように車の姿が見えるようになりました。
データが大きくポリゴン数が多い割には、内装はかなり大雑把なモデリングです。ダッシュボードや計器類なども床もありません。
シートも貧弱です。そこで、手持ちの他のモデリングデータの中から、使えそうなシートのデータを切り出して、入れ替えることにしました。Audi A6のデータのシートが使えそうです。A6は、このRS6のベース車種です。
その他には、前後のライセンスプレートを追加しました。手持ちのライセンスプレートにWEBで見つけてきたナンバーの画像ファイルをマッピングしました。
前部のライセンスプレートは、カーブしたタイプ。
後部はフラットなタイプ。
これらの修正・追加を終えて、表示サイズ・表示位置を調整した"PoseRay"の最終プレビュー画面。
これを、"PoseRay"から"POV-Ray"へエクスポートして、"POV-Ray v3.7"でレンダリングしました。
その画像。
上の画像をクリックすると大サイズ(1600*1200)画像を表示
このエクスポートされた"POV-Ray"シーンファイルを元に、"POV-Ray"での1unitが1mになるようにスケール合わせをしました。
"POV-Ray"のオブジェクトライブラリに各種モデリングデータを保存しているのですが、そのオブジェクトは全て1unit=1mでスケールを合わせているからです。
スケール合わせ後の画像。
ここでのグリッドは0.5unit=0.5mです。
スケール合わせ後の"POV-Ray"シーンファイルをinclueファイル化して、プライベートな"POV-Ray"オブジェクトライブラリに保存しました。これで、この"Audi RS6"を"POV-Ray"の部品として何時でもシーンに組み込む事が出来るようになりました。
JUGEMテーマ:コンピュータ