Rendering

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を使用すると金属の質感がリアルになるのでおすすめです。レザー素材にもいいらしいですよ。

 

テンパーカラー

 

油膜

 

亜鉛メッキ

 

ステンレス

 

参考

参考資料

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ベースのソフトで育った人には辛い。

Tips

Mayaソフトウェアで頂点カラーをレンダリングする方法

Maya Softwareで頂点カラーをレンダリングする方法について書いてみます。

Maya単体では頂点カラーをレンダリングすることはできませんが、Maya Bonus Toolsに入ってるCv Color Shaderを使用すると、Maya Softwareで頂点カラーをレンダリングすることができます。
https://apps.autodesk.com/MAYA/en/Detail/Index?id=8115150172702393827&os=Win64&appLang=en

 

使用方法

1.メッシュに頂点カラーをペイントする。

 

2.Maya Bonus Toolsをインストールしてプラグインをロードする。

 

3.シェーダーのカラーアトリビュートのマップボタンをクリックしてCv Color Shaderを設定する。

 

4.レンダリングする。

 

頂点カラーがレンダリングできると、MASH Colorを使ってメッシュにランダムに色を設定することができるようになります。

 

トゥーン系のレンダリングでは、ArnoldのようなPBRでGI前提のレンダラーはレンダリングコストが高いように思います。GIが必要なければMaya Softwareのようなレガシーなレンダラーの方が速くて向いてる気がします。

Tips

modoで交差したオブジェクトの境界をやわらかくする方法

LightWaveで交差したオブジェクトの境界をやわらかくする方法についてツイートしてるのを見かけたのでまねしてみた。何となくそれっぽく動いた。

サンプルファイル

 

Raycastノードの「ヒットした距離」をリレーションシップで調整して透明にしてます。

ソフトパーティクルのように使おうと思ったら、Replicatorで複製されたメッシュ通しで透明になってしまった。パーティクルで使用するには、もう少し工夫する必要がありそう。

 

参考

CG News

OctaneRender 2020.1 XB1

Octane 2020.1がテストリリースされたようです。また、OctaneRenderは現在ブラックフライデーセール中のようです。元の価格いくらだっけ。

永久ライセンス

  • 12か月のメンテナンスプラン 699 €
  • 24か月のメンテナンスプラン 899 €

年間サブスクリプション

  • 22 .50€/月
  • 29 0.99€/月

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

新機能2019.2以降の新機能と改善点

  • Optix 7:主要なRTXの改善-安定性、速度、メモリフットプリント
  • ACES:新しいワークフローと画像コンテナーファイルレイアウト
  • Maxon Cinema 4D GPUノイズ:テクスチャ、ボリューム、OSL、Vectron、ディスプレイスメント
  • 新しいHosek-Wilkieスペクトルスカイモデル
  • パーティクルとストランドポイントの属性
  • ユニバーサルカメラ2:スプリットフォーカスと光学ケラレ
  • LiveDBのキュレートされたOSLプロシージャルシェーダー
  • Houdini 18 SolarisビューポートのHydraレンダーデリゲート
  • 高度なディスプレイカラー管理システム| OCIO
  • Round Edgesアーティストコントロールの改善
  • スカルプトロン
2019.1以降の新機能と改善点
  • SSSの改善とランダムウォークSSS
  • スペクトルヘアマテリアル
  • ボリュームサンプルの位置ディスプレイスメント
  • スペクトル領域/球体プリミティブ
  • ボリュームステップおよびシャドウステップ
  • 新しいユニバーサルダートシステム
  • Vectronボリューム

Hosek-Wilkie Skyモデル

Hosek-Wilkieモデルを日光環境に追加しました。特にかすんでいる条件や地平線に近い他の実装よりも、より現実的で詳細な結果を生成します。デイライト環境ノードのドロップダウンデイライトモデルをクリーンアップするために、Old Daylight ModelをPreetham Daylight Modelに、New Daylight ModelをOctane Daylight Modelに名前を変更しました。前と同じように、空の色と夕焼けの色。

