Rendering

Tips

modoでオブジェクトの形状をハイライトに使用する表現

modoでオブジェクトの形状をハイライトように見せる表現について書いてみます。作りかけの不完全な内容ですが、興味があれば試してみてください。

アニメやNPR表現では特長的なスタイライズドされたハイライトが使用されることがあります。こういう表現を使用したい場合、従来はテクスチャを使用するのが一般的ですが、今回はReycastノードを使用してオブジェクトの形状をハイライトのようにレンダリングしてみました。

 

スケマティックはこんな感じです。

Reycastの「ヒットした色」をマテリアルの「ディフューズ色」に入力すると、反射のようなディフューズ色を設定用することができます。

「ヒットした色」を「ディフューズ色」に直接入力すると環境色も完全に反射してしまうため、条件式の「AはBより大きい」を使用してReycastの「ヒットした距離」が一定以上離れている場合は、任意の色に置き換えるという処理にしてます。
距離が近い場合はTrue値としては「ヒットした色」をそのまま出力し、距離が離れてる場合はFalse値として任意の色を出力します。

反射してるオブジェクトはルミナンスを設定使用して、シェーディングしない単色になるように設定しています。

 

 

このままの方法だと近くにあるオブジェクトが全て反射してしまうので、反射対象のオブジェクトを制限する方法を追加する必要があります。今回はそこまで考えていないので、興味があるひとは続きを作ってみてね。

オブジェクト形状を使用する方法はテクスチャと異なり、カメラが近づいても荒くならないというメリットがあります。またリグを組んでアニメーションできるというのも面白いと思います。Reycast以外にUV Transformを使用する方法でも似た表現ができるような気がします。

 

3dsMaxにはShape Mapというスプラインをテクスチャでレンダリングする機能があり、リグを組めば表情用のテクスチャを動的に作ることがでそうだなと思ってましたが、Mayaで再現してる人を見かけました。modoもシーン内のパスやオブジェクトからテクスチャ作れたら似たようなことができて夢が広がりそう。

 

参考

参考資料

スタンドアロンのUSD編集ツール「MUSE」

J CubeがDCCアプリケーションを必要とせずに、USDファイルを開いたり、表示したり、非破壊的に編集したりするための新しいツール「MUSE」のアルファ版をリリースしました。現在はMultiverseProユーザー向けに無料公開中のようです。

https://j-cube.jp/solutions/multiverse/docs/setup/muse-faq.html#what-is-muse

MUSEとは?

MUSEは日本の横浜にあるJ CubeIncによって作成されたまったく新しいソフトウェアアプリケーション「MultiverseUsdStandaloneEditor」です。

MUSEを使用するとユーザーはDCCアプリケーションを必要とせずに、インタラクティブに視覚化して、USDアセットとコンポジションを再生できます。MUSEの目的はUSDファイル内の属性の高速で非破壊的なマルチ編集を提供し、他のUSDファイルへの参照を追加し、USDオーバーライドを書き込み、オーバーライドを使用してUSD構成を書き込むことです。

 

MUSEで何ができますか

現時点では次のことができます。

  • USDファイルを開く
  • HydraStormでUSDファイルをインタラクティブに視覚化
  • アニメーション再生
  • ビューポートでUSDプリムを選択します
  • 複数選択編集を含むUSDアトリビュートの編集
  • 他のUSDファイルへの参照を追加する
  • USDオーバーライドを書き込む
  • オーバーライドを使用してUSD構成を書き込む

注意:MUSEはまだ開発のアルファ段階にあり、「技術プレビュー」としてのみ提供されています。私たちはそれをベータ版に移行し、将来のリリースでその機能を拡張し始めるために一生懸命取り組んでいます。

参考資料

ACESCGについて知っておくべきこと

ChaosgroupがカラーエンコーディングシステムACESに関する記事を公開しています。ACESは実写向けとして普及していましたが、近年は3Dソフトやレンダラーでの対応が進んでいます。modoも14.1でACESに対応しました。

https://www.chaosgroup.com/blog/everything-you-need-to-know-about-acescg?utm_campaign=All-Feature-2020-h2-cg-blog-product-features&utm_content=v-ray-for-maya&utm_medium=social-organic&utm_source=twitter

 

ACESとは?

ACESはメディアやエンターテイメントを中心に世界中で広く採用されているカラーエンコーディングシステムです。ACESはAcademy Color Encoding Systemの略で、映画芸術科学アカデミーによって開発されました。

カラーエンコーディングシステムは何年も前から存在しています。sRGBやRec709など、ご存知の方もいるかもしれませんが、これらはフィルムや標準画質テレビなどの古いシステム向けに設計されたものです。
現在、最新のカメラ、特にデジタルカメラは、sRGBよりもはるかに多くの色を表現することができます。これらのカメラシステムはすべて独自のRAWファイルフォーマットを使用しており、撮影者はカメラが撮影できる色の全域を表現できるようになっています。

問題は、それらのRAWフォーマットがお互いに互換性がないことです。そこでアカデミーは、すべてのカメラデータを同じ色空間に配置するための新しい最新のカラーエンコーディングシステム(ACES)を考え出しました。これにより、カラリストは多くの異なるソース間で一貫性を保つことができるようになりました。

しかし、ご存知のように現代の映画にはビデオだけでなく、かなりの量のCGIも含まれています。そのようなものとして、VFXの世界は同じ色空間に適応しなければなりませんでした。それ故にACESの別のフレーバーであるACEScgが誕生しました。

 

何がACESをより良くしているのか?

簡単な答えは広色域です。人間の視覚はほとんどの場合、非常に多様な明るさで多くの異なる色を見ることができます。昔のテレビやフィルムでさえ可能なことは限られていました。新しいカメラ、テレビ、そしてドルビーシネマのようなレーザープロジェクターでさえも、可能な色と明るさの範囲ははるかに広くなっています。これを理解するための最良の方法は、どれだけ多くの色が見えるかを示す標準的な色域グラフです。

 

ACESにはなぜこんなに多くの異なるフレーバーがあるのでしょうか?

すべてのフレーバーはほぼ同じ色空間を示していますが、技術の違いにより、その色空間をエンコードする方法が若干異なっていました。ある種のカラーコレクタは、データを対数的にエンコードする必要があったため、データがより良く機能するようになりました。いくつかのカラーコレクタは、古いCineonファイルが使用していたものに近いカーブを必要としていました。これがACEScctにつながりました。

CGの世界では、すべてのデータはカーブのないリニアのままであれば、より良いものになります。そこでアカデミーはACES ACEScgのリニアバージョンをACES ACEScctと名付けることにしました。V-Rayでは、ACEScgのみをサポートしていますが、これはCGI作業のために選択される色空間であり、混乱を避けるのに役立ちます。

 

ACESは私のワークフローにどのような影響を与えますか?

技術的には、いくつかのステップを踏めば、ワークフローに影響を与えることはありません。テクスチャやHDRなどは、出力で期待される色を得るために、すべてACEScgに変換する必要があることを認識する必要があります。これはMayaの設定で処理されますが、最終的にはV-Rayで変換を行います。

入力画像については、以下のカラースペースをネイティブでサポートしています。Raw、ACEScg、シーンリニアまたはガンマ Rec.709、 sRGB。その他の入力カラースペースが必要な場合は、OCIO を使用する必要があります。
Maya がテクスチャのカラー スペースをどのように決定するかに注意する必要があります。カラー マネージメント(Color Management)」設定では、ファイル名のパターンに基づいてテクスチャにカラー スペースを割り当てるルールのリストを設定することができます。これは、Maya のテクスチャに入力カラースペースを割り当てる主な方法です。

