RenderMan
From Wikipedia, the free encyclopedia
RenderMan(レンダーマン、旧PhotoRealistic RenderMan)はピクサー・アニメーション・スタジオによって開発されたレンダリング用のソフトの一群。
ピクサーは1986年、ルーカスフィルムのコンピュータ・アニメーション部門をスティーブ・ジョブズ(Appleの前CEO、アップルコンピュータ創業者の一人)らが買収して設立した会社であるが、RenderMan自体の開発はピクサー設立前からコンピュータグラフィック (CG) 研究者であるエドウィン・キャットマルらによってなされていた。
元々の構想は、CG業界の標準となるレンダリング・インタフェース言語の構築であり、そのシェーディング言語のフォーマットそのものがRenderManと呼ばれていた。その後、ピクサー・イメージ・コンピュータ (PIC) というピクサーが販売していた画像処理専用の高性能コンピュータ(スティーブ・ジョブズによると「顧客はある政府機関」)に搭載されていたレンダリングシステム「Reyes」を、RIB (RenderMan Interface Bytestream) フォーマットへの対応を中心に改良した物が「PhotoRealistic (PR) RenderMan」として商品化され、『アビス』『ターミネーター2』で使用された事で注目を浴びた。2005年にはMayaのプラグインとして機能するRenderMan for Mayaが発売され、GUIによる設定が可能になった。
現在も技術更新が継続されており、フォトリアリスティックな3DCGを制作する上で役立つことから、ピクサーのCGアニメーション作品は勿論の事、『ジュラシック・パーク』、『スター・ウォーズ』、『ロード・オブ・ザ・リング』などのハリウッドによるVFXでは不可欠なレンダリングツールのデファクトスタンダードとなって、随所で頻繁に使用されている。
この結果、映画産業への多大な技術的貢献が評価され、開発者のキャットマルらにはアカデミー賞が授与された[1]。
ピクサーがディズニーに買収されたことによって、現在RenderManはディズニーの資産である。
対応アプリケーション
過去の対応アプリケーション
RenderMan 21.x以前
RenderMan 22でライブレンダリングのためのインターフェースが旧来のRIB形式から新しいRILEYインターフェースへと変更され[10][11]、商用顧客を優先するためとしてBlenderへの対応を後回しとした[10] (24で復活[7])。
RenderMan 20以前
昔はREYESレンダリング/RSL (RenderMan Shading Language) シェーダーのRenderMan仕様がVFX業界におけるレンダリングのデファクトスタンダード(事実上の標準)となっていたが、その後、モダンパストレーシングレンダラー/OSLシェーダーにとって代わられたため、RenderMan 20以前のREYESモードのみにしか対応していないサードパーティー製ソフトウェアも多い。
- サードパーティー
- NukeX/NukeStudio (PrmanRenderノード)[12]
- サードパーティー (廃止)
- サードパーティー (不明)
また、過去には、Power Animator用のATORプラグイン (Pixar)、Maya用のMayaManプラグイン (Animal Logic) やLiquidプラグイン(オープンソース)、Rhinoceros用のRhinoManプラグイン (Brian Perry)、Lightwave用のLightManプラグイン (Timm Dapper)、3ds Max用のMaxManプラグイン (Animal Logic) やPaxRendusプラグイン (Archonus)、Softimage用のSoftManプラグイン (Animal Logic)、Poser用のPoserManなども存在していた。
互換レンダラー
RenderMan 20以前の互換レンダラー
古くよりRenderManの仕様がRenderManインタフェース仕様として公開されていたため、RenderManには多くの互換レンダーが存在した。
過去には、DGS Renderer(Digital Arts製)、SunART(サン・マイクロシステムズ製)、JrMan (GPL)、Pixie (LGPL)、Angel(Ian Stephenson作、無料)、Aqsis(BSDライセンス)、RenderDotC (Dot C Software製)、BMRT/Entropy (後のNVIDIA Gelato)、3Delight 12以前、AIR (SiTex Graphics製) などの互換レンダラーも存在した[18]。なお、過去にPixarは、互換レンダラーの一つであるEntropyの開発元Exluna社を、RenderManの特許侵害等で訴え、販売差し止めにしている (Blue Moon Rendering Tools参照)。
その他、変換ツールを使用することでRenderManとの互換性を確保したレンダラーも存在する。NVIDIAのGelatoは別途提供されたRibelato及びrsl2gslを用いることでRenderManとの互換性を確保していた[19][20]。また、Side Effects SoftwareのHoudiniに搭載されているMantraレンダラーは、独自のVEX言語がRSLに近いほか、rmands / slo2otl.pyを通すことでRenderManとのシェーダーバイナリの互換性を確保していた[21][6] (なお、Houdiniはsdl2otl.pyを通すことで3Delightとのシェーダーバイナリ互換性も確保している[6])。
なお、互換レンダラーであっても、コマンド名やコンパイル済みシェーダーの拡張子は衝突しないように異なったものとなっている。
RenderMan RISモードの互換レンダラー
2014年にリリースされたRenderMan 19ではOSLシェーディング言語対応のパストレーシングレンダリングであるRISモードが搭載されるようになり[22][23]、2016年のRenderMan 21以降は旧来のRenderManの仕様であったREYESレンダリング及びRSLシェーディング言語が廃止されてRISモードに一本化された[24][25]。これにより旧来の互換レンダラーとの互換性が失われた。
なおRenderMan互換レンダラーの一つであった3Delightは2013年の3Delight 11以降パストレーシングモードを備えており[26]、2017年の12.5以降はOSL言語にも対応する[27]など一部の互換性があった。Blender向けの公式RenderManアドオンは古い3Delightアドオンを基にして作られた[28]。
Hydraレンダーデリゲート対応レンダラー
RenderManは2019年の22.5以降、USD (Universal Scene Description) のHydraレンダーデリゲート対応レンダラーの一つとなった[29]。
Hydraレンダーデリゲート対応レンダラーについてはUniversal Scene Description#レンダーバックエンドを参照。
RenderMan互換レンダラーの比較
| レンダラー | 公式対応ソフトウェア | レンダリング コマンド | 対応シーン形式[n 1] | シェーダー コンパイラ | 対応シェーダー[n 1] | シェーダーバイナリの拡張子 | MIPMAP生成プログラム | フレームバッファー/フリップブック |
|---|---|---|---|---|---|---|---|---|
| RenderMan 20以前互換レンダラー | ||||||||
| RenderMan 20以前 (REYESモード)[n 2] |
Maya[n 3][6][15] | 'prman'[30] | RIB | 'shader'[31] | RSL (.sl) | .slo[31][32] | 'txmake'[33] | 'it'[34] |
| 3Delight 12以前 (RSLモード) |
Maya、3ds Max、Katana、DAZ Studio(搭載)、Softimage(廃止)[n 4][6][15] | 'renderdl'[30] | RIB | 'shaderdl'[31] | RSL (.sl) | .sdl[31][32] | 'tdlmake'[35] | 'i-display'[36] |
| AIR | Maya[n 5][37]、Rhinoceros 3D[n 6][38]、Houdini[39][6]、Massive[40] | 'air'[30] | RIB | 'shaded'[31] | RSL (.sl) | .slb[31] | 'mktex'[41] | 'airshow'[42] |
| Angel | 'angel'[30] | RIB | 'giles'[31] | RSL (.sl) | .slc[31] | |||
| Aqsis | Blender[n 7] | 'aqsis'[30] | RIB | 'aqsl'[31] | RSL (.sl) | .slx[31][32] | 'teqser'[43] | 'piqsl'[44] |
| BMRT | 'rendrib'[45] | RIB | 'slc'[45] | RSL (.sl) | .slc[45] | 'mkmip'[46] | 'iv'[47] | |
| Entropy | 'entropy' | RIB | 'sle' | RSL (.sl) | .sle | 'mkmip' | ? | |
| Pixie | 'rndr'[48] | RIB | 'sdrc'[49] | RSL (.sl) | .sdr[49] | 'texmake'[50] | ||
| RenderDotC | 'renderdc'[30] | RIB | 'shaderdc'[31] | RSL (.sl) | .so/.dll[32] | 'texdc'[51] | ? | |
| JrMan | 'jrman' | RIB | RSL (.sl) | 'mktxr' | ||||
| Houdini Mantra (Micropolygonモード) |
Houdini (搭載) | 'mantra' | bgeo[52]、RIB[53][54]等 | 'vcc'[55] | VEX (.vfl)[55]、RSL (.sl)[55] | .otl | 'icp'[56] | 'mplay'[57] |
| NVIDIA Gelato | Maya[n 8]、3ds Max[n 9][58] | 'gelato' | Pyg[n 10][59]、RIB (Ribelato経由) | 'gslc'[60] | GSL (.gsl)、 RSL (.sl、rsl2gsl経由) | .gso[60] | 'maketx'[61] | 'iv'[62] |
| Guerilla Render | Maya[63] | 'render'[64] | RIB[63] | RSLサブセット[63] | ||||
| RIB及びOSL対応レンダラー | ||||||||
| RenderMan (旧RISモード) |
#対応アプリケーション参照 | 'prman' | RIB | 'oslc'[65] | OSL (.osl)[65] | .oso[65] | 'txmake' | 'it' |
| 3Delight 12以前 (OSLモード) |
RSLモードの項を参照 | 'renderdl'[66] | RIB[66] | 'oslc' | OSL (.osl)[66] | .oso | 'tdlmake'[35] | 'i-display'[36] |
| USD及びOSL対応レンダラー | ||||||||
| 3DelightNSI[n 11] | Maya、Katana、Houdini | 'renderdl'[67][68] | NSI[67]、USD (HydraNSI経由[69]) | 'oslc'[68] | OSL (.osl)[70] | .oso | 'tdlmake'[35][68] | 'i-display'[68] |
| Arnold 6.0.2.0以降 | Maya(搭載)、3ds Max(搭載)など | 'kick'[71] | ASS[71]、USD[72] | 'oslc'[73] | OSL (.osl)[73] | .oso[73] | 'maketx'[74] | |
| RenderMan非互換レンダラー (参考) | ||||||||
| NVIDIA Mental Ray | Maya(過去に搭載)、3ds Max(過去に搭載)、Softimage(搭載)など | 'ray' | MI[75] | 'ray -mslc'(廃止)[76] | MetaSL (.msl/.xmsl)[77] | .so/.dll[77] | 'imf_copy'[78] | 'imf_disp'[79] |
- 原則的にC++などの汎用プログラミング言語を除く
- 旧PhotoRealistic RenderMan (PRMan)
- HoudiniやCinema 4D (Cineman) などで使うこともできた
- HoudiniやCinema 4D (Cineman)やBlender (3Delight/Blenderアドオン)などで使うこともできる
- AIR Stream Maya-to-AIR plug-in
- RhinoAirプラグイン
- RIBMosaicアドオン
- Mangoプラグイン
- Amarettoプラグイン(Frantic Films製)
- Pythonベース
- 3Delight 13以降
RSLシェーダー構築ツール
RenderManのMaya版にはRSLシェーダー構築ツールのSLIMが付属していた[80]。互換レンダラーでは、AIRレンダラーがVshadeを付属していた[80]。その他、単体のRSL構築ツールとしては、ShaderManやShrimpが存在した[80]。