++scenes;

CGメイキング,Terragen 4の使い方,その他お知らせ

(Terragen 4) コマンドラインからレンダリングする

本記事の対象Terragen 4バージョン:Creative / Professional (Educational含む)

TG4はコマンドラインから実行することができます。
バッチファイルからレンダリングしたい,といった場合に便利です。

パスの追加

Windowsの場合は,コマンドプロンプトを開いてsetxコマンドで環境変数を追加できます。ここでは"TG4_PATH"という名前で設定します。TG4のインストールフォルダは適宜修正してください。なお,setxを使用する際はコマンドプロンプトは管理者権限で実行してください。

> setx /M TG4_PATH "C:\Program Files\Planetside Software\Terragen 4"

echoコマンドで確認(一度閉じる必要があります)
>echo %TG4_PATH%
C:\Program Files\Planetside Software\Terragen 4

システム環境変数ではなくユーザ環境変数にしたい場合は/Mを削除してください。

Mac OS XLinuxは後で書きます。

実行

Windows
> "%TG4_PATH%/tgdcli" (オプション)

オプションは次の通りです。全部ではなく,よく使うものだけ載せます。なお,オプションは全OS共通です。
-pと-r以外は必要な時以外使わなくて良いです。

オプション 説明
-p プロジェクトファイル名 プロジェクトファイルを開く -p hoge.tgd
-r (なし) プロジェクトファイルをレンダリングする -r
-rendernode Render node名 指定したRender nodeをMasterにする。-rでレンダリングする場合は指定したRender nodeでレンダリングされる。複数のRener nodeを設定していない限りは指定する必要はないです。 -rendernode "Render 01"
-f フレーム名 -rを指定した場合に,ここで指定したフレームをレンダリングします。カンマ,ハイフン,スラッシュを使って細かく指定することができます。アニメーションを使わない場合は指定しなくて良いです。 -f 1-50,66,71-100/10 => 1から50フレーム, 66フレーム,加えて71〜100フレームを10フレーム刻みで(つまり71, 81, 91)レンダリングします。
-o 出力ファイル名 -rを指定した時,レンダリング後に保存する画像のパスを指定します。指定しない場合は,RenderのSequence/outputタブで指定されているファイル名が使用されます。アニメーションレンダリングの場合は,%04dのようにフレーム番号が入るところを作ってやってください。dの前の数字はフレーム番号の桁数です。その前に0を入れるとゼロ埋めされます。 -o temp.%04d.bmp => temp.0001.bmp, temp.0002.bmpのように保存されます。
-tilex レンダリングするx方向の範囲。 指定した範囲をレンダリングします。シーンの左端が0,右端が1です。tilexを指定すると,RenderのCropで指定した値は無視されます。 -tilex 0 0.2
-tiley レンダリングするy方向の範囲。 指定した範囲をレンダリングします。シーンの下端が0,上端が1です。tileyを指定すると,RenderのCropで指定した値は無視されます。 -tiley 0.5 0.7

hoge.tgdの,1-10フレームをレンダリングし,result.01.exr, result.02.exr...の連番OpenEXRで保存する。

Windows
> "%TG4_PATH%/tgdcli" -p hoge.tgd -r -f 1-10 -o result.%02d.exr

実行するとレンダリングが始まります。正常に終了すると最後はこのようになります。 f:id:aokcub:20180217103757p:plain

以上です。

Reference

より詳しい説明はこちらから。

Command Line Reference - Terragen Documentation from Planetside Software

宣伝

高解像度全天球テクスチャです。
++skies; - Photo-Realistic Panoramic Sky Textures

去年CG集つくりました。よろしければ買ってください。
【風景CGイラスト集】今日も空を見ている - aokcub::Booth - BOOTH

ポストカードもあります。
風景CGポストカード - aokcub::Booth - BOOTH

その他缶バッジなどもあります。
aokcub::Booth - BOOTH

(Terragen 4) CropとGI cacheを使って重いレンダリングの精神的負担を軽くする

本記事の対象Terragen 4バージョン: Creative / Professional (Educational含む)

こんにちは。

ここ数年,TG4(前はTG3)で16384x8192とかそういう解像度のレンダリングを100時間くらいかけてやることが多いのですが,長時間レンダリングになると怖いのがやはりレンダリング途中のクラッシュです。単にエラーで落ちることもあれば、メモリが足りなくなって落ちることもあります。以前90%以上完了していたレンダリングが落ちたこともありました。死にたい。
レンダリング課金勢にとっては,クラッシュした分はRどころか何も引けなかったに等しいです。ドブってレベルじゃない。