OCIO を有効にしている場合は、"Use OCIO input color space rules "を有効にするオプションもあります。これは OCIO 設定のすべてのカラースペースを Maya の暗黙のルールとして追加するもので、イメージのファイル名に OCIO カラースペース名がある場合は、そのカラースペースが自動的に割り当てられます。最後に、ルールベースのシステムに適合しないファイルがいくつかある場合は、特定のファイルノードのアトリビュートからその色空間をオーバーライドすることができます。いずれにしても、V-Rayは画像の入力色空間が設定されているものは何でも尊重し、それを推測しようとはしません。

 

次に、選択肢があります。Mayaの環境設定に移動して、Mayaで出力色空間を設定できます。

 

しかし、Mayaの設定をバイパスして単純にV-Rayに任せたい場合は、V-Rayのレンダリング設定でこれを行うことができます。

 

結論

ACEScgはカメラと同様に両方の入力システムでネイティブに使用されている新しい標準的な色空間であり、V-Rayのような出力プログラムです。これにより、より広い色域とより高いダイナミックレンジが可能になります。
V-Ray 5 for Maya はこれをサポートしているだけでなく、Maya の中のネイティブ カラー マネージメントを尊重しています。そのため、V-Ray for Maya プロジェクトが ACEScg にあることを確認することは、これまで以上に簡単になりました。

CG News

3dsMaxのレンダーパスマネージャー「renderStacks」

3dsMaxのレンダーパスマネージャー「renderStacks」がリリースされました。シーンファイルに情報を保存するため、プラグインが不要なようですね。

https://renderstacks.com/renderstacks/

価格
  • サブスクリプション1ユーザー $ 59.99/年
  • 1年間のメンテナンス付き永続ライセンス $ 249.99
  • 非営利目的での使用は無料です。

 

renderStacksとは?

3dsMax用のレンダーパス/ジェネリックタスクマネージャーです。RPManager、LPass Manager、Prism、StateSet、Scene Stateを使ったことがある人ならわかると思います。みたいなものです。しかし、より賢く、より速く、より安定したものを目指しています。

一言で言えば、RenderStacksではパスごとに実行されるタスクのシーケンスを定義でき、シーンごとに無制限にパスを持つことができます。
例えば「ビューポートをCamera001に設定し、解像度を1920×1080に設定し、出力パスを "Z:\project\awesome\...\v001awesome_bty.exr "に割り当て、フレーム範囲を100から300に設定する」、「ティーポットにレッドプラスチックを適用する」などのように、「Bty」というパスをrenderStacksに指示することができます。

renderStacksを使えば、アーティストのよくあるシーン管理の手間が省けます。パスを一度設定するだけで、アート制作に集中できます。単純なミスでどれだけのレンダーノードの時間が無駄になったことでしょうか?
renderStacksは潜在的なヒューマンエラーの多くを防ぐのに役立ちます。さらに優れているのは、スクリプトを一行もコーディングすることなく、アーティストに優しいUIでこれらすべてを行うことができるということです。

 

インスピレーションのいくつか

renderStacksの開発者は、3dsMax用の他の多くのレンダーパスソリューションを手に取り、3dsmax用の階層型レンダーパスマネージャのような未発表のソリューションのビデオを研究してきました。 また、ModoのレンダーパスシステムやMayaのレンダーセットアップとレンダーレイヤーなど、他のDCCソリューションもチェックしました。 renderStacksは、アーティストとしての長年の制作経験から生まれたもので、他のソリューションの最高の機能を組み合わせたものです。私たちは renderStacks を Uber のレンダーパスマネージャーだと考えています 。

ここでは、RenderStacksの主な機能、ハイライト、そしてその背景にある考えをご紹介します。

 

欲しいものは何でもコントロールし、必要なものだけをコントロールする

renderStacksの主な目的は、扱う必要のあるシーンファイルの数を減らすことです。これにより、1つのシーンファイルからより多くのことができるようになります。そのためには、このツールはパスごとに非常に包括的なコントロールを提供しなければなりません。カメラ、解像度、フレーム範囲、オブジェクトの可視性、マテリアルオブジェクトのプロパティ、レンダラーのパラメータなどをコントロールすることができます。このドキュメントの最後にサポートされているpmodifier(パスモディファイア)のリストを見ることができます。

しかし、たとえ renderStacks が多くのパラメータを制御できるとはいえ、常にすべてのパラメータを制御する必要はありません。例えば、パスごとに異なるしきい値を設定したい場合、パスごとにすべてのレンダラーパラメータを管理する必要はありません。 renderStacks は何を制御するかについて非常に細かい粒度を提供し、どのパラメータを使用するかを明示的に選択することができます。

 

スタックベースのワークフロー

renderStacksはスタックベースです。驚きです。ノードベースのワークフローが好きなユーザーもいると思います。しかし、スタックベースのワークフローを選んだ理由はいくつかあります。

  • スタックがコンパクトだからです。3ds Max のモディファイア スタックが、ノードベースのものと比べてどれだけコンパクトか見てください。スタックアプローチでは、スクリーンスペースの 4 分の 1 以下で多くのパスを見ることができます。
  • 読みやすい - 各パスは基本的に一連のタスクです。ノードのスパゲッティで思考をナビゲートしたり、UI に散在する可能性のあるすべての UI ウィンドウを探したりするのではなく、そのパスで何が起こっているのかを読み取って把握することは、はるかに簡単です。

これに関しては、モディファイア スタック、LPass Manager、Prism、そして特に 3dsmax 用の Hierarchical Render Pass Manager からヒントを得ました。

 

パフォーマンス

パスの切り替えに数秒以上待つのが好きな人はいません。ユーザーのシーンには何億ものポリや何万ものオブジェクトがあることを知っています。私たちは、3ds Max のパフォーマンスを少しでも引き出すために、長年の間に学んだあらゆるトリックを駆使してきました。まだまだ改善の余地があると思いますが、RenderStacksは類似のソリューションの中で最高のパフォーマンスを提供できると確信しています。

 

1つの場所ですべてをコントロール

renderStacksを使用すると、レンダリングに関連するすべてのパラメータを一箇所でコントロールすることができます。これは、レンダリングとシーン管理に必要なすべてのパラメータパレットのようなものです。コントロールする必要のあるすべてのパラメータが指先に集まっているので、レンダーセットアップダイアログやオブジェクトのプロパティダイアログを開く必要はありません。

 

手続き型・動的オブジェクト選択

従来の3ds Maxの選択セットから、RenderStack独自のレイヤーセットまで、オブジェクトのグループを動的に定義し、統一された方法で利用するための様々な方法を提供しています。

与えられたオブジェクトセットを様々な方法(マットオブジェクト、ライティング除外など)で複数回のパスで使用し、それらが同期していることを確認する必要がありますか? renderStackの様々なオブジェクトセットを使用すると、これらの作業が簡単になり、エラーが発生しなくなります。

 

パイプライン/チームフレンドリー

パイプラインの集中管理が必要ですか?パスの自動設定?renderStacksは、アーティストからの機能アクセスをオーバーライドまたはブロックするための様々なパイプラインフックを提供します。必要な数だけコントロールを追加することができます。さらに多くのコントロールが必要な場合は、お問い合わせください。それとも、スクリプトでパスを自動生成したいですか?renderStacksのすべての機能にMaxscriptでアクセスすることができます。