Octane昼光モデルでのみ使用されますが、地色はHosek-Wilkieモデルの空の大気散乱にも含まれています。これは微妙ですが目に見える効果です。たとえば、森林の現実的な空をレンダリングするには地色を濃い緑色に設定し、雪の多い風景の現実的な空には地色を白に設定します。

Hosek-Wilkie 日光モデルの両方でレンダリング同じシーンの比較

ユニバーサルカメラ

新しいユニバーサルカメラは、他のOctane組み込みカメラの既存の機能の多くを公開し、次のような多くの新機能で拡張します。

  • 収差
  • 開口部のテクスチャ
  • キューブマップレイアウト(6×1、3×2、2×3、1×6)
  • ねじれ
  • 魚眼レンズ
  • DOF設定の改善
  • 光学ケラレ
  • スプリットフォーカスジオプター

カメラを2つの別々の領域にフォーカスできるスプリットフォーカス機能を使用したサンプルレンダリング。

カラー管理の表示

Octaneで使用するカラープロファイルを指定できるようになりました。ビルトインプリセットに加えて、ICCおよびICMプロファイルもインポートできます。これはすべてのプラグインとLua API経由でも利用できます。

 

ACESイメージコンテナーファイルレイアウト

Academy Color Encoding System(ACES)OpenEXRファイル(IEEE ST 2065-4:2013)のエクスポートのサポートを追加しました。Octaneスタンドアロンでは、これはレンダーパスエクスポートダイアログのオプションとして追加されました。現在のレンダリングに加えて、ディスクメニューに保存します。いつものように、これはすべてのプラグインとLua API経由でも利用できます。ビルトインCinema 4Dノイズシェーダー

ビルトインCinema 4Dノイズシェーダー

Octaneは現在ネイティブCinema 4Dノイズの生成をサポートしています。 つまりCinema 4Dプラグインのユーザーは、Maxonの組み込みノイズシェーダーをOctane内で直接使用できます。

Cinema 4Dノイズシェーダーを使用するシーンは、ORBXとしてエクスポートし、完全にサポートされたスタンドアロンでレンダリングすることもできます。

ラウンドエッジシェーダーの改善

より正確なラウンドエッジシェーダーを更新して、より広範なシナリオでより良い結果を生成しました。これには、エッジ法線の評価に使用するサンプル数を指定できる新しいオプションも含まれます。

画サンプルが多いほど、より正確な結果が生成され、各シーンに応じてレンダリング時間が長くなります。これらの変更は、Octane 2019にもバックポートされます。

LiveDBの新しい手続き型シェーダー

カスタマイズ可能なOSL手続き型シェーダーの完全に新しいコレクションがLiveDBに追加されました。 これらには、新しいパターン、ノイズ、ボリュメトリックシェーダー、その他の効果、および有用なユーティリティが含まれます。

新しいライブラリは、LiveDBのOTOYセクション内にあります。

Houdini 18のHydraレンダーデリゲート

Houdini 18のOctane 2020.1はSolarisビューポートの完全に機能するHydra Renderデリゲートとして動作し、USDプレビューサーフェスとHydra APIによって公開されるライトをサポートします。

RTXサポート

2020.1ではレイトレーシングを高速化するRTXサポートを追加しています。 NVidiaカードのRTXは、Octaneに次のレベルのパフォーマンスをもたらします。この実験リリースでは三角形メッシュトレースを実装しましたが、シーンに大きく依存しますが、レイトレーシングのパフォーマンスが500%も向上するのを目撃しました。これは、特定のシーンのレンダリングの実際にレイトレーシング操作に費やす時間とシェーディングに費やす時間に応じて、異なるスピードアップに変換されますが、ほとんどの場合、少なくともある程度の顕著なゲインが見られるはずです。

以前の実験的ビルドとは対照的に、VulkanRTに影響するいくつかの問題がまだサードパーティによって解決される必要があるため、光線追跡バックエンドを切り替えてOptiXを使用することにしました。この変更により、ほとんどのシーンの全体的なレンダリングパフォーマンスが向上しますが、特に複雑なシーンでは、VRAMの使用量が以前の約半分に削減されます。

