2023年10月25日、Twinmotion2023.2正式リリース版が公開されました。目玉機能の一つは、Lumenモードの搭載です。早速Lumenモードでのレンダリングを検証してみたいと思います!
Lumen は、Unreal Engine 5 の画期的なダイナミック グローバル イルミネーションおよび反射システムです。Lumen を使用すると、直接ライティングやジオメトリの変化 (時間帯による太陽の高度の変化や屋外につながるドアの開閉など) に合わせて、間接ライティングを即座に適応させることができます。これにより、リアルタイム アプリケーションでよりリアルな表現が可能になり、短時間でパストレースに迫る品質の美しい静止画や動画をレンダリングできるようになります。
Twinmotionニュースリリース より引用
※ 本記事で使用するTwinmotionのバージョンは 2023.2 です。
Lumen使用における注意点
開発ドキュメント では Lumen を使用するために推奨されるベストプラクティスおよび避けるべきことを紹介されており、下記に重要だと思った2点について抜粋します。1点目はSketchUpユーザー向けのポイントです。
ベスト プラクティス | 避けるべきこと | |
SketchUp Pro ファイル | SketchUp Pro (.skp) ファイルを Twinmotion にインポートする前に Datasmith (.udatasmith) 形式に変換する | ネイティブの SketchUp Pro (.skp) ファイルをインポートする |
再構成モード | ファイルのインポート時に [Keep hierarchy (オブジェクト階層を維持する)] 再構成モードを選択する | ファイルのインポート時に [Collapse by material (マテリアルごとに再構成する)] または [Collapse all (すべて再構成する)] の再構成モードを選択する |
私はこれまで.skpファイルの直接インポート、[Collapse by material (マテリアルごとに再構成する)]をいつも使ってきたので、ここを変えなければならないのはちょっと辛いところですが、今後は新しいやり方に慣れていくことも必要ですね。。
インポート時の再構成モードについても、2023.1.2までは [Collapse by material (マテリアルごとに再構成する)] がデフォルトだったのですが、2023.2では [Keep hierarchy (オブジェクト階層を維持する)] がデフォルトに変更されています。
インポート時の再構成モードによる違い
Lumenは全てのメッシュに対して効くわけではなく、複雑すぎたり小さすぎるメッシュに対しては(計算負荷を減らすために)効かないようになっています。[Visualize mesh conflicts (メッシュの競合の視覚化)] をONにすることで、「Lumenが効いているかどうか」を確認することができます。
黄色やピンク色になっている面はLumenが無効になっているメッシュです。[Collapse by material (マテリアルごとに再構成する)] でインポートした場合はほとんどの面にLumenが効いていないことが分かります。(スライダーをドラッグして比較することができます。スマホよりもPCからの方が見やすいと思います)
[Collapse by material] で調整したシーンを [Keep hierarchy] に変更したい場合
既にインポートしたdatasmithファイルを[Keep hierarchy (オブジェクト階層を維持する)] で再読み込みすることもできますが、マテリアルが調整前に戻ってしまいます。
なので、おススメの方法は以下です。元のシーンを残したまま同じdatasmithファイルを追加でインポートし、インポート時に[Use scene material] を選択して一部のマテリアルは保持し、残りの部分を以前のシーンと見比べながら合わせていく方法です。これが少し手間はかかりますが一番早いやり方かなと思います。
Lumenモードでのレンダリング / 外観編
まず、集合住宅外観シーンのレンダリングを試してみました。まず何といってもみんな気になるのは、レンダリングが綺麗なのかどうか?だと思います。標準モードとLumenモードでそれぞれ調整したものを比較してみます。
どうでしょうか?概ねよりリアルに近づき良い雰囲気になったのではないかと思います。標準モードと比べると、例えば下のような変化が見られます。
パストレーサーモードとの比較です。パストレーサーの方が陰影のコントラストが強く、やや暖色側に振れやすい印象です。Lumenモードはまさに標準とパストレーサーの間という感じかなと思います。
調整手順の例
シーンに依ると思いますが、LumenをONにするだけで綺麗になるとは限りません。このシーンでも、単純にLumenをONにしただけだと何だか陰影バキバキで暗くなってしまい、正直あまり綺麗ではありませんでした。
まずは露出の値を上げてみました。…が、まだコントラストが強く、影の暗すぎたり、空が白飛び気味になってしまっています。
ここから調整するのに、2023.2の新機能 [Local exposure (ローカル露出)] が非常に使いやすかったです。明るすぎるところを暗く、暗すぎるところを明るく調整してくれる機能で、iPhoneで写真を撮る際の自動補正に似てるかなと思います。これのチェックをONにするだけで結構きれいに見えるような気がします。
レンダリングがおかしいな?と思ったら
Lumenモードを検証しているなかで、下のように突然レンダリングがおかしくなることがありました。影がもやもやと斑点状になったり、ガラス手摺部分にざらざらのノイズが出てしまっています。これはTwinmotionを再起動することで直りました。Lumen機能が搭載されたばかりなので、まだ少し動作が不安定なのかもしれません。
レンダリング時間の比較
インポート時の再構成モード( [Collapse by material] または [Keep hierarchy] )と各レンダリングモードで外観シーンの静止画レンダリング時間を比較してみました。
v2023.2 静止画(4K)書き出し時間 11/3計測 | 標準レンダリング [Collapse by material] | 標準レンダリング [Keep hierarchy] | Lumen [Keep hierarchy] | パストレーサー [Collapse by material] | パストレーサー [Keep hierarchy] |
外観シーン | 00’25” | 05’04” | 10’16” | 05’24” | 05’17” |
v2023.2 静止画(4K)書き出し時間 11/19計測 | 標準レンダリング [Collapse by material] | 標準レンダリング [Keep hierarchy] | Lumen [Keep hierarchy] | パストレーサー [Collapse by material] | パストレーサー [Keep hierarchy] |
外観シーン | 00’25” | 00’26” | 09’37” | 05’16” | 05’01” |
再構成モードについて・・・
リアルタイムレンダリング(標準レンダリング または Lumen)では、[Collapse by material] よりも [Keep hierarchy] の方が数倍レンダリング時間がかかった。後日改めて計測すると、[Collapse by material]と[Keep hierararchy]で大きな差はありませんでした。前回計測時はたまたまPCの調子が悪かったか、またはちょうどhotfix版が出る前後だったので、計算アルゴリズムの改修があったかもしれません。2023.11.19追記
レンダリングモードについて・・・
- 今回の検証では、Lumenのレンダリングが最も時間がかかった。
標準レンダリングとLumenではレンダリング時間はそれほど変わらない・・・と思っていたのですが、Lumenがパストレーサーよりも時間がかかるという結果になってしまいました。ほんとか?というような結果ですが、多くの場合Lumenのレンダリングが早いはずだと思うので、今後別のシーンでも検証していきたいと思います。
検証に関する補足 ■ パフォーマンスの比較について、手元のストップウォッチで測っているので多少の誤差を含みます。 ■ 各レンダリングモードで、見栄えを揃えるために露出など多少の設定を変更しています。 ■ パストレーサーの品質はhighとしています。 ■ テスト機のスペック・・・OS: Windows10 / CPU: Intel Core i7-10870H 2.20GHz / メモリ: 32GB / グラフィック: GeForce RTX 3060 Laptop
まとめ
Lumenで外観シーンをレンダリングしてみた感想です。
- Lumenモードと[Local exposure (ローカル露出)]調整を組み合わせると良い感じ。
- これまで [Collapse by material] を使ってきた人は、[Keep hierarchy] に切り替えるのにワークフロー、レンダリング時間などの面でいくつかハードルがありそう。
次回、内観(インテリア)シーンでの検証を行いたいと思います。
Next:【Twinmotion】Lumenと仲良くなりたい②
以上.