3ds Max 2010, MetaSL and mental mill

zap’s mental ray tips: 3ds Max 2010, MetaSL and mental mill

mental imagesの中の人のブログで面白いの発見した。
と、同時に、自分が勘違いしてことに気づいて愕然。


3ds Max 2010にはmental mill Artist Editionが付属する、という話は前にもここで取り上げた気がします。

mental millはノードベースのシェーダビルダーで、MetaSLというシェーディング言語を使用してシェーダを組みます。
MetaSLで書かれたシェーダは、Cg, HLSL, mental rayなど、複数のプラットフォーム向けにコンパイルすることが出来ます。
つまりMetaSLはレンダラ非依存のシェーディング言語なのです。

と、これを把握した時点で気づくべきだったんですが、僕はMaxにmental millが付いたということを、ただ単にMaxでシェーダが自由に組めるようになった、と判断してしまったのです。

でもそれは間違いでした。
じゃあどういうことなのか、それは上のリンク先を見てもらうとわかるのですが、
ビューポートで最終クオリティに近いルックでの確認が出来てそのままレンダリングが可能であるということなのです。
Maxにmental ray用のシェーダビルダーが付属されたことが問題なのではありません。
これを使うことによってワークフローを根本から変えてしまうことが出来るほどの威力があるという事実が、一番大きな問題です。

Maya、Max、XSI、その他一般的な3Dアニメーションパッケージでは、GLSLやHLSL、Cgなどのリアルタイムシェーダをビューポート上で表示することが出来るます。
僕は以前仕事ですごく簡単なCgシェーダを書いたことがあり、これを上手く活用出来ればなと思ったことがあります。
ビューポート上でリアルタイムにリフレクションが動いたり、ライトのアニメーションさせて色が変わったりするのは、すごく単純なことなんですが、普段オフラインレンダリングばかり行っている身にはなかなかの驚きでした:)
そこそこコードが書ければかなりのクオリティまで持っていくことが出来るので、これを上手く使えば制作体制が一気に変わるな、、と思ったことがありました。
ただその際のネックはHWシェーダがレンダリング出来ないということ。
残念なことに、Cgシェーダなどはビューポート上での確認しか出来なかったのです。
Maya SWやmental rayはおろか、Maya HWにすら対応していません。

これだとレンダリング時に自動でシェーダの差し替えを行うであるとか、シェーダ開発はシェーダ担当のテクニカルスタッフ(まさにシェーダライター)しか行えないであるとか、さまざまな問題が考えられたので、実際にそのワークフローを構築すべく行動するまでには至りませんでした。
テクスチャ形式がDirectXのものしかダメだったりとか、他にも諸々制限があって、リアルタイムシェーダの機能自体がオマケっぽくて、ゲーム業界じゃないし関係ないかと思ったというのもあります:P
 

Max 2010では、DirectX Shaderにmental millで組んだシェーダデータ(.xmsl)を与えると、それはビューポートでHLSLシェーダとして動き、mental rayでもレンダリング可能(!)なのだそうです。
.xmslを与えているということは、間違いなくMetaSLがリアルタイムコンパイルされているんだろうということが想像出来ます。

mental millが出始めた頃は、mental ray用にC++のコードを出すばかりだったので、ただのシェーダビルダーだと思っていたのですが、先日のMetaSLäの記事然り、全てはこのワークフローのためだったのね、と思いました。

最近流行りのインタラクティブレンダリング(V-Ray interactiveとかMantraとか)というよりはGPUによる最終イメージの高速な近似なわけですが、正直十分過ぎる気がします。
ただGIなどには対応出来ないでしょうし、用途は限られそうな気もします。
 

ざっくり眺めただけでまだ実際に触っていないのでアレですが、日本の、特にアニメの制作現場とかこのワークフローに乗っかるべきなんじゃないかなと思います。
それほどテクニカルな知識は要らない、表現の幅も広がる、既存のワークフローとガチでぶつかるということもなさそう(現状のワークフローがガチガチだったらその限りではありませんが)、などなど、導入するためには有り余るほどの理由、期待出来る恩恵があるんじゃないでしょうか。
Maxだとmental ray使いたい放題ですしね。

Artist Editionではビルトインされたシェーダを組み合わせるしか出来ないので、自分で独自のシェーダ組み込みたかったらmental mill Standard Edition買ってね、ってことらしいです。
 
Mayaにも次のバージョンでmental millつかないかなーなんて思ってたんですが、どうなりますかね。
やはりmental rayにフルに移行するには、Mayaの場合ライセンスの問題があるような気がしますし、そもそもmental imagesとAutodeskがどう考えてるのか。

あ、もしかしてこれが彼らの言う「競合しない」という部分なんでしょうか?
もしそういう風にAutodeskが考えているとすれば日本ではMax1人勝ちになるんですけどね、多分。
もちろんこのワークフローが広まれば、という前提ですが。
どっちにしてもAutodeskが儲けて終了\(^o^)/