そういう無駄な課金を防ぐためにはシーンを分割してレンダリングするのが一つの方法です。分割することで,失敗した時の精神的・金銭的ダメージを抑えられます。

以下は私がスカイドームテクスチャを作成する際に常にやっていることですが,スカイドームでなくても通常のシーンレンダリングでも使える方法です。なお,文中のキャプチャはMac OS X版で撮っていますが,やり方はWindows版でも同じです。

Crop rendering

分割するということで,まずはCropの使い方から。

TG4には(たぶん他のソフトウェアと同様に),カメラ内の指定した領域だけレンダリングしてくれる機能があります。設定はRenderのCropタブで行います。 "Do crop region"にチェックを入れ,下の4つのフィールドに数字を入れることで,レンダリングする領域を指定することができます。
シーンの左端、下端が0、右端,上端が1になります。 Crop_ex1

Cropを有効にすると,プレビュー上ではその領域が赤枠で表示されます。 Crop_ex2

これでレンダリングするとこんな感じに。
Crop_ex3

この機能はシーンの一部だけレンダリングして様子を見たいような時も使えるので,覚えておくと便利です。

今回はシーンを横に5分割してやります。つまり,[left, right]がそれぞれ[0, 0.2], [0.2, 0.4], [0.4, 0.6], [0.6, 0.8], [0.8, 1]となるようにします。それぞれレンダリングしてやれば,5枚の分割レンダリング画像が出来上がります。

アニメーションレンダリング機能と組み合わせて,一気にレンダリングすることもできます。アニメーション機能については詳しくは触れませんが,Crop領域を指定してやった後でAnimation keyをセットします。 1フレーム目は[0, 0.2], 2フレーム目は[0.2, 0.4]といった感じで,5フレーム使って各領域をレンダリングしてやるような感じです。 f:id:aokcub:20180216234435g:plain

各フレームの設定が終わったら,"Sequence/output"タブに移動します。"sequence first"を1,"sequence last"を5にして,"Render Sequence"を押してアニメーションレンダリングを始めます。"Output image filename"は任意の名前で良いですが,"%04d"は残しておいてください。ここにフレーム番号が入ります。 sequence

Command lineでレンダリングする場合は-fオプションを入れます。

Windows
 "%TERRAGEN_PATH%/tgdcli" -p hogehoge.tgd -r -f 1-5

OS X
./'Terragen 4' -p hogehoge.tgd -r -rendernode full -f 1-5

Linux
./terragen -p hogehoge.tgd -r -f 1-5

レンダリングが終わると

このように5枚の画像が出来上がります。(ファイル名は一例です)
nocache

あとはこの5枚の画像を合成するだけ...のはずなんですが,多くの場合ここで悲惨な結果になります。

nocache_result
このように,分割した画像間で明るさに差が出てしまいます。これは,分割してレンダリングしたことで,それぞれのレンダリング時に行われるライティングの計算にミスマッチが出ることによります。

すでにTG4でレンダリングをしたことがある方なら,レンダリングし始めると黒い画面にポツポツと点が現れ,それが全体に広がると,今度は精細な画像が現れ始めるのを見たことがあると思います。最初のポツポツが出ている時,TG4はシーン内の明るさを計算しています(この段階をprepassと呼んでいます)。その後,prepassの結果を使ってシーンを仕上げて行きます(final passと呼んでいます)。

prepassはレンダリングする領域に対して行われるため,分割すると領域ごとにどうしても誤差が出てしまいます。

GI cacheの書き出し

これを防ぐために,GI cacheというものを使います。これは,prepassでの計算結果をキャッシュファイルとして保存することができる機能です。

GI cacheを使うためには,まず"Do crop region"のチェックを外し,シーン全体をレンダリング対象にします。

次に,Renderの"GI setting"をクリックし,開いたダイアログの真ん中あたりにある"Write to GI cache file"をチェックします。ファイル名はなんでもいいですが,ここでは"gicache_%04d.gic"にします。
gisetting

終わったらレンダリングします。"Write to GI cache file"を選択している場合は,prepassまででレンダリングが終了します。
cache_export_render

同時に,拡張子gicのファイルが出力されます。これで,シーン全体に対して計算を行った結果が保存されました。
gicache_file

GI cacheの読み込み

次に,保存したキャッシュファイルを読み込んで,シーンをレンダリングします。