サポートされているデバイスでRTXを有効にするには、NVIDIAドライバーバージョン435.80以降が必要です。以下は、RTXオンモードとRTXオフモードで速度が向上したシーンの例です。

ランダムウォークSSS

ランダムウォークメディアを追加しました。このミディアムノードは他のミディアムノードの従来の吸収/散乱カラースペクトルとは対照的に、予想されるSSSカラーを指定するためにアルベドテクスチャを取り込みます。また、色の半径のテクスチャを指定することもできます。これは光が媒体に散乱する距離を表します。

ランダムウォークに加えて散乱/吸収テクスチャへの入力として任意のテクスチャを提供できるように、古いメディアを修正しました。ボリュームにそれらを使用する場合を含む。

それ以外に媒体内のバイアスのない散乱とバイアスのある散乱を補間するバイアススライダーも導入しました。バイアス散乱法(バイアスが1.0の場合)を使用すると収束が速くなりますが、曲率の高いメッシュの2つの方法を混在させることもできます。

ランダムウォークSSSは他の以前のミディアムノードと同様の既存のマテリアルにアタッチできます。さらにレイヤードマテリアルと組み合わせて使用​​して、スキンマテリアルなどをシミュレートできます。

ランダムウォークSSSの実際の例を以下に示します。ここでは拡散スロット(左)の拡散素材とアルベドテクスチャを比較します。 0.0バイアスの中間散乱アルベド(中央)、vsバイアスが1.0の中間散乱アルベドとしてアルベドテクスチャを使用する新しいランダムウォークミディアムノードの拡散マテリアル(右)。画像からわかるように、古い散乱法を使用すると(0.0バイアス)、媒体内で光線が失われるために表面下散乱がかなり暗くなりますが、新しいランダムウォークSSSを使用すると(1.0バイアス)、表面下散乱効果は、媒体内部のエネルギーをそれほど失いません。

スペクトルヘア素材

Octaneの一般的なヘアレンダリングのリアリズムを改善する2020.1に新しいヘアマテリアルを実装しました。 ヘアマテリアルと従来の拡散/スペキュラマテリアルの違いは、ヘアマテリアルでは割り当てられたジオメトリが厳密にヘアスプラインであると想定しているため、ヘアジオメトリで発生するマルチスキャッタリングエフェクトの事前統合が可能です。

ヘアマテリアルには独自のパラメータセットがあり、ヘアのさまざまなカラーモード、およびヘアのストランドに沿ったさまざまな散乱挙動の複数の粗さパラメータを使用できます。

以下の画像は、縦方向の粗さが低い(左)から高い(右)まで変化する髪のレンダリングを示しています。

以下は、低(左)から高(右)まで方位角の粗さが変化するヘアマテリアルの画像です。

ボリュームサンプルディスプレイスメント

ボリュームサンプルのディスプレイスメントにより、任意のテクスチャを使用してボリュームグリッド内のすべての位置でサンプリング位置をシフトできます。 ノイズの場合はボリュームデータをまったく変更せずにディテールを追加でき、リアルタイムで調整できます。

Vectronボリューム

Vectronを使用してレンダリング時にボリュームを作成できるようになりました。 ボリュームの散乱と吸収へのSDF入力を使用することにより、同じオブジェクトを使用してサーフェスの代わりにボリュームを定義できます。

Spectron area /球プリミティブ

2020.1の2つのデフォルトライトプリミティブ(ジオメトリを含む)を追加しました。

  • Spectron area プリミティブ
  • 分光球体プリミティブ

ジオメトリレベルで両方のライトタイプの基本的なプリミティブスケーリングを許可し、ジオメトリ変換のために位置ノードを併用できます。 また、受信メッシュサーフェスの立体角を考慮して、これら2つのライトプリミティブのライトサンプリングアルゴリズムを改善しました。 これにより、直接光サンプリングのノイズ低減の改善が可能になり、通常、従来のメッシュ光サンプリングの使用と比較して、より高速で画像の収束が改善されます。

クワッドライトをさらにスポットライトに変更できるようにするorbxを含めました。ここで追加のパラメーターの例を示します。 広がりを制御すると、光が放射する方向性を制御できます。

