今回はメタセコイアで作ったモデルをPOV-Rayでレンダリングする方法を解説します。
シェアウェア版のメタセコイアでは登録しないとメタセコイア独自の形式でしか保存できませんが、フリーウェア版のLEではPOV-Ray形式での保存が標準で可能となっています。
モデルは『メタセコイアでGO!』で作った雪ダルマを使いましょう。
"Head"、"Body"、"Hat"、"Arm"、"Face"という5つのオブジェクトがあり、材質は"Shiro"、"Tya"、"Aka"の3つがあります。
「名前を付けて保存(A)...」を選び、「ファイルの種類」を「POV-Ray scene」にして保存します。
ファイルネームを「SnowBoy」として、保存しようとすると次のようなパネルが出ます。
ここで左の項目は特に触る必要はありません。
右の「POVオプション」で「povファイルに直接」と「incファイルに分離」とあります。
これは、povファイルにはカメラの位置や照明の位置、オブジェクトの位置を書き出し、オブジェクトの形状データをインクルードファイルという別のファイルに分離しておくかどうかを決めるものです。
よほど簡単なデータならひとつのpovファイルにまとめてもいいのですが、大体のモデルの形状データは非常に大きいものとなってしまうからです。
それでは、形状データをインクルードファイル(incファイル)に分離して保存しておきましょう。
これでPOV-Ray形式での保存は終了です。
メタセコイアは終了しましょう。
それではPOV-Rayを起動しましょう。
メニューバーの「File」から「Open File」で、またはツールバーのOpneアイコンから、先程保存したPOVファイルを開いてみましょう。
すると、「SnowBoy.pov」というファイルの他に「SnowBoy.inc」というファイルがあると思います。
まずは「SnowBoy.pov」の方を開いてみましょう。
このような内容のソースが出てきます。
// Created by Metasequoia
#include "SnowBoy.inc"
camera {
location <0, 0, -1000.000000>
look_at <0, 0, 0>
}light_source { <500.000000, 500.000000, -1000.000000> color rgb 1 }
object { Head }
object { Body }
object { Hat }
object { Arm }
object { Face }
さて、まずは[160x120 AA]くらいのサイズでレンダリングしてみましょう。
それではこのソースを解析していきましょう。
まずは一行目。
// Created by Metasequoia
「//」の後ろはコメント、つまりシーンファイルの注意書きとか覚え書として使います。
実際のレンダリングには影響しません。
二行目は初めて出てくるものですね。
#include "SnowBoy.inc"
「#include "〜"」というのは、インクルードファイルを読み込みなさいという命令です。
読み込むファイルは「SnowBoy.inc」、つまりメタセコイアで保存するときに分離した雪ダルマの形状データのファイルです。
つまり、メタセコイアでいくつものオブジェクトを作っておき、インクルードファイルにして保存しておくと、あとから別のシーンファイルで読み込んで利用することができるのです。
次の行からはカメラの設定です。
camera {
location <0, 0, -1000.000000>
look_at <0, 0, 0>
}
メタセコイアで出力したシーンファイルでは、カメラの位置は(0,0,-1000)、注視点は(0,0,0)になります。
ですので、この設定はこれから変更しなければいけません。
が、ちょっとここで注意しなければいけないことがあります。
それはメタセコイアとPOV-Rayの座標系の違いです。
下の図を見てください。
z軸の向きがメタセコイアでは手前側がプラス、POV-Rayでは奥側がプラスになっています。
この座標系の違いは右手系、左手系というものですが、詳しくは参考書でも見てください。
それにこの座標系の違いはメタセコイアでPOV-Ray形式に出力する際にうまく変換されます。(保存前に出てくるパネルの左側の設定がそれです)
ですので、『メタセコの座標とPOV-Rayの座標はz軸だけプラスマイナスを逆になっている』とだけ覚えておきましょう。
次の行は照明の設定です。
light_source { <500.000000, 500.000000, -1000.000000> color rgb 1 }
この照明はカメラの設定同様、メタセコイアで自動的に設定されてしまうものです。
これも自分で設定していかなければいけません。
次の行からが被写体、つまり雪ダルマです。
object { Head }
object { Body }
object { Hat }
object { Arm }
object { Face }
メタセコイアで設定していた5つのオブジェクトの名前が並んでいます。
この「object{〜}」というのはオブジェクトを設定するための命令で、{〜}の中が形状データになります。
そこに入るべきデータは別ファイル、「SnowBoy.inc」に保存されており、二行目の「#include」で読み込めるようになっているのです。
今回はメタセコイアで出力されるpovファイルの解析を行いました。
次回は形状データを保存したincファイルの解析とその変更を行います。