Skip to main content

Posts

Showing posts with the label running mental ray stand alone

iray を standalone mental ray で使いたい(5)

これまでは standalone mental ray のための export の話でしたが,ようやくshader conversion の話になります. iray は mia_material のみのサポートなので,3dsmax シーン中のshader をできるだけ自動で mia_material (Arch&Design) に変換します.おそらく他の shader もサポートしてくるでしょうが,CUDA で動くことを考えれば,divergence の問題のために,いろんな shaderを使うだけでレンダラの性能が落ちることは自然です.それに新しいレンダラですから, mental images が native にサポートしているshader にした方が問題は少ないことも予想できます.ですから変換した方が良いと個人的に思いました. 3dsmax の shader を mia_material にコンバートする max script のコードをここ( https://code.google.com/p/shitohichi-tools/source/browse/#hg/mentalray/max2mia_material )に置きました.これは Zap の blog の VRay shader to mia_material converter ( http://mentalraytips.blogspot.com/ ) を元に作ったものです.Zap さんありがとうございます.2つのファイルを download し,max script として open して run とするとシーン中の shader を convert します.yh_max2mia_material.ms が main のファイルでこちらを評価します.(yh_material_object_map.ms は subroutine 集です.) もちろん,自動で全部コンバートすることは不可能です.とりえあえずレンダリングできるというレベルです.それでも一つのシーンには多数のshader があるので,以前作成したシーンを変換するスタート地点として使えると思います. 来週から SIGGRAPH です.(私は SIGGRAPH には行ったことがありません) 何か ira...

iray を standalone mental ray で使いたい(4)

今回は例として 1 つだけ teapot を作成し,それに mia_material (Arch&Design) material を割り当てる. Export したファイルそのままでは 3dsmax の shader への依存があるので,mental ray standalone で rendering するのには多少都合が悪い.standalone を使う理由は,複数のマシンで一斉にレンダリングをすることができるためである.3dsmax の shader だけ render farm マシンにコピーしてもいいのかというライセンスの関係がよくわからないことと,ここでの目的はiray を使いたいということなので,3dsmax の shader の依存を除く方法をここに書いておく.あるいは,全ての render farm のマシンに 3dsmax をinstall することができれば問題はないが,3dsmax を走らせないマシンに3dsmax を install する意味はあまりない. 3dsdmax から Export した mi file をそのまま ray に渡すと, --- > ray -x on -v 5 00teapot_ex00.mi ... LINK 0.0  error  191007: cannot load 3dsmaxhair.dll, The specified module could not be found. ... LINK 0.0  error  191007: cannot load mayabase.dll, The specified module could not be found. ... LINK 0.0  error  191007: cannot load adskshaders.dll, The specified module could not be found. ... --- というエラーが発生する.これが 3dsmax 固有の shader である.利用しているマシンに3dsmax が install されている場合には,rayrc ファイルに以下の3dsmax への shader path を書く...

iray を standalone mental ray で使いたい(3)

3dsmax のシーンを mi file に export する方法 1. mental ray rederer を選択する. Figure export_mi_1 にあるように,Render Set Up の Assign Renderer ロールアウトを開いて Production に mental ray Rendere を選択する. Figure export_mi_1 2. 3dmax から mi file を export する. Figure export_mi_2 にあるように,Render Set Up の Processing Tab を選択する.Export on Render を選択する前にまずはファイル名を選択する.ファイル名がないと,Export on Render のチェックが enable にならない.これは正直言って最初とまどった.Export したいのに,Export を選択できないのだ.選択してファイル名がないと warning を出してくれるとありがたいのだが. 次に Renderボタンを押すと mi file が export される. Figure export_mi_2 ところで,    「 Export するには Render ボタンを押す.」 というのも私にはなかなか難しい.    「 Export するには, Export ボタンを押す.」 ならばわかりやすいと思う.

iray を standalone mental ray で使いたい(2)

iray では Shader をカスタマイスはできないと言っても iray には shaderはある.アーキテクチャ(mia_material, 3dsmax では Arch & Design) のinterface を持った shader が一つサポートされているのみということであった.ただ,実装はArch&Design ではなく,完全に新しい iray shader という.これは,ユーザが勉強しなおす必要がないようにとの配慮らしい.そのため,物理的に意味のないパラメータは無効になっている.今後,物理的に意味のある BRDF 系の shader はサポートされていく予定ということである.あと,volume のサポートは予定であって,iray の version 1 ではサポートされていないというのは残念だった. ユーザとしての問題は,iray が次の 3dsmax/Maya でサポートされるのかということである.iray を Maya から使えるかどうかは,Autodesk の決定であって,mental images としてはなんとも言えないという説明であった.ただ,mental ray の 3.8+ の standalone か,NVidia の RealityServer という製品では support される.(mental images のweb www.mentalimages.com を参照) しかし,どうやら Bunkspeed という選択肢もあるようだ. Bunkspeed iray demo: http://www.youtube.com/watch?v=t5cn4UNqBfY 私の場合,mental ray の standalone を使うことはできるので,次のバージョンがリリースされたら使ってみたい.ここでは,3dsmax から mi file をexport して,それを mental ray の standalone でレンダリングする方法を説明しよう. この方法はこれまで render farm を使う人だけに有用だったが,もし,irayが次の 3dsmax/Maya/XSI ではサポートされない場合には有用かもしれない.

iray を standalone mental ray で使いたい(1)

* 現時点では iray は NVidia のRealityServer でないと入手できない.次の 3dsmax/Maya/XSI でサポートされることを期待してこの blog を書きます. GDC の Keynote や,SIGGRAPH ASIA 2009 の booth で NVidia の子会社のmental images が iray というレンダラのデモをしていた. GDC NVidia iray demo (YouTube) mental image's iray page 間接光をシミュレートするのは mental ray や,他のレンダラでもある程度できるが,final gather とか Photon map とかはちょっと物理的には怪しい近似手法であり,正しい解に収束するとは限らない.それに最適化のパラメータがいろいろあって難しい. また,これらの手法は時間がかかるので,見えない光源を置いて間接光の影響を手でシミュレートするというようなことをしたりする.このirayは path tracing を brute force で実行する.しかしそれでは現在の計算機ではまだ力不足なので,GPU に実装して GPU クラスタで計算するという方法らしい.上記の YouTube での GDC のデモの画像は interactive でこの質と,かなりすごいと思うが,このデモでは Tesla を15 枚使っているというレベルのようだ.(いったいいくらするんだろう?) SIGGRAPHASIA 2009 では Quadro 5800 FX を 5 枚使っているという計算機でデモをしていた.そう言えば東工大にはテスラやフェルミのクラスタがあるというのだが,iray を走らせたらどうなるのか個人的に知りたい. iray は物理シミュレーションをするので, SIGGRAPH ASIA のデモでは buildin の shader しか使えないという説明であった.特殊なことをしたい時やカスタマイズした時にはどうするのか,という質問には,   1. iray でサポートする物理学はこの世界にあるものだけで,それ以外の物理学はサポートする予定がない.   2. 物理学に沿わないことをしたい場合には,mental ray か...

メンタルレイの構成

図 1 にメンタルレイの通常の構成を示します. 図 1 メンタルレイの構成 F1: Application scene file: アプリケーション固有のファイルで .max (3dsmax), .ma または .mb (Maya),.scn (XSI) などです. F2: .mi file: mental ray の scene description ファイルフォーマットです.多くの mental ray をサポートしている DCC ソフトウェアは .mi ファイルをエクスポート(export)する機能があります.(A2) 1. Application: DCC (Digital contents creation)ソフトウェア (Maya, 3DSMax, XSI, ...) や CAD プログラムです. 2. mental ray core: メンタルレイのコアプログラムです.メンタルレイにはライブラリ版とstand alone 版があります.ライブラリバージョンのメンタルレイは,アプリケーションからトランスレータ(translator) というモジュールを通じて命令やデータを受けとり,レンダリングを実行します.トランスレータというのは DCC アプリケーションの内部データを mental ray のデータに翻訳(translation)するプログラムです.スタンドアロンバージョンのメンタルレイは.mi ファイルを読み込み,レンダリングを実行します.メンタルレイはコア自体だけでは動作せず,シェーダが常に必要なことに注意して下さい.シェーダがプラグインであることを考えれば,理解しやすいと思います. 3. mental ray base shader: メンタルレイがデフォルトでサポートしているシェーダです.基本的な光源(lihgt),基本的なマテリアル(material),たとえば 最も簡単なシェーダとしては Lambert シェーダなどがあります. 4. Application shaders: 各 DCC ソフトウェアや,CAD ソフトが独自に持っているシェーダです.3DSMax は 3dsmaxshaders, Maya は mayabase などというシェーダパッケージを持っています. 5. Custom shaders: ユーザ独自のシェーダや,メン...

スタンドアロンメンタルレイを使う

もしあなたが Maya や 3dsMax, XSI を使ってレンダリングしている場合にはこの記事は不要です.シェーダを書いたり,アニメーションのためにレンダーファームを使ったりという場合にはこの記事は多少参考になるでしょう. メンタルレイの参考文献 メンタルレイの参考文献は以下のものが重要です. Thomas Driemeyer, Rendering with mental ray, 3nd Ed. (Mental Ray Handbooks 1), ISBN-13: 978-3211228753 Thomas Driemeyer and Rolf Herken, Programming mental ray, (Mental Ray Handbooks 2), ISBN-13: 978-3211838518 Andy Kopra, Writing Mental Ray Shaders: A Perceptual Introduction (Mental Ray Handbooks 3), ISBN-13: 978-3211489642 しかし難しいので他の文献も探してみると良いでしょう.個人的にはこの中で一番わかりやすいのは Andy Korpa の本だと思います. http://www.writingshaders.com/ がサポートページです. 最初の二冊には日本語訳があるようですが,残念ながらバージョンが古すぎて(version 2.0,2.1)あまり使えないでしょう. メンタルレイを入手する 私の場合は会社でメンタルレイを使っているので問題ないのですが,個人で入手する場合には Maya, 3dsmax や XSI を買うというのが一番簡単だと思います.ただし,スタンドアロンが欲しい場合はちょっと複雑です.噂では,スタンドアロンは1000 ドル位ということですが,本当にいくらなのかは知りません. standalone の mental ray を入手する一番簡単そうな方法は Andy Kopra のシェーダ本を買う方法だと思います.この本にはメンタルレイの 3.6+が付属しています.先程 Amazonl.com をみたら 157 ドルでした.(2009-5-14(Thu)では15,000円です.) このメンタルレイは機能的には並列機能だけ除いてフルバージ...

メンタルレイシェーダ(shader)とは

メンタルレイのシェーダは実際には光が物体に当たった時にメンタルレイのコアから呼び出される C/C++ のコードであり,プラグイン(Plugin)という方が正しいと思います.シェーダという言葉は歴史的な経緯で残っているものだと思います.シェーダはユーザにかなりの自由度を与えてくれますが,実際にシェーダを書くことはなかなかないでしょう. シェーダの自由度が高いというのは,光が物体に当たった時にユーザがやりたいことならほぼなんでもできるという意味です.たとえばレンダリング中に光がある物体に当った時に email を送って知らせてくれるということさえ可能です.(メンタルレイ的にはそういうことはして欲しくないでしょうが,shader は単なるプラグインなので可能) しかし,なんでもできるということは一方で難しいということでもあります.特にメンタルレイは長い時間をかけて発展してきたことや,下位互換性(backward compatibility) を保つために複雑になっている部分もあります.

シェーダ(shader)とは

メンタルレイではシェーダが重要な役割を果たすのでここで述べておきます. シェーダ(shader) とは,光が物体に当たった時に,どのように物体の明るさを計算するかというプログラムコードです.(shade には影という意味があります.)しかし,これは最初にシェーダが考えられた時の元々の意味であって,現在はもっと拡張された意味を持っています.コンピュータグラフィクスでは物体をポリゴンなどの多角形で表現し,各頂点の明るさを計算し,そして多角形の内部を様々な方法で補間するということがかつて行なわれていました.時代と共に光と物体の相互作用の計算方法は発展し,複雑になっていきました.そしてシェーダの発展方向は主に二つの方向に進みました.一つはより速度,インタラクティブ性に重点を置いたハードウェアによるシェーディング,もう一つはよりリアリズムに重点を置いたソフトウェアによるシェーディングです. グラフィックスに特化したハードウェアは現在 GPU (Graphics Processing Unit) と呼ばれています.初期の GPU には固定されたシェーダ機能が実装されました.できるだけ高速に大量の Pixel を生成するには機能を固定し,深いパイプラインで高いスループットを得るという手法が実際的だったためです.しかし計算能力の発展によってより高品質をめざすようになり,シェーダはプログラム可能になりました.シェーダプログラミングは最初アセンブラ言語に近いものでしたが,やがて Cg などの Shading 言語が実装されるようになりました.それはますます発展してCUDA, OpenCL (2009 年現在)のような一般的な言語となり,シェーダを書くだけのものではなくなりました. 一方でメンタルレイのシェーダの出発点は高品質な画像の生成を第一の目的として発展してきました.高品質を達成するために光が物体に当った時にどのような現象が起きるかをシミュレートするのがシェーダの主な役割でした.特にハードウェアのシェーダは各ピクセルで独立した計算を行う,つまり 局所的(local) 計算は得意ですが,実際の現象は 大域的 (global)です.遠くの物体が他の物体に影を落とす.という日常で見かけることは既に global な現象で,一つの物体がシーン全体に影響する可能性があります.このような 大域...

このブログについて

このブログではメンタルレイというレンダリングソフトウェアについて書いていきたいと思います. メンタルレイとは メンタルレイ(mental ray)はドイツの mental images GmbH 製のレンダリングソフトウェアです.mental images 社は NVidia という会社の子会社です (2009年現在).Maya, 3dsMax, SoftImage XSI, などの DCC (Digital ContentsCreation) Software, あるいは Solidworks などの CAD などのレンダラとして利用されています.建築などの分野でも利用されていますが,StarWars や Matrix,最近では The Curious Case of Benjamin Button (邦題:ベンジャミン・バトン--数奇な人生) などの映画の特殊効果(Special Effect)に使われているようです. http://www.mentalimages.com/products/mental-ray.html http://www.mentalimages.com/gallery/motion-pictures.html 機能は豊富で高品質な画像を生成できる,というのが売りですが,なんでもできるというのは使うのが難しいという面もあります.特にシェーダー(shader) のカスタマイズの可能性はかなり広い一方,本当に使いこなすのは難しいと思います.通常は用意されているシェーダー(shader) を使うだけでもかなりのことができます.私の友人は mental ray を Ferrari に例えていました.Ferrari なのはイタリア人だからかもしれませんが,曰く,「どう使うか知らなければ動きもしないが,ちゃんと使えば (映画の) Matrix が作れる.」しかし,1ユーザとしてはもっと簡単だったらなあと思うことしきりです. ところで,私の知る限りでは,メンタルレイの情報はほとんどが英語で提供されているので,できるだけ英語を併記しておくことにします.英語のページもどうぞ.