次の3つの画像は、Spectronの球体光と従来のメッシュ光(ピクセルあたり1サンプル、10サンプル、20サンプル)を使用した画像のノイズへの影響を示しています。

ボリュームステップとシャドウステップ

ミディアム/ボリュームミディアムノード内のステップ長は、一般的なレイステップ長とシャドウレイステップ長に分離されます。 デフォルトでは、これらは以前のバージョンのOctaneと同じ値にロックされています。 この新しい機能を使用すると不要な場合に不要なレイマーチングを回避するために、それらを独立してシャドウレイのレイステップ長を個別に増加させることができます。これによりボリュームトレースの速度が向上し、最終レンダリング時間が短縮されます。

以下は、ボリュームレイマーチをさまざまなステップ長とシャドウステップ長で比較した画像です。

新しいユニバーサルダートシステム

ダーティテクスチャノードは、柔軟性を高めるための追加パラメーターにより2020.1で改善されました。 2020.1より前ではダートノードは均一なコサインサンプリング法を使用して、マテリアル表面からの光線を追跡しました。

2020.1で、ダートノードにバイアスをかけるためのパラメーターをいくつか導入しました。これにより、レイの広がりを制御し、コサインサンプリング方式ではなくコーン型にすることができます。 また、Octane 2020.1より前のように、表面の法線に対してより均一に、またはより均一にダートレイの分布を制御できるようになりました。さらに、ダートノードの半径をテクスチャ入力に変更しました。 サーフェスポイントのトレース距離を空間的に制御します。

汚れのテクスチャは、ビジュアライズのためにグラウンドプレーンにアタッチされています。 スプレッドが低いほど常に一方向にダートレイをサンプリングするため、ダートはよりシャープになります。

汚れの分布により、汚れの光線は法線方向または法線+バイアス方向により集中し、左の画像はデフォルトの1.0分布(均等に分布した汚れの線)で、右の画像は1000.0分布(法線+に集中) バイアス方向)。

以下は汚れ除去とバイアスのない汚れと偏った汚れの比較を示します。

参考資料

「銀河英雄伝説 Die Neue These 星乱」におけるRedshiftレンダラの実力

mental rayに変わるレンダラとして、Redshiftの検証記事が公開されています。
https://cgworld.jp/feature/201911-255gineiden.html

メインのレンダラとしてmental rayとPSOFT Pencil+が使われていた。しかし、3ds Max 2018以降でmental rayが廃止されたことを受け、今後I.G3Dで使用する次期レンダラを選定する必要に迫られることになった。候補として挙がったのは、V-Ray、Arnold、Unreal Engine、Redshiftの4つ。4つのレンダラ候補から選ばれたRedshiftの驚異的な速度。

続きを読む

Tips

modoのテクスチャをフォールオフで制御

modoのテクスチャをフォールオフで制御する表現について書いてみたいと思います。

フォールオフはアニメーションのタイミングパーティクルの制御ダイナミクスのトリガーなどに使用することができますが、テクスチャの不透明度を制御することもできて便利です。
マイクロポリゴンディスプレイスメントと組み合わせると、地形のようなモデリングやエフェクトを作成することができます。

 

リニアフォールオフ

サンプルファイル

スケマティックはこんな感じ。Constantは単色で塗りつぶすレイヤーです。

 

ラジアルフォールオフ

サンプルファイル

スケマティックはこんな感じ。フォールオフの重ねがけ。

 

カーブフォールオフ

サンプルファイル (13.2)

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

カーブフォールオフはmodo 13.2で追加された便利なフォールオフです。「長さに沿ってフォールオフ」など気の利いたパラメータがはじめから用意されてます。

シェーダーツリーはこんな感じ。

レンダリングが遅いときはマイクロポリゴンディスプレイスメントの「ディスプレースメント評価間隔」に0.5や1.0Pixelsなど大きな値を設定すると軽くなります。ただし形状が荒くなります。

 

カーブプローブ

これまでもカーブプローブやスプラインフォールオフを使用すればカーブフォールオフのような表現ができましたが、セットアップが少し面倒でした。カーブフォールオフを使用すると手軽にカーブを使用した表現ができるようになります。

