インストール
レンダラのインストール方法、起動方法インストール
ここでは、配布されているバイナリを用いてLightmetricaをインストールする方法について解説します。 開発者向けの方法として、他にもソースからビルドする方法もあります。
動作環境
- ハードウェア
- 64-bit CPU with SSE4.2 support
- 4GB RAM
- OS
- Windows 7 以上
- Mac OS X 10.10 (Yosemite) 以上
- Any linux distributions (Ubuntu 14.04 で確認)
ダウンロードと起動
メニューバーのDownload
をクリックし、使用されているOSにあった配布版を選択します。
ダウンロードが完了しましたら、ファイルを展開します。
展開後のファイルにはlightmetrica
という名前の実行ファイルが含まれており、
その他シーンファイルやプラグイン開発に必要なファイルが含まれています。
次にコンソールを開き(Windowsではコマンドプロンプト)、展開したディレクトリに移動します。
lightmetrica
を実行すると、次のようなメッセージが表示されます。
以上でセットアップは完了です。
Usage: lightmetrica [subcommand] [options]
Welcome to Lightmetrica!
Lightmetrica: A modern, research-oriented renderer
Documentation: http://lightmetrica.org/doc
Subcommands:
- lightmetrica help
Print global help message (this message).
- lightmetrica render
Render the image.
`lightmetrica render --help` for more detailed help.
オプション
はじめのメッセージに表示された通り、
lightmetrica render --help
コマンドを実行すると次のようなメッセージが表示されます。
Usage: lightmetrica render [options]
Options:
--help Display help message (this message)
-s [ --scene ] arg Scene configuration file
-o [ --output ] arg (=result) Output image
-v [ --verbose ] Adds detailed information on the output
レンダラのオプションはシンプルであり、
-s
または --scene
オプションはシーンファイルへのパスを指定します。
-o
または --output
オプションは出力される画像ファイル名を指定します。
ただし、画像ファイルの拡張子は指定する必要がありません。例: some_result.hdr
ではなくsome_result
。
デバッグメッセージを有効にするには、-v
または --verbose
オプションを指定します。
シーンのレンダリング
配布版にはexample
ディレクトリ内にいくつかのシーン例が含まれています。
その中のひとつのシーンをレンダリングしてみましょう。
まずは実行ファイルlightmetrica
が存在するディレクトリ (配布版を展開したディレクトリ)に移動します。
以下のコマンドを実行することによってresult.hdr
ファイルが出力されます。
./lightmetrica render -s ./examples/001/scene.yml
コマンドが示すように、シーンファイルは-s
オプションで指定する必要があります。
また、出力されるファイル名は-o
オプションで変更できます。
このシーンはRadiance HDR format
で画像を生成します。
.hdr
ファイルを開くには、たとえばこのソフトウェアを使用することができます。
正しくレンダリングできたならば、右図の画像が生成されます。
ログメッセージの読み方
レンダラから出力されるログメッセージの設計にあたって、我々はできるだけ読みやすい設計を心がけました。 ここではログメッセージの読み方について解説します。 ログメッセージは次のようなメッセージから始まります。
| INFO 0.001 |
| INFO 0.002 | Lightmetrica
| INFO 0.004 |
| INFO 0.005 | A modern, research-oriented renderer
...
出力されるメッセージはすべて同じフォーマットによって整形されます。
|
で区切られている最初の列はメッセージの種類と、そのメッセージが生成された時間を示します。
-v
オプションを有効にすると、
デバッグに有効な情報を含む追加の列が表示されます。
| TYPE TIME | FILENAME | LINE | TID |
| INFO 0.003 | main.cpp~ | @ 402 | # 0 |
| INFO 0.005 | main.cpp~ | @ 402 | # 0 | Lightmetrica
| INFO 0.008 | main.cpp~ | @ 402 | # 0 |
| INFO 0.011 | main.cpp~ | @ 402 | # 0 | A modern, research-oriented renderer
...
FILENAME
はメッセージが生成されたソースファイルを示し、
LINE
はその行数を示します。
TID
はメッセージが生成されたスレッドのIDを示します。
メインスレッドは0
であり、その他のスレッドIDは実行ごとに変化します。
メッセージの種類は4種類あり、 重要度によって以下のように色分けされています。
Type | Meaning | Color | Description |
---|---|---|---|
INFO |
情報 | 白 | レンダリングのプロセスを表示するためのメッセージに用いられます. この種のメッセージをよく調べることで、エラーが出たときの原因を調査するのに役立ちます. |
WARN |
警告 | 黄 | 何か意図しない処理が発生したときに表示されますが、レンダラの実行には影響を与えません。 |
ERROR |
エラー | 赤 | エラーの発生を示すます。多くの場合、レンダラの実行は停止されます。 |
DEBUG |
デバッグ | 灰 | デバッグのためのメッセージです。無視してかまいません。 |
examples/001/scene.yml
中の一文字をあえて変更してみて、どのようなメッセージが表示されるか見てみましょう。
sensor_1
から変更されたsensor_2
は未定義であり、何かのエラーが表示されるはずです。
…
nodes:
- id: n1
sensor: sensor_2 # sensor_1から変更
transform:
…
lightmetrica render ./example/001/scene.yml
コマンドを実行すると次のようなメッセージ(一部抜粋)が生成されます。
| INFO 0.152 | ............ Loading asset 'sensor_2'
| ERROR 0.156 | ................ Missing 'sensor_2' node
| ERROR 0.162 | ................ See around line 5 @ scene.yml
| ERROR 0.166 | ................ 3 |
| ERROR 0.169 | ................ 4 | assets:
| ERROR 0.174 | ................ 5*| sensor_1:
| ERROR 0.183 | ................ 6 | interface: sensor
| ERROR 0.191 | ................ 7 | type: pinhole
| ERROR 0.197 | ............ Failed to create emitter
| ERROR 0.202 | ............ See around line 84 @ scene.yml
| ERROR 0.206 | ............ 82 | nodes:
| ERROR 0.210 | ............ 83 | - id: n1
| ERROR 0.214 | ............ 84*| sensor: sensor_2
| ERROR 0.218 | ............ 85 | transform:
| ERROR 0.222 | ............ 86 | lookat:
このメッセージからいくつかチェックすべき項目がわかります。
Missing 'sensor_2' node
はsensor_2
の定義がないということを示しています。メッセージによると、アセットの定義(5行目)を確認するようにと提案しています。Failed to create emitter
はセンサーの生成に失敗したということを示しており、メッセージによるとsensor_2
への参照をチェックするようにと提案しています(84行目)。
今回の場合が後者のケースが正しい提案となり、
sensor_2
をsensor_1
に修正することでエラーが修正できます。
この例ではエラーメッセージが表示された場合の原因の調査手順を示しました。
この例が示すように、ログメッセージはシーンファイルのエラーを調査するために非常に役立ちます。