renderStacks は、ユーザー間でセットアップデータを簡単に保存して共有する方法も提供しています。アーティスト間で選択したパスを保存してマージすることもできます。

 

トークン

もう出力パスを入力する必要はありません。様々な組み込みトークンでルールを設定するだけです。おそらくそれ以上のものは必要ないでしょう。しかし、本当に個性的な花を咲かせたいのであれば、独自のトークンを作ることもできます。出力名を一度設定して、起動時のRenderStacksファイルに保存するだけです。これで、出力ダイアログを開く必要がなくなります。

 

自動で汎用的なサードパーティのサポート

レンダラやプラグインを選択して、RenderStacks がどんな素晴らしい新しいオプションをサポートするかを待つ必要はありません。その機能がMaxscriptに公開されている限り、RenderStacksは自動的にそれらの機能を確認し、使用できるようにします。

現在、VRay, Arnold, Corona, Redshift, FStorm, ART, Scanlineを完全にサポートしています。しかし、ほとんどの機能はどのレンダラーでも動作します。

 

外部ファイルを使用しません。プラグインなし

renderStacksは必要なものをすべてmaxシーンファイルに保存します。外部ファイルを扱う必要はありません。また、RenderStacksのデータはパスのために実行する必要がある命令のシーケンスに過ぎません。レンダーノードに何もインストールする必要はありません。シーンファイルをクライアントやサードパーティのレンダーファームに送りたいですか?パスを有効にしてファイルを保存するだけです。クライアント側やレンダーファームでは何も必要ありません。

 

本当にアーティストのために。スクリプトは必要ありません。

私たちが出会った3dsMaxアーティストのほとんどは、スクリプトを知らないし、やりたくもありません。ユーザーがスクリプトを必要とするなら、なぜ renderStacks が必要なのでしょうか? 自分たちで作ればいいのに。私たちは、アーティストは必要なことを何でもできるようにすべきだと確信しています。私たちは、UIを通してすべてのものにアクセスできるようにするために多くの努力をしてきました。

 

レンダリングのためだけではありません

最後に、renderStacksは単なるレンダーパスマネージャではありません。単にレンダリングを提出するだけではありません。流体シミュレーションのために様々なシミュレーション設定の組み合わせを実験する必要がありますか?変更した内容を覚えるためにメモを取る必要はありません。シミュレーションパラメータを設定し、RenderStacksパスを作成するだけです。 シミュレーションパラメータはRenderStacksパスと一緒に保存されます。シミュレーションを実行して、別のシミュレーションを試したい場合は、シミュレーションパラメータを変更して、別のRenderStacksパスを作成し、シミュレーションを再度実行してください。 最初のシミュレーションの結果が良い場合は、最初のRenderStacksパスを有効にしてください。 モデリング中にシーン内のすべてのTurboSmoothをオン/オフするにはどうしたらいいでしょうか?"モデル "パスと "プレビュー "パスを作成し、RenderStacksですべてのTurboSmoothをオン/オフすることができます。 基本的には renderStacks を使って、異なるパラメータの状態を切り替えることができます。

 

現在の pmodifier リスト

  • アライメント - オブジェクトの親とトランスフォームごとのアライメント
  • アニメーション範囲 - アニメーションの開始フレームと終了フレーム
  • 大気 - 大気のオン/オフごとに
  • BackBurner - バックバーナーのサブミット
  • カメラ - カメラ, 開口部幅
  • Deadline - すべてのDeadline 設定
  • 環境 - 環境ダイアログの共通パラメータのすべてのパラメータがロールアウトされます
  • 露光 - 露光制御の全パラメータ
  • FrameRange - スキップフレームをサポートしたフレーム範囲をレンダリングする
  • LightOn - ライトのオン/オフごとに
  • ManyObjParams - オブジェクトのすべてのパラメータは,動的なオブジェクト選択で修飾子を含みます
  • マテリアル - オブジェクトごとにマテリアルを割り当てます
  • ObjParams - オブジェクトのすべてのパラメータに修飾子が含まれます
  • ObjPropsDisplay - オブジェクトのグループごとのオブジェクト表示プロパティ
  • ObjPropsRender - オブジェクトのグループごとのオブジェクトレンダリングプロパティ
  • RenderCommon - レンダーダイアログのコモンタブのすべてのパラメータ
  • RenderElement - 要素をレンダリングする際のオン/オフを設定する
  • RenderOutput - 3dsMaxフレームバッファまたはトークン付きVRayフレームバッファを介して出力をレンダリングします
  • Renderer - パスごとにレンダラを切り替えます
  • RendererParams - 任意のレンダラーのすべてのパラメータ
  • 解像度 - ワンクリックオーバースキャンをサポートする解像度
  • Transform - オブジェクトごとの変換
  • VRayOverrideMtl - 動的オブジェクト選択機能を持つグローバルVRayオーバーライドマテリアル
  • VRayRenderMask - 動的オブジェクト選択機能を持つVRayRenderMask
  • ViewportBackground - ビューポートの背景
  • 可視性 - オブジェクトの非表示/非表示

これはv1のためだけのもので、今後もっと多くのpmodifierが登場します。

Tips

modoのIntel Open Image Denoise使ってみた

modo 14.1から追加されたIntel Open Image Denoise使ってみた。modoには何種類かデノイズが搭載されてますが、Intel Open Image Denoiseは他のデノイズに比べて良好な結果が得られます。

特に新しく搭載されたmPathはパストレーサーであるため、以前から搭載されている放射度キャッシングを使用したランダラーに比べてノイズが多く発生します。mPathとデノイズの組み合わせは効果的そうです。
(放射度キャッシングを使用しない場合はモンテカルロパストレースを行うので、設定によっては以前からあるレンダラーでもデノイズは有効です)

 

比較

デノイズなし

 

Intel Open Image Denoiseあり。屈折ラフネスやソフトシャドウのノイズが綺麗に除去されます。

 

デノイズなし

 

Intel Open Image Denoiseあり。反射のサンプリングが足りなくてノイズになってるピクセルが綺麗になってます。

 

デノイズの比較

ついでなので、各デノイズを比較してみました。Intel Open Image Denoiseが一番実用的だと思います。

 

デノイズなし

デノイズのテストに使用したシーン、レンダラーはmPathで「最高品質」は8サンプルと低めに設定しました。レンダリング時間は4分、全体的にノイズがのってます。

左の円柱はバンプを使用した質感で、右2つはディスプレイスを使用。

 

サンプリングを256に上げた画像、レンダリング時間は8分。デノイズを使用していないため正確なレンダリング結果と言えます(参考用)。

 

Occlusionマテリアル「オクルージョンレイ」12。「最高品質」8サンプル。

 

Occlusionマテリアル「オクルージョンレイ」256。「最高品質」256サンプル。

 

Intel Open Image Denoise

Intel Open Image Denoiseはディープラーニングベースのノイズ除去フィルターで、デノイズの中で最も良好な結果が得られました。

右下のメタルな質感で、細かな凹凸がデノイズによって筋状の流れになってしまってます。左の円柱のスペキュラが強い部分が若干ぼけてる。

 

NVIDIA OptiX

NVIDIA OptiX AI-Accelerated DenoiserはAIとGPUを使用したデノイズです。Intel Open Image Denoiseに比べると若干ノイズが残りやすいようです。左のバンプを使用した質感と相性がよくないようです。

 

AMD AI

AMD AI-accelerated denoisingは機械学習を使用したGPU対応のデノイズです。 様々なフィルターを搭載したライブラリであるためか、全体的にデノイズの品質はよくないです。

 