CG News

Houdini 18 Sneak Peek

Houdini 18のスニークピークビデオが公開されています。主要な機能にはSparse Pyro Solver Solarisとルックデブ、レイアウト用の新しいUSBベースのコンテキストがあります。

このビデオには次のような改善点も含まれています。

  • Heightfield Terracing SOP 2.0
  • Substance プラグイン
  • 新しいグループSOP
  • ポリゴン編集用のいくつかの新しいスライドオプション
  • ポイント溶接
  • Bevel SOP 3.0(衝突検出を含む)
  • ラジアルメニューのホットキー
  • Edges SOPのサークル
  • ベンドSOP 2.0
  • Vellum Velocity Blendingと解像度の独立性
  • FEM非フック材料モデル
  • アダプティブFLIPプレッシャープロジェクション
  • スパース パイロソルバー
  • 破壊用のカスタム切断面
  • チッピング動作の改善
  • 破断線の処理の改善
  • 誘導破壊
  • Solaris:物理ベースのUSDレイアウト
  • Solaris:USDステージへのシーンのインポート
  • Solaris:インタラクティブなUSD照明
  • Solaris:USDライトのリンクとインスタンス化
  • Solaris:Renderman、Arnold、およびProrender Hydraデリゲート
CG News

Shave and a Haircut for Mayaが無料公開

Epic Gamesに買収された「Shave and a Haircut」v9.6が無料で公開されました。対応バージョンはMaya 2017、2018。Arnold、RenderMan、V-Rayのシェーダーが含まれてるようです。

プラグインはGitHubでプライベート公開に設定されているため、ダウンロードするにはEpic GamesアカウントとGitHubアカウントをリンクしてアクセスする必要があります。
https://www.unrealengine.com/en-US/blog/shave-and-a-haircut-v9-6-for-maya

ソースも公開されてるのかな?試しにインストールしてみたけど、プリセット適用してレンダリングするのは簡単にできた。

Tips

modoで複数のスペキュラを重ねる表現

modoで複数のスペキュラをレイヤーのように重ねる表現について書いてみます。

■ サンプルファイル

 

現在のようにPBRマテリアルが主流になる前の時代、金属を表現する場合はスペキュラを重ねることで表現してました。modoではShaderの「ブレンドモード」を使用して複数マテリアルのスペキュラを加算することができます。

 

現在はマテリアルに「クリアコート」があるためスペキュラを重ねた質感が手軽に作れるようになってますが、スペキュラを3つ以上重ねたい場合には今回紹介した方法が便利かもしれません。あとクリアコートはレンダリングが少し遅い気がします。

 

スペキュラを加算したレンダリング。

クリアコートを使用したレンダリング。

 

参考

http://forums.luxology.com/discuss/post/42125

Multi-Coat

 

おまけ

スペキュラを重ねた金属表現はLightWave界隈では「Gaffer」が有名でした。3dsMaxにもMulti Layer Shaderがあり、かつては金属表現に欠かせない定番の設定でした。

Gaffer

セレクティブライト、多重スペキュラ、フレネル、反射の色、ブルームなどライティングに関連する様々な質感を制御することができるプラグインでした。
https://web.archive.org/web/20010108121200/http://www.worley.com/gaffer/gaffer_spec_control.html

 

MegaLight

スペキュラにトーンカーブのようにバイアスをかけることで金属っぽいスペキュラを表現したプラグイン。
http://www.dstorm.co.jp/dsproducts/FreePlugins/PreviousPlugins/MegaLight.html

 

Multi Layer Shader

参考資料

ポリゴン・ピクチュアズ、レンダリングソフト「PPixel」を開発

「GODZILLA 怪獣惑星」や「シドニアの騎士」などで知られるポリゴン・ピクチュアズが、レンダリングソフトウェア「PPixel」を開発したそうです。

BLAME!では「Maneki」を使用していましたが、自社で開発する必要が出てきたということでしょうか。画像からはAOV対応以外に、どのようなレンダリング的特長があるのかよくわからないですね。ラインもマテリアルの輪郭線だけのように見えます。床の反射がPBRっぽいのが気になる。今後の情報に期待したいですね。
http://www.ppi.co.jp/news_release/ppipr20190912/

