😺

BlenderUSDHydraAddonを使おう(1) レンダリングしよう

2021/08/24に公開

AMD製のBlender USD Addonがだいぶよさそうだったので
今何ができるのかをざっくり検証してみようとおもいます。

まず、仕様要件は 2.90+なので、
今回はの検証で使用するバージョンはBlender 2.93にします。

インストール

まず、
https://github.com/GPUOpen-LibrariesAndSDKs/BlenderUSDHydraAddon
以下のGithubリポジトリから、ビルド済のデータをダウンロードします。

ページの右側にある「Releases」をクリックして、

zipをダウンロードします。

ダウンロードしたら、Edit Preferences.. を開いて、

Install...で、↑でダウンロードしたZipを選択します。

インストールが終わると、Addonリストに Render: USD Hydra が増えるので、チェックをONにして
Addonをロードします。

準備は以上で終了です。

Hydraを使用する

ロードしたらまずレンダラを変更します。

シーンのRender Engineを「USD Hydra」に変更します。

Shadingタブに変更すると、ViewportがHydraでレンダリングした結果になります。

デフォルトでは、USDHydraを使用した場合のレンダラは RPR つまりは AMD's Radeon Pro Render
になっています。
レンダリングするデータ(Data Source)の指定はSceneになっているので
Blenderのシーンを、Hydraを経由してレンダリングする設定になっています。

USDオーサリング

BlenderのシーンをUSD Hydra を使用してレンダリングできることがわかりましたが
これに加えて、USDHydraAddonでは、簡単なUSDのオーサリングをすることができます。

ので、現状できることをみてみます。

Render Engine を USD Hydra にすると、

GeneralにUSDのタブが追加されます。

このUSDビューに New NodeTree をすると、USDをオーサリングするためのNodeEditorが作成されます。

まず、Input で Blender Data を作成して、DataをCollectionにします。

次に、Outputで、Render USD via Hydra を作成し、

BlenderDataをRender USD via Hydra に接続します。

最後に、Viewport Render Settings で、DataSourceをSceneから作成したNodeTreeに変更します。

変更すると、アウトライナにNodeTreeのRender USD via Hydra に接続したPrimが
USDNode Tree以下に生成されます。

これはどういうことかというと、BlenderのDataが動的にUSDのシーングラフに変換されて
USDNodeTree以下に表示されているという意味で

このように、BlenderのDataと別のUSDファイルをNodeTree上で合成して
その結果、1つのシーングラフとしてレンダリングできるようになります。

今回はBlenderDataとUSDFileにしましたが、
USDFileを多数 Mergeを使用して組み合わせて、BlenderでLightを配置してLookDevをする...といった
使い方も可能になります。
これはすごい。

また、

Write USD Fileを使用すれば、その段階のUSDをExportすることができます。
(サブレイヤーなど、コンポジションは維持されず、1ファイルにFlattenされる)

そのほかのNodeについて

Rootノード

Rootノードは、Converter > Root で作成できます。

NameとPrimTypeを指定することで、

Inputのオブジェクトを、Nameで指定した以下のPrimの子供にします。

例えば、このように複数のCollectionを指定Prim以下にしたい場合は、Rootを作成したあとのいMergeすることで

階層をコントロールすることができます。

Filter

Filterは、 Converter > Filter で作成できて、

指定パターンのPrimのみに、

フィルタリングできます。
1つのUSD以下に複数のアセットがあるような場合、
特定のPrimだけ切り出したい場合などに使用できます。

USDのシーングラフ

NodeTreeをDataSourceに接続すると、BlenderのアウトライナにUSDのシーングラフをBlenderに置き換えたものが
表示されていました。
それ以外にUSDのシーングラフを確認したい場合は、

USDビューの右側の「Item」にUSD Listが表示されます。

このUSDListは、選択しているノード段階のシーングラフが表示されます。

このTree上でコンポジションの調整などはできず、Show/Hideの切り替えと
AssetPathの確認、PrimTypeの確認ができるのみですが
ある程度USDのシーングラフをチェックすることができそうです。

まとめ

ざっくりですが、USDHydraAddon を使用することで、BlenderとUSDのデータを組み合わせての
ライティングやレンダリング方法がわかりました。

3.0でImportやExportがだいぶ拡張されましたが、
USDのレイヤーを維持した状態でのオーサリングはできなかったりで、USDのポテンシャルを
生かせないなぁと思っていましたが、
こちらのAddonだと、コンポジションはのこらないものの、Blender上で
USDを使用したワークフローができそうな雰囲気が見えてきました。

これに+して、MaterialXも対応しているようなのですが
いまいち使い方がわからない(+触ったら落ちた)ので、そのあたりは別途
調べようかと思います。

GitHubで編集を提案

Discussion