RenderMan について Pro Server
RenderMan Pro Serverについて
PhotoRealistic RenderMan は、3Dシーン記述情報からハイクオリティな2D画像を生成するレンダリングシステムです。シーン記述はRenderMan Interfaceを通して作成され、一般的には以下のもので構成されます:
- シーン内に存在するジオメトリの記述
- ジオメトリをどのようにシェーディングすべきかを記述する機能に対する参照
- 光源の特定(タイプ、位置、方向)
- レンダリング合成のピクチャが画像化されるために通過する仮想カメラの特定
また、シーン記述は、例えばエイリアシングを回避するためにどれだけ試みるか、といったレンダリングシステムのオペレーションを制御するさまざまなパラメータだけでなく、出力画像に対する出力先(例えばファイルまたはフレームバッファ)を指定することもできます。
シーン記述は、通常は PhotoRealistic RenderMan にファイルで提供されます。このファイルは、RenderMan Interfaceで指定されたインターフェースのルーチンを呼び出すモデリングシステムによって作成されます。このファイルの形式は、RenderMan Interface Bytestreamプロトコル、RIBによって定義され、ASCIIとバイナリデータを混在させることができます。
以下に記載されているファイルとユーティリティーは、このマニュアルのReference Documentationの所で定義されています。詳細および更なる情報に関しては、マニュアルの当該個所を参照してください。最新リリースの「what’s new」の概要に関しては、リリースノートを参照してください。
The RenderMan Interface
RenderMan Interfaceは、現在のところ、Version 3.0の仕様で最初に発表されたC言語バインディングと、Version 3.1で搭載されたRenderMan Interface Bytestream (RIB) プロトコルという2つの形式で指定されています。これらの2つのRenderMan形式は、RIBの一方向性によって強制される幾つかの制限を除き、可能な場所ではどこでも直接対応します。
PhotoRealistic RenderManは、後者の使用方法を直接的にサポートし、PRManはコマンドラインから起動され、入力としてRIBストリームを投入します。後者の方式の強みは、クライアントサーバーシステムモデルをサポートし、マシン間でレンダリングをより簡単に分配することです。さらには、RIBストリームはファイルに保存することができ、後に、あるいは異なるシステム上でのレンダリングを容易にします。
PRManはC言語バインディングをサポートしていますが、レンダラと直接リンクすることができる共有オブジェクト経由の場合のみ有効です。
PhotoRealistic RenderMan は異なるプログラムとして起動するため、ユーザーはRIBストリームを作成するための方法をいくつか用意している必要があります。これを(例えばエディタなどで)直接行うことも可能ですが、ご自身のデータをlibrib.aとリンクさせることによって、RIBクライアントライブラリを使用することを推奨します。このライブラリは、レンダリングライブラリが行うのと同様の方法でC言語へとリンクしますが、実行時にレンダリングを実行するのではなく、プログラムでRenderManコールによって生成されるRIBストリームを含むファイルを作成します。
The RenderMan Interface Bytestream
RenderMan Interface Bytestreamの最もコンパクトな形式は、人が読みとれるASCIIフォームのバイナリエンコード版であり、C言語バインディングに対して直接変換します。レンダラはこれらのフォームを交互に使用することができますが、RIBファイルをあるバージョンから好みのものへ変換するcatribというユーティリティーがPhotoRealistic RenderManに同梱されています。ソフトウェアによって強制される命名規則はありませんが、RIBファイルであることを示すために.ribという拡張子を使うことを推奨します。
PhotoRealistic RenderMan
RIBファイルを入力として取得する実行可能なレンダラは PRMan と呼ばれ、直接呼び出されるものです。レンダラが起動しているとき、特定のハードウェアデバイス向けのディスプレイデバイスドライバまたはピクセルを受け取るファイルを含有しているディスプレイサーバーへピクセルを送り出します。バージョン3.8の初期は、ディスプレイサーバーは動的にリンクされたライブラリ、あるいはDSO形式にすることができます。もし標準以外のフレームバッファや画像ファイルフォーマットを使用したい場合は、独自のディスプレイドライバを書いて、インストールする必要があります。詳細な情報は、 Custom Display Drivers をご覧ください。
もし、RenderMan Interfaceを経由して、rgbまたはrgba画像ファイルを出力するようにレンダラを設定した場合、デフォルト表示ドライバは TIFF file を出力します。RIBファイル同様、命名規則はありませんが、拡張子として .tif を出力します。RIBファイル同様、命名規則はありませんが、拡張子として.tifを使うことを推奨します。また、レンダリングは、他のファイル形式や、マシンの各タイプに対して標準カラーframebufferでの画像の表示方法も可能です。
The RenderMan Shading Language
RenderMan Interfaceには、 Shading Language の記述を含みます。Shading Languageを使用すると、レンダリング処理中に発生するさまざまなタイプのオペレーションに対して独自のルーチンを書き出すことが可能になります。シェーダ用のソースコードはファイルに書き出され、その後 shader というユーティリティーを使ってコンパイルされます。コンパイラは入力ファイル名に条件を付けませんが、シェーディング言語のソースコードであることを示すために、拡張子 .sl を使用することを推奨します。コンパイラは、各シェーダまたはソース内の関数に対してファイルを1つずつ生成します。各ファイルは、シェーダまたは関数名の後に拡張子 .slo が付きます。注意: ソースファイルの名前は、必ずしもシェーディング言語のオブジェクトファイル名と関連する必要はありません。
レンダリング中に、レンダラは使用している各シェーダに対する .slo ファイルを見つけることができなくてはなりません。レンダラにシェーダオブジェクトファイルを見つけるための場所を伝えるsearchpathと呼ばれる PhotoRealistic RenderMan 従属型のRiOptionがあります。詳細は、 PRMan Options: Search Paths をご覧ください。環境設定ファイルは、シェーダサーチパスを制御することもできます。
Texture Files
現在のところ、テクスチャデータにアクセスするために使うシェーディング言語の関数は、 texture, environment, and shadow の3つがあります。これらの関数を使用するには、レンダラが適切なテクスチャファイルを見つけることができなければなりません。それをシェーダの関数に対して引数として与えたときにファイルのパス名をフルで提供するか、ファイル名のみを与えて、RiOption searchpathまたは環境設定ファイルを使用してレンダラに探し場所を伝えることができます(詳細に関しては、 PRMan Options: Search Paths を参照してください)。
テクスチャファイルは、画像ファイルまたはzfilesを入力として取り込む txmakeというユーティリティーを使って作成されます。作成される入力のタイプとテクスチャファイルのタイプを指定するtxmake 対するコマンドラインオプションは、複数あります。通常、シャドウマップはzfileから作成され、テクスチャマップはTIFFファイルから作成され、環境マップは環境タイプによって1つあるいは6つのTIFFファイルから生成されます。Zfileはレンダラによって生成されますが、入力に使用するTIFFファイルはレンダラによって生成されるか、(デジタイザのような)他のソフトウェアから取り込みます。
テクスチャファイルには大量の情報が含まれており、簡単に大容量になります。しかしながら、テクスチャファイルは、ファイルが大きくなりすぎないように、さまざまなデータ圧縮方式を使って作成されます。ファイルサイズは、入力画像のデータに依存します。もし大きな画像に対して txmake を使用しようとするとき、ディスクスペースの大部分を使い切っても驚かないでください。
また、 PRMan レンダラの内部からテクスチャマップを作成するRenderManコールもあり、これは txmake を呼び出すのと同等です。実行中にテクスチャマップを計算および作成するモデリングプログラムは、これらのコールを使いたいと思うかもしれませんが、大抵の場合、レンダラを実行する前にテクスチャマップを作成する方が適切です。
テクスチャファイルのさまざまなタイプに対する命名規則は強制されませんが、テクスチャマップには .tex 、環境マップには .env 、シャドウマップには .shd を使用することを推奨します。テクスチャファイルに関する情報を取得する必要がある場合、テクスチャファイルに関するタイプ、サイズ、そしてその他の役立つ情報を出力する txinfo というコマンドラインユーティリティーがあります。
Display Utilities
以前の PhotoRealistic RenderMan のリリースでは、ディスプレイサーバーを使用する複数のアプリケーションがありました。 PhotoRealistic RenderMan バージョン3.8では、これらのアプリケーションの大半( bktdspy 、picdspy、tiffdspy、txdspy、tgadspy 等)は、sho の改良バージョンに置換されました。