もう一度"GI setting"を開いて,今度は"Read GI cache file(s)"をチェックします。そして,先ほど保存されたキャッシュファイルを指定します。そして,"Blend mode"を"One file (exact filename)"にします。
gisetting_read
今回は一つのキャッシュファイルを使いますが,複数のファイルを読み込むこともできます。その時にどのようにファイルを使っていくかを指定するのが"Blend mode"です。いつか仮に(本格的な)アニメーションレンダリングの解説を書くことになったら触れるのでしょうが,今は放っておきます。

読み込むキャッシュファイルを指定したら,もう一度分割レンダリングの設定をして,レンダリングを始めます。
prepassはもう完了しているため,Final passから始まると思います。これで,全てのフレームで同じprepass結果を使用してレンダリングをすることができるため,明るさのミスマッチが生じなくなります。

レンダリングした画像をまとめるとこの通り。 gicache_result

課金額を減らして効率的にSSRを手に入れましょう。以上。

補足

この設定を毎回やるのは面倒です。
なので自分はRenderを二つ用意して,キャッシュ書き出し用とキャッシュ読み込み・レンダリング用にしています。この設定をしたものをテンプレとして保存して使っています。 f:id:aokcub:20180216232510j:plainf:id:aokcub:20180216233417j:plain

Command lineでは-rendernodeオプションにより使うRenderを指定できます。

Windows
 "%TERRAGEN_PATH%/tgdcli" -p hogehoge.tgd -r -rendernode cache -f 1
 "%TERRAGEN_PATH%/tgdcli" -p hogehoge.tgd -r -rendernode full -f 1-5

OS X
./'Terragen 4' -p hogehoge.tgd -r -rendernode cache -f 1
./'Terragen 4' -p hogehoge.tgd -r -rendernode full -f 1-5

Linux
./terragen -p hogehoge.tgd -r -rendernode cache -f 1
./terragen -p hogehoge.tgd -r -rendernode full -f 1-5

補足2

解像度が高い場合,キャッシュファイルのサイズが数GBに及ぶことがあります。ストレージの空きにはご注意ください。

Reference

Terragen 4 Global Illumination - Terragen Documentation from Planetside Software

Rendering Methods - Terragen Documentation from Planetside Software

Render - Crop Tab - Terragen Documentation from Planetside Software

Command Line Reference - Terragen Documentation from Planetside Software

宣伝

高解像度全天球テクスチャです。
++skies; - Photo-Realistic Panoramic Sky Textures

去年CG集つくりました。よろしければ買ってください。
【風景CGイラスト集】今日も空を見ている - aokcub::Booth - BOOTH

ポストカードもあります。
風景CGポストカード - aokcub::Booth - BOOTH

その他缶バッジなどもあります。
aokcub::Booth - BOOTH

2018-02-17 2:20 補足2加筆,対象バージョン追加,本文中のCreative/Professional向けの区分削除,その他微修正
2018-02-17 2:49 2レンダーノード設定時のコマンドライン実行方法追加
2018-02-17 2:54 OS Xコマンドラインコマンド追記

【告知】デザフェスに出ます

タイトル通りです。

 

まきのせなさんのお誘いで,2017年5月27日(土)に国際展示場で開催される,デザインフェスタ vol.45に出展させていただくことになりました。

 

3/29 ブース決まりました。A-104です。

 

↓出展者ページはこちら

www.designfesta.com

 

まきのせなさん

火種さん

aokcub

の3人で出します。

 

 

まだ何を出すか全部決めきれてはいないのですが,

・去年渋谷ハンズでも販売した++skies;缶バッジ

・ポストカード

 

あたりを出そうと思っています。

 

それと,完全にネタですが++skies;全部入りBlu-ray作ります(何がしたいんだ)

 

 

さらに,これは間に合えば,になっちゃうのですが,

 

CG集出したい。

 

実は今年でTerragen(当時は2のTech Previewだった)を使い始めて10年になります。ちょうど節目の年なので,過去作,過去作リメイク,新作を入れて作っています。

 

間に合うように頑張る(今日も新作作ってる)

 

 

と,こんな感じなのですが,なにぶんイベント出展というのが初めてで何もわかっていないし,在庫死したくないので持っていく量はかなり少ないと思います。

欲しいという方は取り置きしますので,ご連絡ください。

 

以上,何卒宜しくお願いいたします。。。!!

 

 

参考に今Boothで扱っているものを...

aokcub.booth.pm