見出し画像

MaterialXのすゝめ ツールに依存しない共有マテリアル

はじめまして!TDの髙橋と申します。
今回は、各DCCツールにおけるMaterialXのレンダリング結果について記事を書かせていただきます。

はじめに

映像制作の現場において、DCCツールは用途によって様々なものがあり、1つのプロジェクトの中でも作業工程ごとに複数のツールが共存しています。
近年では、Unreal Engineに代表されるようなゲームエンジンがレンダリングにも使用されるようになり、効率化の観点からもマテリアルデータの共有は更に重要となってきています

DFでは、ツールに依存しないマテリアルの共有に向けてMaterialXの使用を検討しており、現在はレンダリング結果の比較を行い問題点の洗い出しと各ツールの開発元への報告を行っています。

MaterialXとは、Academy Software Foundationが公開しているオープンソースのマテリアルフォーマットであり、プラットフォームに依存しないマテリアルの記述とアプリケーションやレンダラー間でのマテリアルの共有が可能になります。

今回の記事では、各レンダラによるレンダリング結果と、分かったことや問題点について共有させていただきます。

検証

今回は、Autodesk Standard SurfaceのMaterialXファイルを作って、レンダラーごとに見た目がどう変わるか比べてみました。

Autodesk Standard Surfaceとは、Autodeskが作成した物理ベースのシェーディングモデルであり、MaterialXで実装されている中では最も一般的なモデルの1つです。
様々なツールで広く対応されているため、今回はこちらを使用しました。

比較したレンダラ

  • MaterialXView

  • Unreal Engine(PathTracing)

  • Arnold

  • V-Ray

実行環境

レンダリング結果

MaterialX Examples
以下、MaterialXのGitHubで公開されているサンプルデータをレンダリングした結果になります

standard_surface_brass_tiled
standard_surface_brick_procedural
standard_surface_carpaint
standard_surface_chrome
standard_surface_copper
standard_surface_default
standard_surface_glass
standard_surface_glass_tinted
standard_surface_gold
standard_surface_greysphere
standard_surface_greysphere_calibration
standard_surface_jade
standard_surface_marble_solid
standard_surface_metal_brushed
standard_surface_plastic
standard_surface_thin_film
standard_surface_velvet
standard_surface_wood_tiled

AMD MaterialX Library
以下は、AMDが公開しているMaterialX Libraryで特徴的なものを幾つかレンダリングしてみたものです

Acryl_Plastic
Motley_Patchwork_Rug
TH_Fabric_Leather
TH_Moss_Cobblestone_Floor
Sage_Houndstooth_Fabric
Skin_30_percent_melanin

考察

金属、石、布、皮などの非透過なマテリアルはレンダラごとの見た目のブレが少なくマテリアルを共有しても問題なさそうです。

しかし、ガラスのような透過物や皮膚のようなSSSはレンダラごとに結果が変わりやすく、現時点で「マテリアルの共有」は厳しい気がします。

不具合もいくつか確認されており、Unreal Engineだと全体的に色が暗く落ち込んでしまっていたり、standard_surface_thin_filmのように薄膜干渉による干渉色が表現されない現象があります。
V-Rayだとstandard_surface_brick_proceduralのようにプロシージャル関連のノードが他と異なる挙動になるなど、レンダラによってマテリアルが正しい見た目にならないことがあるようです。

まとめ

いくつか問題点もありますが、主に背景で使用されるようなマテリアルであれば、MaterialXを利用することでレンダラを跨いでもある程度の共通の見た目は維持できそうです。
今回の調査でわかった不具合は開発元に報告しており、特にUnreal Engineはv5.5以降のバージョンでいくつか修正されています。
透過やSSSに関しても、各ツールのバージョンアップでどんどん改善されていっているので、将来的には近しい見た目になってくれると思います。
DFとしても、改善できそうな点があれば積極的に報告していこうと思いますので、ぜひ触ってみてください!

引用

※免責事項※
本記事内で公開している全ての手法・コードの有用性、安全性について、当方は一切の保証を与えるものではありません。
これらのコードを使用したことによって引き起こる直接的、間接的な損害に対し、当方は一切責任を負うものではありません。
自己責任でご使用ください。

テクニカルスタッフ募集

デジタル・フロンティアでは、テクニカルスタッフを随時募集しています。
まずは気軽に門戸を叩いてみて下さい。
一緒に日本のコンテンツ産業を盛り上げていきましょう!