メタセコイアのモデルをVirtualightを使ってレンダリングしよう
2003.9.27
まず,メタセコイアで作成したモデルのオブジェクト管理と材質管理をきちんと見ておきましょう。注意点としては,オブジェクト名と材質名は全角やスペースがあるとVirtuaLightではレンダリングできないです。英語のソフトでもあるので,半角英数字を使ってください。
モデルは曲面をフリーズしておきましょう。
メタセコイアで3DS形式で出力します。シェアウェア版でないとこの機能は使えません。ファイル名も英数字で保存しましょう。ここでは例としてtest.3dsとしておきます。
あらかじめインストールしてあるVirtuaLightフォルダのbinフォルダに,ここは強引にtest.3dsを移動します。
スタート→プログラム→アクセサリ→コマンドプロンプトを呼び出してDOS窓が開きます。
C:\>となっていれば
C:\>cd vlight\bin と打ってリターンキーをたたきます。
C:\vlight\bin>となります。dirと打って,3ds2vib.exeがあるかどうか確認します。
C:\vlight\bin>3ds2vib test -d -s45と打ってリターンキーをたたきます。
オブジェクト名や材質名がずらりと出て変換が終わります。
オプションの・・・
-dは,オブジェクトをそれぞれ管理しやすいように分けるDeclare
-s45は,オブジェクトをスムージングします。角度40度から60度がベストです。
なお,うまく変換ができない場合があります。エラーがでたり,いっこうにすすまなかっりする場合がマシン・OS環境によってあるようです。考えられるのは「ウィルスチェックソフト」が常駐しているためではないかと終われます。ただいま調査中・・・・・・
変換後にできあがったファイルは
test.vib は,シーン記述本体。カメラ位置は出力されません。
test.vsは,オブジェクトの質感設定が含まれます。シェーダーの記述もここです。
VIBtestは,オブジェクトのメッシュデータです。スムージングをかけたのでポリゴンはTriangularPatchになっています。
さて,カメラ位置をどうやって求めるかというと,便利なフリーソフトを使います。VirtuaLightのVIB形式に出力してくれます。>WinOSIというレンダラーを開発されているサイトから,VModelをダウンロードしてください。http://www.winosi.onlinehome.de/>VModelを起動してFile>Import>3D-Studioを呼び出してメタセコイアで出力したtest.3dsを読み込みます。
画面にうまくいけば,ファイルが表示されます。モデルが複雑だと読み込めない場合もある・・・・・・・
View>Dollyで画面をドラッグして近づきます。Display>Shadedで面を表示します。さらにView>RotateやLookAroundで見たい方向に調整します。かなり癖ある操作です。適当なところでカメラ位置を決めてください。
File>Export>VirtuaLightを選択します。ファイル名をいれてOKします。
最初からこれを使えばよいのではと考えられますが,実はライトが設定されません。さらにオブジェクトはスムージングがかかりません。ですから,ここでは出力されたカメラ位置と基本設定をテキストエディタでコピーします。
ライトはSkyLightを設定して以下のようになりました。xyz010sky.vib
// VirtuaLight VIB-Structure
ReadArchive "statics.vib"
ReadArchive "defshaders.vs"
ReadArchive "xyz.vs"
ReadArchive "VIBxyz"
Camera [ (31.760588, -440.320557, 279.221558), (9.214489, 13.549588, -10.785364), (0,0,1) FieldOfView 28.647890 Format(480,360) FrameAspectRatio -(480/360) ]
Options [ IrradianceSamples 100 IrradianceBounceLevel 3 IrradianceMaxError 0.6 ]
ComputeIrradiance 16
Photons(30000, 0, 0)
SkyLight (100,(0.9,0.9,1),1)
SunLight(7:45,72)
obj3 // centered at (-36.31, 24.92, 0.00) - shader: mat3
obj2 // centered at (0.00, 0.00, 0.00) - shader: mat2
obj1 // centered at (-24.07, -62.98, 43.68) - shader: mat1
VModelで出力したカメラ位置と3DS2VIBで出力したモデルを組み合わせると,カメラはX軸とY軸の反対位置になります。(またはオブジェクトが反対)
ここでは,カメラのPositionの座標にとY座標マイナスのをつけてあげると良いでしょう。
また座標軸はz=upになっていますから,カメラが傾いている場合はupAxisを(0,0,1)に書き換えましょう。
サンプルファイル
次へ