2018年4月19日木曜日

LuxCoreRenderたのしい。

LuxRenderの次期メジャーアップデートとなるv2.x系にむけて現行のv1.x系で
平行してLuxCoreとして開発が進められていた新レンダリングエンジン。
そのLuxCoreがとうとう正式に新レンダラとして名前も新たに
LuxCoreRenderとしてβ3版が公開されました。

ここ数日遊んでたさいにはまったことやわかったことなどメモ。


・公式ページなど各種情報

    LuxCoreRender
        公式ページ https://luxcorerender.org
            ギャラリー    https://luxcorerender.org/gallery/
            ダウンロード https://luxcorerender.org/download/

        公式wiki  https://wiki.luxcorerender.org/LuxCoreRender_Wiki
        git              https://github.com/LuxCoreRender

    BlendLuxCore
        git              https://github.com/LuxCoreRender/BlendLuxCore
                           機能解説や、エクスポート可能なBlenderのフィーチャなどの説明あり
    

・インストール

    上記ダウンロードページからOSに合わせて対応したバージョンをダウンロード。
    LuxCoreはblender2.79b用のアドオン版と、単独アプリとして起動可能なスタンドアロン版がある。
    さらにそれぞれにOpenCL有効版と無効版があるので要注意。
    残念ながらmacOSはダウンロード可能なバイナリがないのでソースから自前ビルドするしかない。

    多くの場合blenderにレンダラアドオンとしてインストールして使用するケースが多いと思うので
 その場合は何も考えずに各OS向けのアドオン版をダウンロード。
    blenderのアドオン管理画面から直接インストールできるzipファイルがダウンロードされる。
    LuxRenderの場合と異なりそのzipファイルの中にblenderアドオンの*.pyと一緒に
    LuxCore本体の各種実行ファイルやライブラリも全部含まれているので楽ちん。
    
    zipファイルがダウンロード完了したら、ほかのアドオンをインストールするときと同様に
    user preferencesのAdd-ons、一番下にある"Install Add-on File..."ボタンをクリックして
    ダウンロードしてきたzipファイルを選択すればOK。
    問題なくインストールされれば、アドオン一覧のところに"Render:LuxCore"が表示されるので
    チェックボックスを有効にしてこれでインストール完了。
    あとはメニューバーのレンダラ一覧のリストから"LuxCore"を選択すれば準備完了。


・GPUレンダ

 OpenCL対応GPUでできる。
 インテルのiGPU、HD Graphics520とかでもレンダできるの良い。


・HDRI

 対応してた。
 こんなかんじ。
 LuxCoreと直接は関係ないけどHDRIHAVENさんありがてえありがてえ。


・ネットワークレンダリング

 "LuxCore Network Render"ボタンをクリックして表示される
 "PyLuxCore Tools Menu"でレンダサーバの起動やジョブ管理を行う。

 Ubuntu(というかおそらくLinux全般)で、上記のボタンをクリックしても
 "PyLuxCore Tools Menu"が表示されない場合はPySideがインストールされてるか
 要確認。
 手元のLinux環境、Ubuntu16.04で試したらPyLuxCore Tools Menuが全然表示
 されないので、調べてみたらそれが原因だった。
 で、
 $ sudo pip3 install PySide
 したら、"PySideが対応するpythonのバージョンは下記の通りで、
 今のこの環境には対応してないよー!"的なエラーがでてしまう。
 ので、
 $ sudo apt-get install python3-pyside
 したらインストール完了。

 ここで、あらためてblender起動して
 "LuxCore Network Render"ボタンをクリックしたら、
 "PyLuxCore Tools Menu"が表示されたのでOK。

 そもそもLuxCoreRenderのレンダサーバプロセスを起動するには
 実はわざわざblenderを起動する必要はなくて
 ~/.config/blender/2.79/scripts/addons/BlendLuxCore/binで
 $ python3 ./pyluxcoretools.zip
 してもいいらしい。
 そうするとさっきの"PyLuxCore Tools Menu"が表示される。

 NetNodeを選択して表示される"Rendering Node Configuration"の中で
 最後の"Custom LuxCore properties"にレンダリングノードを起動する際の
 設定オプションを記載できるみたい。
 おそらくその内容はLuxCoreのSDLで記述するっぽい。(未確認)

 ※LuxCore SDL
  LuxCoreで各種設定ファイル(*.cfg)やシーンファイル(*.scn)の記述等で
  用いられているscene description language(シーン記述言語)のリファレンス


 ネットワークレンダの手順としては

  ①レンダラをLuxCoreにしておいて、いつも通りシーンの作成をblenderでやる
  ②そのシーンをLuxCoreのバイナリ形式のシーンファイル(*.bcf)としてエクスポートしておく。
  ③どこかネットワーク上の別のマシンでLuxCoreのレンダリングノードを立ち上げておく
  ④手元のマシンでLuxCoreのレンダリングコンソールを開く
  ⑤レンダリングコンソールのジョブ管理画面で②でエクスポートしたbcfファイルをジョブに追加。
  ⑥ジョブに追加したbcfファイルのある場所にflmとpngで出力が保存される。
  ⑦停止条件を設定してなければ⑥の出力を確認しつついい感じになったとこで手動でジョブ終了。

 注意する点としてはネットワークレンダするさいに、レンダラをLuxCoreにしてると
 カメラタブに表示されるカメラのオプションで、トーンマッパーが選択できるけど、
 それがデフォルの"Linear"のままだと②のシーンファイルのエクスポートの際に
 "Use a non-automatic tonemapper to get tonemapped AOVs"って警告が出て
 そのあといくらジョブを追加してレンダを進めてもなにも出力が表示されない。
 なので、トーンマッパーは"Camera Settings"か"Reinhard"に変更しておくこと。

 トーンマッピング処理だからさいしょRenderタブになんかそんな感じのオプションが
 あるに違いない。とおもって、探してたけど全然見つからずはまった。

 トーンマッパーオプションはカメラオブジェクトを選択している時だけ表示される
 Cameraタブにあるので要注意。 


---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手