AMD Wavelet

複数の画像(カラー、サーフェース法線、深度、サーフェースID)を使用するデノイズフィルターです。デフォルト設定だとフィルターが強すぎるようです。

 

AMD Bilateral

複数の画像(カラー、サーフェース法線、深度、サーフェースID)を使用してバイラテラルによるデノイズを行うフィルターです。バイラテラルはAfterEffects等にも搭載されてるエッジを残すようにブラーするフィルターです。

 

AMD Median

従来のよくあるデノイズフィルターのようです。

 

デノイズは細かなテクスチャやバンプが苦手なようです。また、オクルージョンのような単色の画像では、よいデノイズが得られませんでした。デノイズは短いレンダリング時間でそこそこの結果が得られるので、テストレンダリングに最適だと思いました。

デノイズはあくまで近似のため、サンプリングを上げてレンダリングした方が正確なレンダリングになります。またHDRがクランプされることもあるようなので、使えるシーンで効果的に使っていきたいですね。

 

参考

CG News

EmberGenFX for OctaneRender ベータ版リリース

EmberGenFX for OctaneRender ベータ版がリリースされました。OctaneRenderサブスクユーザーはベータ期間中無料で利用できるようです。EmberGenFXとOctaneRender の統合バージョンの価格やリリース日は発表されてませんが、JangaFXによると標準のOctaneRenderサブスクリプションの有料アドオンになるらしいです。

レンダリング品質がいいですね。元NewTekでLightWaveの開発に携わってたLinoがデモビデオを公開してます。

https://render.otoy.com/forum/viewtopic.php?f=7&t=75386

 

EmberGenFXスタンドアロンの完全な商用ライセンスが追加料金なしで利用可能になりました。パブリックベータ期間中のすべてのOctaneRender 2020サブスクライバーが利用できます。

最終リリース時に、OTOYサブスクライバーはEmberGenFX(およびその後のLiquiGenFX)をBlender、Maxon Cinema 4D、3DS Max、Maya、Unity、Unreal、NukeなどのすべてのOctaneRender DCCプラグインに直接統合する機能を備えた、完全なEmberGenFXスイートにアップグレードするオプションを利用できます。

EmberGenFXパブリックベータ機能

  • リアルタイムの反復モーショングラフィックスワークフローとゲームボリュームに関する中間ベーキングプロセスをバイパスする、プロシージャルベースのパーティクルと流体シミュレーション
  • すべてのOctaneRender DCC統合で使用するVDBファイルとしてエクスポート
  • イメージシーケンスとボリュームのVDB、PNG、TGA、EXRエクスポートのサポート
  • シミュレーションおよびアニメーションキーフレーミング中に、EmbergenFXビューポートで完全にインタラクティブなリアルタイムレイマーチボリューム

 

更新履歴

  • 実験的なGPUパーティクル。GPUパーティクルが基礎となるシミュレーションデータを使用して移流される新しいレンダリングモード。単独で使用することもハイブリッドモードでボリュームレンダリングと一緒に使用することもできます。
    このモードは不安定で、一部の機能が不完全である可能性があります。ボリュームノードのGPUパーティクルにアクセスするには、レンダリングモードのドロップダウンでGPUパーティクルを選択します。「GPUP」で始まるプリセットは、これらの新しいGPUパーティクルを使用することを意味します。
  • イメージをエクスポートするためのアルファブレンディングが改良されました。描画モードは、SettingsではなくCaptureノードに表示されるようになりました。
    また、Straight Alphaモードには、透明な背景カラーの基本的な塗りつぶし形式があり、描画後のカラーは以前よりもわずかに良くなっています。
  • 個々のウィンドウのサイズを変更できるようになりましたが、レイアウトはまだ変更できません。
    ビューポートのサイズを変更すると、レンダターゲットのサイズのプレビューが表示されます。これは、ビューポート内直接スクリーンショットまたは記録機能を使用したときに生成されるイメージのサイズになります。
  • 書き出しモードでは、カメラは操作できなくなりました。
  • 基本的なログシステムを追加しました。毎日エンコードされるログは、「ログ」フォルダに表示されます。
  • 基本的なタイルレンダリングが追加されたため、長いレンダリングを実行してもUIの停止が少なくなり、最悪の場合、時間がかかりすぎてOSがドライバを強制的にクラッシュさせて回復させるためにクラッシュすることがなくなりました。
  • すべての書き出しイメージノードが完了したら、シミュレーションを一時停止するオプションを追加します。
  • EmberGenFXの起動時に更新された有効期限をチェック
  • タイムラインのズーム機能の改善
  • ノードグラフの相互作用の改善
  • ウィンドウタイトルのリフレッシュレートが向上しました。
  • 合計19の新しいプリセットが追加されました。
CG News

V-Ray 5 for 3ds Max リリース

V-Ray 5 for 3ds Max がリリースされました。
https://www.chaosgroup.com/vray/3ds-max/whats-new

レンダリングを超えて

V-Rayでプロジェクトをポスト処理する。

ライトミキシング

リアルタイムでインタラクティブにライティングの可能性を探ります。新しいV-RayフレームバッファーでLightMixを使用し、レンダリング後のライティングの変更を自由にテストし、順列を保存し、シーンに必要な改善を戻します。

 

レイヤードコンポジション

新しいレイヤーコンポジターを使用すると、新しいV-Rayフレームバッファーで画像を直接微調整し仕上げることができます—別のポスト処理アプリは必要ありません。

 

無限の創造性を探る

ワークフローを最適化する。

マテリアルマネージャー

金属、ガラス、木材など、500以上のレンダリング可能なマテリアルのライブラリから効率的に閲覧します。

 

マテリアルプリセット

アルミニウム、クロム、ガラスなどのプリセットで一般的な材料を作成する時間を節約できます。

 

材料プレビュー

新しいレンダリングされたマテリアル見本は、マテリアルがどのように見えるかを正確に示します。

 

コートレイヤー

更新されたV-Rayマテリアルに反射コーティングを直接追加すると、ブレンドマテリアルを使用した場合と比較してマテリアルの作成とレンダリング時間の両方を節約します。

 

シーンレイヤー

更新されたV-Rayマテリアルの新しい光沢オプションを使用して、ベルベット、サテン、シルクなどの柔らかいマイクロファイバー生地を作成します。

 

テクスチャのランダム化

新しいVRayUVWRandomizerマップと、拡張されたVRayMultiSubTexコントロールでシーンに多様性を追加します。

 

確率的テクスチャタイル

VRayUVWRandomizerの新しいストキャスティックタイリングオプションを使用して、テクスチャタイリングアーティファクトを自動的に削除します。

 

拡張V-Rayダート

強化されたV-Ray Dirtにより、すき間の風化した筋や汚れが簡単になり、アンビエントとインナーの両方のオクルージョンが採用されました。

 

新しい太陽と空のモデル

新しい太陽と空のモデルを使用して、太陽が地平線の下にあるときの薄明の微妙さを再現します。

 

更に

ライトパス エクスプレッション

ジオメトリだけでなく、光の動作を使用して非常に効率的な合成のための柔軟なマスクを作成します。ビルトインのプリセットにより簡単に始めることができますが、究極の制御のためにスクリプトが用意されています。

 

ブルーノイズサンプリング

少ないサンプルでより良いノイズ分布を実現します。

 

ネイティブACESCGサポート

