SuiTechLog

Unity,Arduino,RaspberryPiなど、モノづくり系を気ままに書き残すブログ。

MaterialXについて


MaterialXっていうのでていたのでしらべてみました。

cgtracking.net

Githubはこちら。

Githubページを翻訳してみます。

github.com

 

MaterialX

MaterialXは、2012年にルーカスフィルムによってまとめられた、リッチなマテリアルとルックデベロップメントを複数のアプリケーションやレンダラー間で転送するための、オープンスタンダードなコンテンツです。MaterialXはインダストリアルライト&マジック(ILM)社の「スターウォーズローグワン フォースの覚醒」と「Trails on Tatooine」(トレイルズオンタトゥイーン)などリアルタイムコンテンツなど、主要な映像に使われており、それは引き続き新しいILM作品の中心的なマテリアルフォーマットです。

開発者のためのクイックスタート

  • 最新のCMakeビルドシステムをダウンロードします。
  • CMakeにMaterialXライブラリのルートを指定し、あなたのPCとプラットフォームにC++プロジェクトを作成します。
  •  MATERIALX_BUILD_PYTHONオプションを選択し、Python2.Xビルディングでビルドします。

サポートされたプラットフォーム

MaterialXコードベースはC++11がサポートされていて、以下のものがビルドできるコンピューターを必要とします。

MaterialXのPythonビルドはPyBind11に基づいていて、現在Python2.6.xとPython2.7.xをサポートしています

 

~~翻訳ここまで。~~

次に以下のFXGUIDEの記事を翻訳してみます。

www.fxguide.com

 

 ルーカスフィルムとインダストリアルライト&マジック(ILM)はオープンソースライブラリであるMaterialXの最初のバージョンをリリースしました。MaterialXは複数のアプリケーションとレンダラー間のリッチなマテリアルやルックデベロップメントの転送を簡単にするため、ルーカスフィルムのアドバンスドデベロップメントグループとILMエンジニアによって開発されたオープンスタンダードなフォーマットです。

 

マテリアルXの開発は継続中。現在の最新バージョンは1.34。

 

 Fxguideで、4月にMaterialXを最初に掲載したときに考察したように、オープンソースが軌道にのるためには、VFXアプリケーションコミュニティからの強力なサポートが必要です。当時、Foundry社のような企業は興味を持っていましたが、彼らはもっと多くの成果を期待していたのです。今日では、Foundry社やAutodesk社などのキーカンパニーはMaterialXを全面的にサポートすることを公表しています。

 

 Foundry社でルックデベロップメントとライティングのシニアプロダクトマネージャを担当するJordan Thistlewood氏は、「Foundry社はMaterialXプロジェクトが最新マイルストーンに到達したことを見ることができて、うれしく思っています。」と言います。「私たちのアプリケーション間で、ルックデベロップメント情報をスムーズに転送できる可能性があることに期待が持てます。オープンソースプロジェクトの広範な原則とマルチベンダーのデータ交換は業界全体としてとても重要です。そのため、今後のリリースで、MaterialXの強力なワークフローを私たちのアプリケーションに導入することを楽しみにしています。」

 

~略~

 

 2012年にLucas FilmによってまとめられたMaterialXは「スターウォーズ フォースの覚醒」や「ローグ・ワン」そして没入型リアルタイムコンテンツである「Trails On Tatooine」等のILMの主要な作品に使われています。

 

 ここfxguideに掲載しているショットは全てMaterialXを使ってレンダーマンでレンダリングされたものです。いくつかの「ローグワン」のK-2SOのショットは、カスタマイズされたILMバージョンのUE4ゲームエンジンレンダリングされましたが(以下の画像ではありませんが)、MaterialXも利用しました。

 MaterialX規格によってCGオブジェクトの完全な"ルック"を指定するのに必要な、少なくとも4つの明確なデータの相互関係があります。

 

1.最終的に様々なシェーダー入力に接続されるテクスチャイメージを生成するために、1つ以上のソースを結合・処理するのに使用される、イメージソースのテクスチャ処理ネットワークやイメージ処理オペレータ、パラメータ、コネクションを定義する。

 

2.さまざまなマップ形式のための関連したテクスチャファイル名またはIDのようなジオメトリの固有な情報を定義する。

3.1つ以上のレンダリングまたはポストレンダリングブレンディングシェーダの入力へ、テクスチャ処理ネットワークへのパラメータ値と接続を定義すると、多数のマテリアルが得られます。

4.モデルのジオメトリとマテリアルの間の関連付けを定義して、多数のモデルのルックを作成します。

 

 現時点では、上記のすべてのデータ関係の転送するための共通な、オープンスタンダードはありません。様々なアプリケーションには、この情報を格納するための独自のファイルフォーマットがあります。しかし、閉鎖的か、専有されているか、不十分なデータか、全アプリケーションのオープンまたは複製などを困難にさせる方法で実装されています。したがって、シェーダネットワークを使用して構築されたコンピュータグラフィックスオブジェクトの「ルック」を指定するためのオープンで、プラットフォームに依存せず、明確に定義された標準が必要とされているため、ルックまたはルックのサブコンポーネントは、ソフトウェアパッケージから他のソフトへ、または異なる設備間を持って行くことができます。

 

Foundry社の詳細

 Foundry社は、MaterialXを使って多くの直接的な(ILM社以外の)ユーザー向け作業を行うチャンスをまだ持っていません。 UKのルックデブチームでは、現在どのように使用できるようになっているのか、もっと広く知っていただきたいと思います。Foundry社でのルックデベロップメントとライティング担当のシニアプロダクトマネージャーのJordan Thistlewood氏は、MaterialXがFoundryのパイプラインでどのように機能するかを説明しています。

「過去数年間でKatanaの需要が高まったことで、MariやKatanaのようなツールがよりよく機能するようにすることが、我々にとってより強く求められていました。なので、Mariで作られたシェーディングネットワークとテクスチャマップをKatanaに確実に転送できるよう、MaterialXを使用することを楽しみにしています。MariのノードグラフのBake Pointノードのようなものは、ワークフローが柔軟で強力なままであることを保証するために、シェーダの前に入力として論理キャッシュポイントを提供します。」

 

~略~

 

翻訳ここまで。

 

 翻訳に若干疲れました(ほとんどGoogle先生です)が、つまるところUE4とかMayaとかプラットフォームやソフトの垣根を越えてマテリアルを受け渡しすることのできる素敵フォーマットということですね。

Githubのほうにはもう既に触ることができるソースが公開されているので、ちょっと時間ができたら遊んでみようかと思います。

Unity対応しないかなぁ・・・