概要

レンダリングソフトウェア「PPixel」(ピクセル)を自社開発!独自の映像表現と効率化を実現

株式会社ポリゴン・ピクチュアズ(本社:東京都港区、代表取締役:塩田周三、以下ポリゴン・ピクチュアズ)は、レンダリングソフトウェア「PPixel」(ピクセル)を開発したことを発表いたします。

PPixelはセルルックCG(※注1)スタイルをはじめとするNPR(ノンフォトリアリスティックレンダリング)表現に特化したインハウスのレンダリングソフトウェアです。
本ソフトウェアは、近年多様化する映像表現において独自性のあるルックやスタイル表現を可能にすることを目的に、当社が長年培ったアイデアやノウハウを組み込んで開発した、新しい映像表現の探求に欠かせないツールです。
PPixelの開発、導入により、独自性の高いの映像表現を作り出すとともに、PPixelと既存の制作パイプラインシステムの融合、NPR表現にフォーカスすることによる処理の高速化、レンダリング時間の短縮などの効率化を実現。これまで以上に高品質な映像を高い生産性で制作することが可能になりました。

当社ではCG技術開発だけでなく、近年発展著しいIT技術を効果的に映像制作に活用するための取り組みもおこなっております。ハイエンドな映像制作のために必要なソフトウェアを部分的に内製化することで、今後も先進的IT技術とCG映像制作の親和性を高めることを推進して参ります。

※注1:セルルックとは、3DCGをセル画(手描き)アニメーションのように表現する手法のことです。

Tips

modoでネットワークレンダリングする方法

今回はmodoの標準機能を使用してネットワークレンダリングする方法について書いてみます。modoのネットワークレンダリングは静止画と動画の両方に対応してます。Bonjourを使用すると設定も簡単でお勧めです。

 

ネットワークレンダリングとは

ネットワークレンダリングはレンダリング時間を短縮するために、複数のPCを使用して計算を分散してレンダリングする機能です。
3DCGのレンダリングは一般的に絵の品質を高めれば高めるほど時間がかかります。映画だと1秒間におよそ24コマ(フレーム)の絵を必要としますが、1フレームあたりのレンダリング時間は速いものだと1~5分間。遅い物だと1時間以上かかることも普通にあります。動画を作る場合は1台のPCで全てレンダリングするのは大変なので、複数のPCを使用してネットワークレンダリング(分散レンダリング)を行うのが一般的です。

 

ネットワークレンダリングの注意点

ネットワークレンダリングにはPCの使い方や、ネットワークに関する最低限の知識が必要です。ネットワークレンダリングでつまずきやすい点をまとめてみました。
modoではシーンファイルを読み込んでレンダリングを実行するPCを「マスター」、マスターからシーンファイルを受信して分散レンダリングするPCを「スレーブ」と呼びます。スレーブPCはmodoのライセンスがなくてもレンダリングに使用することができます。

  • マスターPCとスレーブPCに同じバージョン(ビルドナンバー)のmodoをインストールする
  • マスターPCからスレーブPCにファイルアクセスできることを確認する
  • レンダリング画像の保存先はネットワークパスを使用する
  • ファイアウオールの設定を適切に設定する
  • 必要に応じてBonjour をインストールする

 

同じバージョン(ビルドナンバー)のmodoをインストールする

あたりまえの話ですがmodoはバージョンアップごとに機能が追加されるため、同じバージョンのmodoを使用しないとレンダリング結果が異なることがあります。そのようなミスを防ぐためmodoは同じバージョンのスレーブとだけ通信します。これはmodoに限らず他の3Dソフトでも同じですね。

 

マスターPCからスレーブPCにファイルアクセスできることを確認する

マスターPCとスレーブとして使用するPCが同じネットワーク内に存在していて、お互いのPCが通信可能か確認しましょう。ネットワーク共有したフォルダにアクセスできれば問題ありません。たまにネットワークにPCが見えていてもアクセス出来ないことがあります。

 