ただmental millにも既知のバグ(しかも結構クリティカルなものも、、)も多く含まれてるみたいですし、このワークフローが広まるにはそこそこ時間かかるかなと。
本当に大丈夫なの?とか思う人も少なからずいるでしょうし。
そこは誰かが試して結果出す以外にないのかなとも思います。

個人的には実写よりはアニメやフルCGに向いてるのでは、と思います。

なんにせよ、興味深い機能であることは間違いないので、この辺の動向は今後も継続して注目すべき箇所かなと思います。
僕の解釈が間違ってる可能性も多分にあるので、詳しくはzapさんのブログ読んでください(・・)ノシ

「3ds Max 2010, MetaSL and mental mill」への9件のフィードバック

  1. mental millが付いて来るの自体初めて知って
    ビックリ!なMAXユーザーが来ましたよ。

    これはCG質感系の仕事には強力な機能ですね!
    スピードによりますが、、、。
    (グラフィックボード次第なのかな?)

    クソMAXマテリアルエディタに
    ノードベースなマテリアルエディタが標準で付いた
    だけでもうこれ使うしか!って感じです。

    >Maxだとmental ray使いたい放題ですしね。

    ん?
    max1ライセンスで1cpuか2cpuまでじゃなかったでしたっけ?

    今回のver upは少し期待してたので楽しみです。

    モデリングの新機能の魅力に引かれてレンダー周りはまったく
    見てなかったです、、、。
    まぁMAXのverupにはいつも期待してない。

    だって毎日セルシェーディングしか、、略

    海外でMAYA+Houdini+RenderManなtaiさんにはあれですけどね。(変な嫉妬感、、、)

    じゃ僕は、日本でMAX+Houdini+Mentalrayでがんばります。

    さすがにシェーダ書くとこまではやらないですけど。
    ていうかどうひっくり返っても出来ないし。

    ていうか他に根本的に強化して欲しい所がいっぱいなんですけど、、。

    まぁ自分ソフトは何でもいい派で、フリーでコストパフォーマス的にMAX使ってますが、Houdini masterが70万円代だと一人で簡潔出来る仕事ならそっちの方がいいんじゃ無いかなと最近は思ったりしてますが、そんなお金無いです、、、。

    CG屋は金がかかりすぎると最近改めて思ってます。

    とりあえず来週にはMAX2010が届く予定なので早速触ってみようと思います。(もう家には届いているかな?)

  2. taiさんの言うとおり,局所的な部分ではこういうツールはすごい威力を発揮すると思います.

    自分もこれがパイプラインに組み込めたらlightingは相当楽になるなあと思っているんですが,うちらの環境だとmentalrayの拡張性の高さが逆に仇(?)になってしまっている部分があって,MetaSLではサポートできないシェーダが山のようにあるので今のままでは難しいんですけど,せめてカメラを動かさない状態でのinteractive shadingがやりたいなあと日々妄想しています.これができるようになると,lookdevとlightingはlog orderで速くなると思いますね.

    技術的には可能だと思うんですが,パイプライン全体の変更も必要だし,リソースの問題もあるしで実現は難しそうなんですけど.

    ちなみに最新版のPRManにはinteractive relightingが実装されています.まだ荒削りでできない事も多いですが,可能性を感じる機能です.

  3. >succhin。さん
    mental mill、あまり注目されて無いんですかね。
    もったいないお化けがでますよ!!
    グラフィックボードも、MaxならDirectXで描画出来る訳ですし、そんなに差はないんじゃないですかね。
    と言ってもさすがにGeforceのエントリーレベルとかならアレかもしれませんが:P

    > max1ライセンスで1cpuか2cpuまでじゃなかったでしたっけ?
    コマンドラインからレンダリング投げると無制限に回るっぽいですよ。

    > セルシェーダ
    前にCgでセルシェーダもどきを書いたんですが、結果もすぐに確認できますし、よかったですよ。
    と、過去ログからURL発見しましたw 脱力注意wwwwww

    > Houdini
    Houdini最高ですが、MayaもMaxも無く、アレ1本ではさすがにキツいなぁと思っています。やっぱり適材適所だなと思いますねー。
    まぁツール的には100倍Houdiniのが良いと思ってるんですが、それでもやっぱりなれてるんで、Mayaには・・・

    Max2010使ったら是非使用感聞かせてくださいー(・・)ノシ
     

    >ますおさん
    やはりますおさんもこちらには注目されてましたか。
    正直、既にこういうものがあるのかなと思っていました:P

    > パイプライン
    ですよねぇ。一気に楽になると思います。
    それこそ今の何倍にも何十倍にも!!
    待たなくて良い、ってだけでどれだけの恩恵があるかは計り知れませんね。

    > MetaSLではサポートできないシェーダが山のようにあるので
    絶対そうだと思いました(笑
    でも仰る通り、限定した状況下では使用出来る場面ありそうですし、今後MetaSLやGPUシェーダが進化してくるであろう事も考えると、少しずつでも試してみたいところですね。

    > log orderで速くなると思いますね
    ですね。そのぐらいの威力を感じます。
    あとはその後の工程でロスが発生してせっかく速くなった分を無駄にしない様に、出来る限りパイプラインを整備してあげる必要があるなと思います。

    > 技術的には可能だと思うんですが
    そうですよね。
    でもそういう意味では日本の中小プロダクションの方が小回り利いてこういうパイプライン組み立てやすそうです(!)
    今こそ日本のプロダクションが立ち上がるとき!?

    > interactive relighting
    そうそう、こちらも興味あります。
    ただ今ってコマンドラインベースのものだけなんですよね、確か。
    V-RayやMantraやRendition、それにlucilleなどの動きを見てもこの分野が活発なのは明らかなので、今後注目すべきところだなぁと思っています。

    mental rayスペシャリストからコメント頂いて、僕が感じた可能性が勘違いじゃない事が分かって少しホッとしましたw

  4. レンダリングの待ち時間が減ると,サボる時間が減ると言う弊害もあります(笑).

    PRManのinteractive relightingはPythonインターフェイスがありますよ.
    会社でベータ版が届いた時に,遊びでPyQtと繋げてヘボイGUIつけてみましたが,ちゃんと動きました.今はMayaでもHoudiniでもPython使えるし,ツールと繋げるのは簡単だと思います.

  5. >ますおさん
    > レンダリングの待ち時間が減ると,サボる時間が減ると言う弊害もあります(笑).
    あ、貴重なリフレッシュ時間が!!ww

    > PRManのinteractive relighting
    なるほど。PRManのrelightingに関しては以前IndyzoneさんのデモでwxPythonのアプリを見せてもらった事ぐらいしかない&PRMan自体ほとんど知らないので、あまりイメージわきませんでしたが、コメントから察するに思ったほど難しくなさそうですね。

    んー、これはこれで興味が・・・w

  6. >前にCgでセルシェーダもどきを書いたんですが、

    おぉ~リアルタイムでここまで確認出来たら便利かも。
    ただ、現場が求めてるものが、もっと影のコントロールが
    簡単に出来ればなお良いと思ってて、OLMさんのシェーダとかマスクマップで強弱の設定をして作画っぽい影にしたりしてますが、いまいち求めてる絵にならないのが現状です。

    後ラインを出す所が超重要でこれはシェーダーとはまた違う分野になりますね。カメラから見て3D形状の角度を計算したり、
    面と面が交差してる部分をどう処理するかとか、なかなか個人でプログラム作るのは結構大変そうです。
    出来る人が作れば余裕なんでしょうけど、、、。
    MAXだと安価なpluginがあるのでそれ使ったり、MAYAとXSIだと標準で結構良いのが付いてますしね。MAXの標準はウンコ。

    Houdiniもwren、レンダーが付いてるけど、、、ほとんど強化されて無いので使い勝手が悪いです。

    セル系は日本でしか市場が求められていないのでやはり開発側には見向きもされていないですね。

    そこで自分にも知識があれば良いのですが。
    tai君作って。多分日本で売れるよ!

    Houdini一本は最初はきついでしょうね。やっぱ慣れは強しですし。組み合わせ的に良いのは、MAYA+Builder+Houdini+rendermanでしょかね。

    MAX2010はまたレビューしますよ。

  7. >succhin。さん
    そですね、やっぱり現場的には陰影のコントロールが最重要課題ですねー。
    結局は法線の問題なのでOLMさんのシェーダとか面白いと思うんですが、結局フレームごとに全部制御したくなるよなー、と思いました。
    となると手間が足りなくて、、、
    自由に制御出来るようにはなったはずなので、次のステップはある程度の補間と自動化、って感じですかね。

    ラインはシェーダで作れますよ。
    ただレンダラによっていろいろ用語とか使い方とか異なるようですが。
    何を以って良いとするか、ですよね、、
    適切な情報量の実現、なんて人によって感覚がバラバラで抽象的過ぎますし:(

    セル系の塗り&線はなかなか、やはり日本でやらないことには進化しないでしょうねぇ。
    で、仕事にするにもマーケットが思ったほど大きくないからビジネス的にもやりづらいでしょうし:(
    誰かが愛情と情熱でやらない限りは難しいところかも・・・?

    僕がサクッとやれちゃえばそれはそれで良いですが、そんな知識はないですからw<開発

    Houdiniはもはや無理矢理使う以外に道はないです!!
    慣れれば一番作業の速いツールになるので勝手に使うようになります、きっと!!

    Max2010期待してますー(・・)ノシ

  8. >ラインはシェーダで作れますよ。

    わし無知すぎる、、。がんばれ、、、俺。

  9. >succhin。さん
    mental rayだとcontourシェーダっていうの輪郭シェーダですよ!
    他のレンダラだとどう扱ってるのかわかりませんし、MayaのToonはPaint Effectなので、一概にどうとも言えないところではありますね。

コメントを残す

メールアドレスが公開されることはありません。