
レイエスレンダリングは、3Dコンピュータグラフィックスにおいて写真のようにリアルな画像をレンダリングするために使用されるコンピュータソフトウェアアーキテクチャである。1980年代半ばに、現在のピクサーであるルーカスフィルムのコンピュータグラフィックス研究グループのローレン・カーペンターとロバート・L・クックによって開発された。 [1] 1982年に、映画『スタートレックII カーンの逆襲』のジェネシスエフェクトシーケンスの画像をレンダリングするために初めて使用された。ピクサーのRenderManはレイエスアルゴリズムの実装であったが、2016年時点で非推奨となり、RenderMan 21で削除された。[2]アルゴリズムを説明した元の論文によると、レイエス画像レンダリングシステムは「複雑な画像を高速かつ高品質にレンダリングするためのアーキテクチャ」である。レイエスは、アルゴリズムとデータ処理システムの集合として提案された。ただし、この文脈では「アルゴリズム」と「アーキテクチャ」という用語は同義語として使用されるようになり、この記事では互換的に使用されている。[要出典]
名前
Reyes は、 「Renders Everything You Ever Saw (これまでに見たものをすべてレンダリングする) 」の頭字語であり(この名前は、ルーカスフィルムの所在地に近いカリフォルニア州ポイントレイズをもじったものでもある)、光学画像システムに関連するプロセスを示唆している。Robert L. Cookによると、Reyes は 1987 年の Cook/Carpenter/Catmull SIGGRAPH 論文にあるように、最初の文字のみ大文字で書かれている。
建築
このアーキテクチャは、いくつかの目標を念頭に置いて設計されました。
- モデルの複雑さ/多様性: 視覚的に複雑で豊かな画像を生成するために、レンダリング システムのユーザーは、フラクタルやパーティクル システムなどの手続き型モデルを使用して生成される可能性のある、多数 (数十万個) の複雑な幾何学的構造を自由にモデル化できる必要があります。
- シェーディングの複雑さ: シーンの視覚的な複雑さの多くは、光線が固体オブジェクトの表面と相互作用する方法によって生成されます。一般に、コンピュータ グラフィックスでは、これはテクスチャを使用してモデル化されます。テクスチャは、ピクセルの色付き配列で、表面の変位や透明度、表面の反射率を表します。Reyes を使用すると、ユーザーは手続き型シェーダーを組み込むことができ、単純なルックアップ テーブルではなく、手続き型アルゴリズムを実装するコンピュータ プログラムを使用して、表面構造と光学的な相互作用が実現されます。アルゴリズムの大部分は、データ ストアからテクスチャを取得するプロセッサにかかる時間を最小限に抑えることを目的としています。
- 最小限のレイ トレーシング: Reyes が提案された当時、コンピュータ システムは処理能力とストレージの点で大幅に劣っていました。つまり、フォトリアリスティックなシーンのレイ トレーシングには、フレームごとに数十時間から数百時間もかかっていました。一般にレイ トレーシングを行わない Reyes などのアルゴリズムは、はるかに高速に実行され、ほぼフォトリアリスティックな結果が得られます。
- 速度: 2 時間の映画を 1 年間で 24 フレーム/秒でレンダリングすると、平均して 1 フレームあたり 3 分のレンダリング時間になります。
- 画像の品質: アルゴリズムに関連した不要なアーティファクトを含む画像は受け入れられないとみなされます。
- 柔軟性: アーキテクチャは、アルゴリズムを完全に再実装する必要なく、新しい技術が利用可能になったときにそれを組み込めるほど柔軟である必要があります。
Reyes は、滑らかな曲面、表面テクスチャ、モーション ブラー、被写界深度など、映画品質のレンダリングに必要だと考えられていたいくつかの効果を効率的に実現します。
Reyes は、パラメトリック パッチによって表されるような曲面を、それぞれが 1 ピクセル未満のサイズの小さな四辺形であるマイクロポリゴンに分割してレンダリングします。曲面を正確に近似するには多数のマイクロポリゴンが必要ですが、それらは単純で並列化可能な操作で処理できます。Reyes レンダラーは、高レベルのプリミティブを必要に応じてマイクロポリゴンにテッセレーションし、各プリミティブを最終画像で滑らかに見える程度に細かく分割します。
次に、シェーダー システムがマイクロポリゴンの各頂点に色と不透明度を割り当てます。ほとんどの Reyes レンダラーでは、シェーディング言語で記述された任意の照明およびテクスチャリング関数をユーザーが指定できます。マイクロポリゴンは、計算をベクトル化できる大きなグリッドで処理されます。
シェーディングされたマイクロポリゴンは、出力画像を生成するために画面空間でサンプリングされます。Reyes は、革新的な隠面アルゴリズム、つまりハイダーを採用しています。これは、モーション ブラーと被写界深度に必要な統合を実行する際に、ぼかしのないレンダリングに必要なジオメトリやシェーディング サンプルよりも多くのサンプルを必要としません。ハイダーは、確率的サンプリングと呼ばれるモンテ カルロ法を使用して、時間とレンズの位置にわたって各ピクセルのマイクロポリゴンの色を蓄積します。
パイプライン
基本的な Reyesパイプラインには次の手順があります。
- 境界。各ジオメトリ プリミティブの境界ボリュームを計算します。
- 分割。大きなプリミティブを、小さく分割可能なプリミティブに分割します。
- サイコロ。プリミティブを、それぞれがピクセルとほぼ同じサイズのマイクロポリゴンのグリッドに変換します。
- シェード。マイクロポリゴン グリッドの各頂点の照明とシェーディングを計算します。
- グリッドを個別のマイクロポリゴンに分割し、それぞれに境界を設定し、可視性をチェックします。
- 非表示。マイクロポリゴンをサンプリングして、最終的な 2D 画像を生成します。
この設計では、すべてのプリミティブが処理されるまで最終イメージを出力できないため、レンダラーはフレーム バッファー全体をメモリに格納する必要があります。一般的なメモリ最適化では、ダイシング ステップの前にバケット化と呼ばれるステップが導入されます。出力イメージは、通常 16 x 16 ピクセルのサイズの「バケット」の粗いグリッドに分割されます。次に、オブジェクトはバケットの境界に沿って大まかに分割され、位置に基づいてバケットに配置されます。各バケットは個別にダイシングされて描画され、前のバケットのデータは、次のバケットが処理される前に破棄されます。この方法では、現在のバケットのフレーム バッファーとすべてのジオメトリ プリミティブの高レベルの記述のみをメモリに保持する必要があります。一般的なシーンでは、これにより、変更されていない Reyes アルゴリズムと比較して、メモリ使用量が大幅に削減されます。
レイエスレンダラー
次のレンダラーは、何らかの方法で Reyes アルゴリズムを使用するか、少なくともユーザーがそれを選択して画像を作成できるようにします。
- Digits 'n Art の 3Delight (リンク)
- Aqsis (リンク) オープンソース
- jrMan (リンク) オープンソース
- PixarのRenderMan Pro ServerとRenderMan for Maya(リンク)バージョン20(2015年リリース)まで[3]
- Pixels 3D レンダラー (リンク)
- Pixie (リンク) オープンソース
- DotC Software の RenderDotC (リンク)
- Side Effects Software のマントラ(リンク)
- Poser の FireFly (リンク)
- ベーカリーリライト(リンク)
参考文献
- ^ RenderMan@20: Ed Catmull と Dana Batali が Pixar のキラー アプリについて語る"
- ^ 「Pixar、RenderMan 21をリリース | CG Channel」2016年7月20日。 2021年3月11日閲覧。
- ^ 「Pixar が RenderMan 21 をリリース | CG Channel」www.cgchannel.com . 2016 年 7 月 22 日閲覧。
- Robert L. Cook、Loren Carpenter、Edwin Catmull。「Reyes イメージ レンダリング アーキテクチャ」。コンピュータ グラフィックス ( SIGGRAPH '87 Proceedings)、pp. 95–102。
- アンソニー・アポダカとラリー・グリッツ。『Advanced RenderMan: 映画用 CGI の作成』。Morgan Kaufmann Publishers。ISBN 1-55860-618-1
外部リンク
- レイエス『原始人と哲学』
- Rendermanへようこそ: Reyes