テクスチャ、分散、太陽と空、および光の温度の色の自動色空間調整を使用したレンダリングには、業界標準のACEScgを選択します。

 

最初のアウトオブコア

大きなシーンを処理する初期のアウトオブコア実装。

 

 

リリースノート

新機能

  • LightMix:VFB2にライトの後処理のサポートを追加
  • V-Ray
    • ファイル名からテクスチャ色空間を認識するオプションを備えたACEScg色空間でのレンダリングのサポート
    • 大きなシーンをレンダリングするときの精度を向上
    • 接線法線マップのMikkTSpaceサポート
    • VFB2の新しいバージョンの通知とレンダリング設定についてセクション
    • V-Ray AppSDK Pythonバインディングをインストールに含める
  • V-Rayアセットブラウザ:V-Rayマテリアルライブラリ用のマテリアルライブラリブラウザユーティリティ
  • V-Rayマテリアルライブラリ:スタンドアロンとインストールの一部の両方で機能するマテリアルライブラリダウンローダーを追加
  • V-Rayマテリアルプレビュー:カスタム.vrsceneでマテリアルプレビューをレンダリング
  • VRayMtl:コート層と光沢層を追加、簡単なプリセットを追加
  • VRayHairNextMtl:簡単なプリセットを追加
  • VRayCarPaintMtl2:より正確なフレークフィルタリングとメモリ使用量の削減を備えた新しいカーペイント材料を追加
  • VRayUVWRandomizer:VRayBitmapとVRayTriplanarTexのマッピングソース入力でのみ使用する必要があるtexmapを確率的タイリングサポートとともに追加
  • VRayMultiSubTex:ランダム化された色相、彩度、ガンマ分散オプションを追加、新しいランダムな面マテリアルID /オブジェクトID /要素モードを追加
  • VRayBitmap:VRayHDRIの名前をVRayBitmapに変更
  • VRayCompTex:新しい描画モードを追加。カラーシフト、カラーティント、ブレンドアルファストレート、ブレンドアルファプリマルチプライド
  • VRayTriplanarTex:VRayBitmapのマッピングソースとして使用する機能
  • VRayPointCloudColor:PointCloudカラーチャネルをサポートするマップを追加
  • VRayLightSelect:環境照明のサポート
  • インストーラ:統合されたバンドル製品での新しいインストーラーエクスペリエンス:Chaos License Server、Chaos Cloudクライアント、V-Ray Material Library
  • V-Ray GPU
    • Out-of-Coreコードパスのサポートを追加
    • 2D変位のサポート
    • フォグモードでのPhoenix FDパーティクルシェーダーのレンダリング
    • OSLシェーダーのサポートを追加
    • セルラーマップのサポートを追加
    • BerconTilesおよびBercon Woodマップのサポートを追加
    • デバイスごとのGPUメモリトラッカーを実装
    • プログレッシブサンプリングによる再開可能なレンダリング
    • VRayNormalMap回転パラメーターのサポートを追加
    • VRayLightSelectの環境と自己照明の貢献をサポート
  • V-Ray:VRayLightSelectのモードを介してライトパスエクスプレッションのサポートを追加
  • V-Ray:カラー管理でVRayBitmapオプションのRGBプライマリオーバーライドを追加
  • V-Ray:DMCサンプラーのブルーノイズ最適化を実装
  • VRayNormalMap:マップ回転パラメーターを追加
  • VRayPhysicalCamera:EVパラメータを追加
  • VRayProxy:VRayInstancerおよびPhoenix FDで使用できるAlembicの共通パーティクルインターフェイス(IParticleObjExt)をサポート
  • VRaySun:改良されたSkyモデルを実装
  • VRayVolumeGrid:速度ストリームラインプレビュー
  • VFB2
    • レイヤー合成を統合したVFBのまったく新しい実装を追加
    • 背景色補正
    • フィルムトーンマップカラー補正
    • 保存されたシーン名とメモテキストに基づく、履歴内の画像検索
    • ソロボタンAlt +マウスクリックで1つのライトのみが有効になり、残りはすべてLightMixでトグルします。
    • 他の要素にないすべてを含むLightMixの特別な要素「Rest」
    • メモリフレームバッファーなしのレンダリングのサポート
    • レイヤーアクションを元に戻す
    • ホワイトバランスの色補正にマゼンタグリーンの色合いのスライダーを追加します
    • 履歴が保存されたレンダリング設定の読み込みと比較
  • .vrsceneエクスポーター:選択したノードのみをエクスポートするオプションを追加
  • V-Rayシーンコンバーター:Physical MaterialからVRayMtlへのコンバーターを実装
  • VRayDirt:ストリーク生成オプションを追加

 

変更された機能

  • V-Ray
    • グローバルスイッチからのMikkTSpace計算を有効にするUIオプションを追加
    • UIオプションを追加して、ネイティブ3ds Maxマテリアルスウォッチに切り替えます
    • OCIO構成を使用する場合、sRGBとACEScgの色空間間の変換を最適化します
    • 古いスイッチのいくつかをグローバルスイッチから削除しました
    • グローバルDMCからUse local subdivsを削除し、それに依存していたブルートフォースGI、マテリアル、ライトのsubdivsパラメーターを削除します
    • カラーマッピングオプションを簡素化
    • Lightキャッシュオプションを簡素化
  • V-Ray Cloud
    • VRayDistanceTexのアニメーションパラメータが適切にエクスポートされません
    • 静止間隔が大きいジオメトリのアニメーション位置が異なります
    • V-Ray GPU:tyFlowインスタンスレンダリングの初期サポートを追加
  • V-Ray:VRaySunのより高速な計算
  • V-Ray GPU
    • エンジンタイプがRTXの場合、アウトオブコアレンダリングを自動的に無効にします
    • VRayVolumeGridのBoxサンプラータイプを実装します
    • VRayUVWRandomizer確率的タイリングオプションのサポートを追加
    • CPUとGPUの両方でモーションブラージオメトリのメモリフットプリントを最適化
    • Embreeツリーをシリアル化するときに退化した顔をスキップします
    • VRayObjectPropertiesによるマットオブジェクトのサポート
    • VRayCarPaintMtl2およびVRayFlakesMtl2のサポート
  • V-Ray GPU IPR:チルトとシフトのパラメーターを微調整したカメラがある場合の無限の更新
  • V-Ray Standalone:VFB2では画像バッファーのレンダリングは実装されていませんが、処理された出力は書き込まれます
  • VRayDenoiser:「Generate render elements」UIオプションを削除
  • VRayBitmap:法線マップの伝達関数とRGB色空間を自動的に設定します
  • VRayLightSelect:サブサーフェスモードを追加
  • VRayMtl
    • ツールチップをいくつか追加
    • シーンベースのファブリックプリセットを追加
    • 「デフォルト」のプリセットを追加
    • すべてのNDFベースのBRDFにGGXシャドウイングを使用します
  • VRayOSL:サポートされていないOSLシェーダーパラメーターの警告を出力します
  • VFB2
    • 「なし」オプションを追加して、ステータスバーの二次色情報を非表示にします
    • 履歴画像を読み込むための進行状況バーを追加します
    • 画像のフィッティングタイプオプションと[画像に保存]を背景レイヤーに追加します
    • 履歴比較ボタンを1つのフライアウトボタンにグループ化します
    • レンダラー統計を実装します
    • 保存時に元のRGBチャンネルを保持します
    • シーンに依存しない永続的な設定を保存します
    • V-Ray Cloudの色補正と設定転送のサポート
    • バケットアウトラインの改善
    • 履歴とロードされた画像のノイズ除去を有効にします
    • さまざまな使いやすさの向上
  • V-Rayアセットブラウザー
    • インポート時に「実世界スケールを使用」および「トリプラナーマッピングを使用」オプションを追加
    • 「ME」ボタンの名前を「わかりやすくするためにMEを開く」に変更して、よりわかりやすくしました
  • V-Rayシーンコンバーター:シーン変換後に表示されたマテリアルのスレートマテリアルエディターに変換されたマテリアルノードを配置します。
  • V-Rayツールバー:V-Rayツールバー。vrenderXXXX.dlrディレクトリに関連して、ネットワークインストールを支援するアイコンファイルを探します。
  • VRayALSurfaceMtl:アーティファクトを引き起こすSSS半径パラメーターの値を防止します
    VRayVolumeGrid:グリッド速度を持つフレームをタイムベンドコントロールとブレンドするための速度を上げ、メモリ使用量を減らします
  • VFB2 / VFB:Render LastではなくRenderコマンドを実行するためのRenderボタン
  • VFB:サポートされているすべての形式を、画像を読み込むためのデフォルトのフィルターとして使用します