レンダリング画像の保存先はネットワークパスを使用する

レンダリング画像の保存先はネットワークパスを使用します。これもあたりまえの話ですがマスターPCで「C:\RenderImage」のようなローカルパスを出力先に指定しても、スレーブPCからは画像を保存することができません。ネットワークにフォルダを共有して「\\MyPC\Share\RenderImage」のようなネットワーク経由のファイルパスを使用しましょう。

 

ファイアウオールの設定を適切に設定する

Windowsには「Windows Defenderファイアウオール」が標準で入ってます。modoがネットワークと通信を行う場合、ファイアウオールが通信を遮断してしまうことがあります。その場合はmodoが通信を行えるように適切に設定する必要があります。
追加でセキュリティーソフトを使用している場合も同様に、通信が遮断されないように通信の許可ルールを設定する必要があります。

もしも通信がうまく行かない場合は、PCのファイアウオールを一時的に無効にして通信が成功するか確認し、どこに問題があるかしぼり込むといいです。ネットワークの通信設定は少し面倒くさいので、わからないことは検索して頑張ってください。

 

必要に応じて Apple Bonjour をインストールする

Windows版のmodoをインストールする時、modo11.0まではmodoと同時にApple社のBonjourというソフトがインストールされていました。modo 11.1以降はBonjourがインストールされなくなったため、Bonjourを使用したい場合には別途インストールする必要があります。

Bonjourとは

BonjourはApple社が開発しているソフトです。「何の設定も行わず機器を使用可能にする」という目的のソフトで、面倒な設定を必要とせずLAN内でソフト間の通信を可能にします。Appleのメディアプレイヤー「iTunes」をインストールすると「Bonjour」もインストールされます。

 

ネットワークレンダリングの手順

ネットワークレンダリングはスレーブPCでmodoスレーブモードを起動、次にマスターPCのmodoにシーンファイルを読み込んで、レンダリングを実行するという手順で行います。
ネットワークレンダリングで使用されるシーンファイルは1度テンポラリに保存され、各スレーブPCに転送されます。

スレーブPC

スレーブPCはマスターPCからシーンファイルを受信してレンダリングする役割のPCです。マスターPCからレンダリングを実行する前に、modoをスレーブモードで起動する必要があります。

1. PCにmodoをインストールして起動します。

「Modo13.1v1j_Windows.msi」を使用して通常通りmodoをインストールします。modoは複数台のPCにインストールするこが許可されているので、好きな数だけPCにインストールします。

 

2. スレーブモードに設定します。

スレーブモードを設定するにはmodoをライセンスが無い状態で起動します。すると「ライセンス」ダイアログが表示されます。

ライセンス ダイアログの「高度」ボタンを押すと、いくつかのオプションが表示されるので「スレーブとして起動」を押します。

「レンダースレーブ」ダイアログが開き、modoが待機中になります。

Windowsのセキュリティ警告が表示された場合は「アクセスを許可する」を押してください。キャンセルするとファイアウオールに通信がブロックされレンダリングに参加出来なくなります。

 

ライセンスインストール済みのmodoをスレーブモードにしたい場合はレンダーメニューから「スレーブモードに設定」を使用します。

以上でスレーブPCの準備完了です。もしサードパーティのプラグインを使用している場合は、スレーブPCにもプラグインをインストールする必要があります。

 

modo_cl.exeのスレーブモード

modoを起動してスレーブモードにすると、フルスクリーンで起動してGUIのサイズが変えられないので邪魔です。コマンドライン用のmodo (modo_cl.exe)に起動オプション -slave を使用すると、modo_clをスレーブモードにすることができます。ショートカットを作成しておくと便利に使えるのでお勧めです。

 

マスターPC

マスターPCからネットワークレンダリングを実行する手順です。
modoにはスレーブPCと通信を行う方法が2種類あります。「Bonjour」を使用する方法と「ホストリスト」を使用する方法です。両方の方法を紹介しますが「Bonjour」を使用する方法がお手軽だと思います。

 

Bonjourを使用したネットワークレンダリング

Bonjourを使用するメリットは手軽に通信が行えることです。