Tips

modoのシェーダーノードでレンズディストーションエフェクト

modoのシェーダーノードを使って、カメラのレンズゆがみのような効果を制御する方法が解説されてたので写経してみました。

カメラの回転とShader Inputのレイ方向をそろえた後、レイ方向のXYを任意に編集した結果をRayCastでFinal Color Outputに戻すというのが基本的な流れのようです。

 

球面

球面のようにレンダリング。

サンプルファイル

 

ディストーションのカーブ制御

カーブを使用してゆがみ制御。

サンプルファイル

 

ディストーションのテクスチャ制御

テクスチャを使用してゆがみを制御。

サンプルファイル

 

レイ方向を制御する方法はポストエフェクトによるゆがみと異なり、ピクセルが荒くなったりせずシャープな画像を維持できるのがメリットです。しかし、欲しいゆがみを計算で求めるのが難しいです。
シェーダーノードはレンダリングも遅いので、テクスチャオフセットのように、もう少し手軽に使えるような機能があると嬉しいですね。

 

参考

詳細な解説をしてくれた館長さんに感謝です。

 

Tips

modoでEmberGenのシミュレーションデータをレンダリング

modoでEmberGenのシミュレーションをレンダリングしてみました。

EmberGenはGPUベースのリアルタイムのボリューム流体シミュレーションソフトです。JangaFXのサイトにはEmberGenで作成されたシミュレーションデータがいくつか公開されています。今回はガソリン爆発のサンプルをmodoでレンダリングしてみた。
https://jangafx.com/software/embergen/download/free-vdb-animations/

 

EmberGenのシミュレーションは90°回転した状態で読み込まれるのでVDBアイテムを回転して位置を調節してます。
VDBファイルを読み込む場合は0フレーム目のファイルを選択します。途中のフレームのファイルを選択して読み込むと、選択したフレームからシミュレーションが再生されます。

 

VDBをレンダリングする場合は、Volumeの「ボクセルソース」にVDBを接続します。

 

質感はGradientを使用してルミナンスを設定しました。Gradientにはmodo 10.2からFluid関連の入力が追加され、Fuel、Fuel、Temperatureを細かく制御できるようになっています。

 

最初にデフォルト設定でレンダリングしたとき、ボクセルグリッドの四角形状やフリッカーが目立ってました。VDBの「ボクセルフィルタ」を設定したら少し軽減された気がします。

フィルターなし。

フィルターあり。

ボクセルフィルターの比較、上がフィルターなし。フィルターを使用するとボリュームの密度が変わってしまいますが、フィルターを使用すると細かなノイズのようなボクセルが軽減されるように見えます。

 

同じデータをArnoldでレンダリングしたもの。Arnoldはフィジカルベースのボリュームシェーダーを搭載しているので、少ないパラメータで見栄えのよい煙や炎の質感を作ることができて便利です。レンダリングも速い気がします。

 

modoとArnoldのレンダリングを比較、上がArnoldのレンダリング。

modoはボクセルグリッドが目立ちます。Arnoldのボリュームシェーダーにはボクセルの補間オプションがあって、煙の表面を滑らかにすることができるのですが、残念ながらmodoには補間のパラメータがありません。

また、modoのボリュームは透明に近いボクセルを省略してレンダリングしてるような印象を受けます。画像右ではフレームを間違えてるのかと思うほど薄いボリュームがレンダリングされていません。VDBのGL表示は薄い部分も確認できるので、ボリュームレンダリングを高速化のための工夫なのかもしれません。

 

EmberGenのシミュレーション結果をmodoで使用することはできますが、レンダリングの品質についてはEmberGenの設定を含めて確認する必要がありそうです。
EmberGenはOctaneRenderと提携を発表してるので、Octaneでどのように活用されるのか気になりますね。

 

参考

参考資料

NVIDIA Marbles RTX

NVIDIAがMarbles RTXと呼ばれるシミュレーションとリアルタイムGPUレンダリングのデモ映像を公開しています。デモはプレイ可能なゲーム環境で、動的な照明と豊富な物理ベースのマテリアルでリアルタイムの物理を表示します。

MarblesはOmniverseのアーティストとエンジニアの分散チームによって作られ、VFX+の高品質なアセットを完全に物理的にシミュレートされたゲームレベルに組み立てています。リアルタイムで実行するための「ゲーム化」アートアセットから一般的に生じる品質と忠実性を犠牲にすることはありませんでした。

Marblesは単一のQuadro RTX 8000上で動作し、リアルタイムでレイトレースされた世界の複雑な物理をシミュレートします。

Tips

modoのプロシージャル頂点マップ

Foundryのフォーラムで面白いスレッドを見かけたので紹介します。

「Vertexmaps In The Mix」はmodo 14で追加されたプロシージャル頂点マップ活用法を共有しようというスレッドで、アニメーションからレンダリングまで幅広い活用方法が紹介されてます。
https://community.foundry.com/discuss/topic/151806/vertexmaps-in-the-mix?mode=Post&postID=1196476#1196476

スレッドでは様々なサンプルファイルが公開されてます。ファイルが公開されてないものから面白そうな物をまねしてみました。サンプルファイルを公開しておくので参考にどうぞ。

 

徐々に消えるウェイト

現状はウェイトマップを徐々に消えるような機能がありません。そこでパーティクルを使用して、メッシュとパーティクルが離れるにつれてウェイトが消えるようにするハック技です。

サンプルファイル

パーティクルの距離とウェイトの強さはテクスチャリプリケーターを使用しています。Constantはレイヤーを反転、または値を-100%に設定しないとウェイトが意図したように反映されないようです。理由は不明。

14.0ではウェイトをブラーする機能が搭載されてないため、全体的にウェイトが荒い印象になってしまいます。現在はTracerXにウェイトマップをブラーする機能があります。

 

メッシュのパートによるアニメーション

メッシュのパート(連結されたメッシュ)単位でウェイトを設定してアニメーションする方法です。

サンプルファイル

Falloff Operatorのポイントパートを使用して、Boxごとに0~100%のウェイトを適用します。ウェイト位置のアニメーションはmodo 13.2で追加されたグラディエントノードを使用して、Falloff OperatorのグラデーションをGradient Offsetを使用してアニメーションしてます。

 

プッシュデフォーマを使ったバージョン。上の内容と同じです。

サンプルファイル

Falloff Operatorが思いのほか便利だと気がつきました。最初のサンプルではトランスフォームデフォーマを使用しましたが、モーフマップを使用しておなじような表現を作ることもできます。

Falloff Operatorはジオメトリ情報を元にウェイト値を生成できるので、「ポリゴン面積」「ポリゴン平面率」などを使用した標準機能では作れない質感を作れる気がします。

 

 

以下は自分でテストしたものです。

 

広がるウェイト

選択した頂点からウェイトが広がる基本的な使用法です。

サンプルファイル

ソフトボディには「ゴールマップ」という、シミュレーションをおこなわない部分をウェイトで指定する機能があるのですが、残念ながらウェイトのアニメーションには対応してないようです。


クロスシミュレーションする範囲が広がったり、逆にクロスシミュレーションからシミュレーション前の形状に変化させるアニメーションを作りたいときもあるので、将来的にウェイトのアニメーションに対応してくれると嬉しい。

 

波紋

パーティクルでメッシュを変形する使用方法です。基本的には以前紹介したカーブフォールオフでメッシュ変形する方法と同じです。

サンプルファイル

「徐々に消えるウェイト」のようにテクスチャリプリケーターを使用しても同じことができますが、変形する時間を制御するのは、カーブを使用した方が扱いやすいと思います。

 

足跡

雪に足跡が残るような表現です。メッシュが細かいので重い。

サンプルファイル

足跡用のメッシュをアニメーションさせて、Select By Volume を使って足跡メッシュ内に含まれるポリゴンにウェイトを設定してます。

 

エッジウェイトのアニメーション

何に使えばいいのかわからないけど、とりあえずアニメーションしてみた。

サンプルファイル

 

ウェイトマップはデフォーマの変形以外にも、ウェイトマップテクスチャと組み合わせてレンダリングに使用できるのも便利です。UV展開しなくても頂点ペイント感覚でモデルに質感設定することができます。

ウェイトのブラーのようにまだ足りない機能もありますが、プロシージャルでウェイトを設定できるのはアニメーションで大いに役立ちそうです。

 

参考

Tips

modoの虹色マテリアル

modoの虹色マテリアルについて書いてみます。

modoには光の干渉による虹色(スペクトル)を表現するためのマテリアルが搭載されています。このマテリアルを使用するとCD、真珠、シャボン玉、金属の油膜や焼き色のような質感を手軽に作ることができます。

 

Iridescence Material と ThinFilm Material

modoにはIridescence(虹色)ThinFilm(薄膜)という2種類のマテリアルがあり、どちらも虹色の効果をシミュレートすることができます。
2つのマテリアル違いはパラメータの設定方法が異なるくらいで、「スペキュラ」「反射」に限定すれば、ほぼ同じようなレンダリング結果になります。ThinFilmはフレネル反射が強いようで少し明るく見えます。

マテリアルの特長は以下の通りです。

Iridescence Material

  • 虹色の繰り返し回数を「波長」カーブと「nanometers」で制御
  • 虹色は「ディフューズ」「スペキュラ」「反射」「透過」「ルミナンス」で個別に設定可能

ThinFilm Material

  • 虹色の繰り返し回数を「厚み」で制御
  • 虹色は「スペキュラ」「反射」に限定した動作

基本的には細かく制御できるIridescence Materialがおすすめです。Gradientを使用しても手動でグラデーションを設定することもできますが、光のスペクトルを表現したい場合はIridescence Materialが手軽で便利です。

Iridescence Material にはThinFilm Materialにある「厚み」が無いように見えますが、チャンネルビューポートのnanometersで設定することができます。レイヤーエフェクトの「虹色」は「nanometers」チャンネルに影響してます。「厚さ」による色の変化はArnoldのマニュアルなど他のソフトのサンプルが参考になります。

 

Iridescence Material と ThinFilm Materialは「グループマスク」「レイヤーマスク」が使用出来ないので、マテリアルをマスクする場合はチャンネルごとレイヤーエフェクトを設定する必要があります。

マスクしたい箇所はウェイトマップを使用すると便利です。

 

ThinFilm Material を使用する場合は「屈折率」を1.0に設定するとレンダリングエラー(黒いピクセル)が発生するので、テクスチャを使用する場合は1.0にならないように注意する必要があります。

Iridescence Materialを使用すると金属の質感がリアルになるのでおすすめです。レザー素材にもいいらしいですよ。

 

テンパーカラー

 

油膜

 

亜鉛メッキ

 

ステンレス

 

追記

modo 14.1からIridescenceなどカスタムマテリアルをグループマスクすることが出来るようになりました。

 

 

参考

参考資料

MAVERICKRENDER GRADIENT LIGHTS PRESENTATION

Maverick Renderのグラデーションライトの紹介ビデオ。HDR Light Studioっぽい機能ですね。カーブUIのグラデーション表示が使いやすそう。
https://maverickrender.com/gradient-lights/

グラデーションライト

Maverick Studioは、実物に近い製品の視覚化に関するものです。そして、その名前自体が示唆するように、完璧で使いやすいスタジオ製品照明は当社のソフトウェアの主な目標です。
Maverickはライトオブジェクトを作成および再配置する強力なツールを最初から提供しています。しかし、これらのパネルとスポットライトによって実際に照射される照明がソフトボックス、傘などの形をしている場合に、最良の結果が得られます。実際の写真スタジオのように。

シェイプのライブラリを作成しても私たちにとって十分な気分ではありませんでした。そこで、想像を絶するスタジオライトの形状を作成できる、非常に柔軟で完全にカスタマイズ可能なプロシージャノードを作成することにしました。しばらくしてマップ自体に入ります。しかし、プレゼンテーションビデオは、この新しい機能がどれだけの力をもたらすかをわずか60秒で理解できるほど説明的でなければなりません。

 

参考資料

Chaos GroupのProject Lavinaオープンベータ開始

Chaos Groupが2019年のシーグラフでデモしていたProject Lavinaのオープンベータが開始されました。使用するには利用可能なV-Ray Next Renderライセンス(V-Ray Next製品に付属)が必要です。
https://www.chaosgroup.com/lavina

このソフトウェアはNvidia RTXグラフィックスカード使用する、RTXの技術プレビューとして2018年のシーグラフで発表していました。

Vrayシーンをロードして、レンダリングするオブジェクト、カメラ、または環境ライティングを編集することができます。Project Lavinaは主にV-Rayシーンのルックを反復したり、肩越しのレビューで探索したりするための環境として意図されています。

ユーザーは非常に大きな.vrsceneファイルをLavinaに非常にすばやく読み込むことができます。ChaosGroupはV-Ray自体で開くのに数分かかるシーンが数秒で読み込めると話してます。

現在はマテリアルを編集したりライトを配置したりすることはできませんが、新しいアセットをマージして、インタラクティブに配置またはスケーリングし、LUTまたはHDRIマップを読み込んでシーンの照明を変更することができます。

静止画やウォークスルーをリアルタイムで、または高品質のオフラインレンダリングとして生成するだけでなく、LavinaでV-Rayレンダリングのカメラ位置を設定する環境として使用できます。

Tips

Mayaのバッチレンダリングをバッチコマンドで便利にする

Mayaのコマンド ライン レンダラを使用したバッチレンダリングのしかたを紹介したことがありますが、今回はその応用編として、バッチコマンドを使用してMayaのバッチレンダリングを少し使いやすくする方法について書いてみます。

 