1. modoを起動してシーンファイルを読み込む

2. ネットワークビューでスレーブPCを確認する

「ネットワークビュー」を開いて、スレーブPCがリストされていることを確認します。スレーブPCが表示されない場合は、ファイアウオールの設定など注意点を確認してください。

スレーブPCの状態は●の色で表示されます。

  • 緑色 : 互換性がありレンダリングが可能です。
  • 灰色 :互換性がありますが、レンダリングの準備ができていません。
  • 赤色 : 通信できません。または互換性がありません。

灰色でもレンダリングすると動くことが多いので、とりあえずレンダリング実行してみるといいです。

 

3. ネットワークレンダリングを設定する

「初期設定」ウィンドウを表示し「最終レンダリング」の項目で「ネットワークレンダーノードを使用」「ボンジュール経由でレンダーノードを検出」をONにします。

好みに応じて「ネットワークノードでのみレンダリング」「ネットワークレンダーノードへフレーム全体を送信」を設定します。

ネットワークノードでのみレンダリング

マスターPCをレンダリングに参加するかどうかの設定です。このオプションがONの場合、レンダリングはスレーブPCのみで実行されます。マスターPCで他の作業がしたい場合はONがいいと思います。

ネットワークレンダーノードへフレーム全体を送信

フレーム単位で分散するかどうかの設定です。このオプションがONの場合、1フレーム単位でスレーブPCに分散します。アニメーションをレンダリングする場合はONがいいです。

オプションがOFFの場合、1フレーム(1枚の画像)をバケット単位で分散します。静止画をレンダリングする場合はOFFがいいと思います。レンダリングウィンドウでは、スレーブのバケットが青枠で表示されます。

 

4. レンダリングを実行する

「アニメーションをレンダー」 または「F9」を押します。ファイルの出力先にはネットワークパスを指定します。

レンダリングウィンドウが表示され、レンダリングの進行状況やスレーブPCの数が表示されます。レンダリングウィンドウは下のバーをドラッグしてネットワークビューを表示することもできます。

 

ホストリストを使用したネットワークレンダリング

ホストリストを使用するメリットはレンダリングするPCを指定できることです。例えば10台のスレーブPCうち、5台でレンダリングするというようなグルーピングが可能になります。

1. modoを起動してシーンファイルを読み込む
2. ネットワークレンダリングを設定する

「初期設定」ウィンドウを表示し、「最終レンダリング」の項目で「ネットワークレンダーノードを使用」をON、「ホストリスト経由でレンダーノードを検出」をONにします。

好みに応じて「ネットワークレンダリングでのみ」「ネットワークレンダーノードへフレーム全体を送信」を設定します。

 

3. ホストを追加する

初期設定ウィンドウの「ホストリスト」の項目でホストを追加します。「ホストを追加」ボタンを押して「新規ホストエントリ」ダイアログを表示し、PC名 または IPを入力します。

リストでホストを選択して、右上の「ホストをテスト」を押してスレーブPCと通信可能かテストします。
次に「選択の接続」を押すと、ネットワークビューにPCがリストされネットワークレンダリングで使用可能になります。

 

4. レンダリングを実行する

「アニメーションをレンダー」または「F9」を押します。ファイルの出力先にはネットワークパスを指定します。

レンダリングウィンドウが表示され、レンダリングの進行状況やスレーブPCの数が表示されます。

 

ネットワークレンダリングはBonjourを使用すれば比較的手軽におこなうことができて便利です。
今回modo標準機能を使用したネットワークレンダリングの記事を書いてみましたが、modo標準のレンダリングマネージャーは安定性や信頼性が高くないようです。大規模なシーンのレンダリングではDeadlineのようなレンダリングマネージャー(ディスパッチャー)を使用した方が、PCの性能を考慮して賢く分散処理してくれる気がします。

 

参考

ネットワークレンダリングの手順
https://learn.foundry.com/modo/content/help/pages/rendering/network_rendering.html

ネットワークレンダリングのトラブルシューティング
https://learn.foundry.com/modo/content/help/pages/rendering/nr_troubleshoot.html