MayaはメジャーバージョンやSPごとに細かな不具合が多く発生します。このためコマンド ライン レンダラを使って各Mayaバージョンでレンダリングを実行し、どのバージョンからバグったか調べたりします。
しかし、Mayaは基本的にデザイナーに優しい動作をしないため、Maya標準動作が不便に思うことが多々あります。そこでバッチコマンドを使用して、Mayaのバッチレンダリングを少し使いやすくする方法を紹介したいと思います。

以下は指定したファイルをレンダリングする、基本的なバッチファイルの記述です。これを元に使いやすくしていきます。

"C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r sw -s 1 -e 120 -of png -log "C:\BatchFolder\Output\Cut001.log" -rd "C:\BatchFolder\Output" "C:\BatchFolder\Cut_001.ma"

 

バッチ実行後にウィンドウを閉じないようにするコマンド

cmd /k

通常コマンドプロンプト ウィンドウは、バッチファイルのコマンドを実行すると自動的にウィンドウが閉じます。バッチファイルの最後にコマンドを追加すると、コマンドプロンプト ウィンドウが閉じなくなります。

基本的になくてもよいですが、バッチの実行結果を確認したい時に使用します。バッチファイルが意図した通り動作するまではコマンドを入れておくとよいです。

"C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r sw -s 1 -e 120 -of png -log "C:\BatchFolder\Output\Cut001.log" -rd "C:\BatchFolder\Output" "C:\BatchFolder\Cut_001.ma"
cmd /k

 

変数 コマンド

set

変数を設定するコマンドです。
変数とは「値」や「文字列」を出し入れできるアイテムボックスみたなもので、「値」や「文字列」に好きな名前をつけてバッチファイル内で使うことができるようになります。

例えばログファイルと画像ファイルを同じ名称にしたいとき、バッチファイル内を2箇所書き換えるのが面倒です。そこでバッチファイル内で変数を定義し「set FileName=Cut001」、置換したい箇所に変数の展開「%FileName%」を記述します。下の例では変数「FileName」を「Cut001」という文字列に置き換えられてバッチが実行されます。

set FileName=Cut001
"C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r sw -s 1 -e 120 -of png -log "C:\BatchFolder\Output\%FileName%.log" -rd "C:\BatchFolder\Output\%FileName%" "C:\BatchFolder\Cut_001.ma"

レンダリングに使用するシーンファイルなど、書き換える頻度が高いものを変数として使用すると便利です。

set MayaFile=BatTest.ma
set FileName=Cut001
"C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r sw -s 1 -e 120 -of png -log "C:\BatchFolder\Output\%FileName%.log" -rd "C:\BatchFolder\Output\%FileName%" "C:\BatchFolder\%MayaFile%"

 

カレントディレクトリ コマンド

%~dp0

バッチファイルのあるディレクトリを指定するコマンドです。
バッチファイルとMayaファイルを同じディレクトリで管理して使用するとき、画像ファイルの出力先のパスを毎回書き換えるのは面倒です。相対パスで記述しておけばパスを書き換える必要がなくなって便利です。

例えば下の画像のようにバッチファイルとMayaファイルを同じディレクトリに入れて使用するとします。

絶対パスでは「C:\BatchFolder\Cut_001.ma」のような記述になりますが、相対パスでは「%~dp0\Cut_001.ma」で済みます。

set MayaFile=Cut_001.ma
set FileName=Cut001
"C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r sw -s 1 -e 120 -of png -log "%~dp0\%FileName%\%FileName%.log" -rd "%~dp0\%FileName%" "%~dp0\%MayaFile%"

 

フォルダ作成 コマンド

mkdir

フォルダを作成するコマンドです。
Mayaは画像の出力先のディレクトリがなかった場合、自動的にフォルダを作成してくれます。しかしログ作成「-log」はフォルダを作成してくれません。このためログファイルを出力する場合はあらかじめフォルダを作成する必要があります。

下の例では変数を使用してフォルダを作成してます。

set MayaFile=BatTest.ma
set FileName=Cut001
mkdir %FileName%
"C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r sw -s 1 -e 120 -of png -log "%~dp0\%FileName%\%FileName%.log" -rd "%~dp0\%FileName%" "%~dp0\%MayaFile%"

 

ファイル削除コマンド

del

ファイルを削除するコマンドです。
ログ作成は「-log」は、レンダリングを繰り返すたびファイルにログを追加し続けます。私の場合は最新のログしか必要ないので、レンダリング前にログファイルを削除します。

set MayaFile=BatTest.ma
set FileName=Cut001
mkdir %FileName%
del %FileName%\%FileName%.log
"C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r sw -s 1 -e 120 -of png -log "%~dp0\%FileName%\%FileName%.log" -rd "%~dp0\%FileName%" "%~dp0\%MayaFile%"

 

バッチファイルを参照する

call

バッチファイルから別のバッチファイルを呼び出すコマンドです。
例えばMayaのバージョンを変数で管理したいとき以下のように記述します。Mayaのバージョンが多くなると見にくくなると思います。

set Maya2016=C:\Program Files\Autodesk\Maya2016.5\bin
set Maya2017=C:\Program Files\Autodesk\Maya2017\bin
set Maya2018=C:\Program Files\Autodesk\Maya2018.5\bin
set Maya2019=C:\Program Files\Autodesk\Maya2019\bin
set Maya2020=C:\Program Files\Autodesk\Maya2020\bin

set MayaVersion=2019
set MayaFile=BatTest.ma
set FileName=Cut001

call set MayaVersionPath=%%Maya%MayaVersion%%%
mkdir %FileName%
del %FileName%\%FileName%.log
"%MayaVersionPath%\Render.exe"-r sw -s 1 -e 120 -of png -log "%~dp0\%FileName%\%FileName%.log" -rd "%~dp0\%FileName%" "%~dp0\%MayaFile%"

Mayaのパスだけ別のバッチファイル「MayaPath.bat」に記述し、このバッチファイルを他のバッチファイルから参照することができます。

set Maya2016=C:\Program Files\Autodesk\Maya2016.5\bin
set Maya2017=C:\Program Files\Autodesk\Maya2017\bin
set Maya2018=C:\Program Files\Autodesk\Maya2018.5\bin
set Maya2019=C:\Program Files\Autodesk\Maya2019\bin
set Maya2020=C:\Program Files\Autodesk\Maya2020\bin

「call」を使用して他のバッチファイルを指定します。

call C:\BatchFolder\MayaPath.bat

set MayaVersion=2019
set MayaFile=BatTest.ma
set FileName=Cut001

call set MayaVersionPath=%%Maya%MayaVersion%%%
mkdir %FileName%
del %FileName%\%FileName%.log
"%MayaVersionPath%\Render.exe"-r sw -s 1 -e 120 -of png -log "%~dp0\%FileName%\%FileName%.log" -rd "%~dp0\%FileName%" "%~dp0\%MayaFile%"

Mayaのパスを分けるのはバッチファイルが長くなるのを避けることができることの他に、将来的にMayaのバージョンが増えた場合に、ファイルの書き換えが1ファイルの編集だけで済むというメリットもあります。考え方としては3Dソフトのリファレンス機能と同じです。

バッチファイル完成!これでバッチファイルの使い勝手がよくなりました。バッチコマンドを使いこなせば、フォルダ内の全てのMayaファイルを全てレンダリングするようなこともできます。

 

個人的にはバッチファイルやCUIは苦手なので使いたくないのですが、Mayaはスクリプトやらコマンドプロンプトやら色々知ってること前提のソフトなので、GUIベースのソフトで育った人には辛い。