FrontPage 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Am Approximate Global Illumination System for Computer-Generated Films

Eric Tabellion and Arnauld Lamorlette,Am Approximate Global Illumination System for Computer-Generated Films

タイトル

CG アニメーション映画のための近似グローバルイルミネーションシステム

概要

シュレック 2 で用いられたグローバルイルミネーション効果にかんする論文。

論文日本語訳

abstract

コンピュータグラフィックスアニメーションのプロダクション(制作現場)で用いられているライティングモデルは、フレキシブルであり、コントロールがしやすく、そして計算が効率的でなければいけません。

グローバルイルミネーション(global illumination)技法は、それ自身がフレキシビリティがなく、利用が困難で、スピードが遅く、この分野で生成される膨大な量の画像の要求には達しません。

本論文では、CG アニメーションのプロダクションレンダラ(production renderer. 訳注 CGプロダクションで用いられるレンダラ。高速・高信頼性・高品質などの要求が求められる)への間接照明効果の統合とその実装について提案します。

効率的であるという理由から、我々はレンダリング方程式(rendering equation. 訳注 光の伝達を記述する方程式。レイトレーシングなどの多くのレンダリングアルゴリズムはこの方程式で統一的に表現することができる)を部分的に解くことを選びました。

この約束ごとが、ファイナルギャザリング(final gathreing, 訳注: 最終的にサーフェスに入射してくる間接照明をすべて集めてシェーディングを行なうこと)計算のスピードアップをどのように可能にし、またどのようにノイズを減らすかについて述べます。

我々は、効率的なレイトレーシングの戦略と、それのディスプレースメントマッピングとプログラマブルシェーダをサポートするマイクロポリゴン(micro-polygon, 訳注: ピクセルよりも小さいポリゴン)ベースのスキャンラインレンダラへの統合について解説します。

修正放射照度勾配キャッシング(modified irradiance gradient caching)技法と近似のライティングモデルを組み合わせます。

近似のライティングモデルは、キャッシュのコヒーレンス(coherence, 類似度、一貫度)を向上させ、また複雑なシーンを映画レベルの高解像度の画像へとレンダリングするための優良なスケーラビリティを提供します。

最終的なレンダラで間接照明をコントロールするための、アーティスト向けに作成されたツールについても解説します。

我々のアプローチは、十分な解像度を提供し、アートディレクト(art direct, 訳注: アニメーションの内容に合わせた色調や構成・照明の当て方などの演出の方向性)が容易であり、そしてプロダクションワークのいたるところの作業分野で生成される画像の品質を、アニメータが大きく向上させることが可能です。

1. 導入

典型的なプロダクションレンダラでは、Reyes(レイズ、レイエス) アーキティクチャ [Cook et al. 1987] (訳注: RenderMan の前身となったレンダリングアルゴリズム)の基本理論が多く用いられています。

これらは、プロダクションで利用される莫大な量のジオメトリとテクスチャを扱えることを主眼に設計されています。

これらのレンダラは、ストリーミングやキャッシングなどの技法を使う傾向があります。なぜならほとんどのシーンはコンピュータのメインメモリに入りきらないからです。

このようなレンダラでは、通常、プログラマブルシェーダ [ Upstill 1990; Driemeyer and Herken 2003 ] を通して、フレキシブルなインターフェイスを提供しています。これはユーザにカスタムなライティングモデルとシェーディングモデルを実装させることを可能にします。また、グローバルイルミネーション技法を提供するために、その特徴機能とシェーディング言語を拡張しました。

特殊効果分野では、レイトレーシングの利点を用いて、物理的なシミュレーションと現実のマテリアルと照明環境の見た目をマッチさせてきました [Apodaca et al. 2002]。これらの手法コンピュータ生成の要素を実写に統合させるのを大きく facilitate します。比較して、ほんのわずかなアニメーション作品が、その視覚効果にグローバルイルミネーション効果を用いています。一般的に、非常に複雑でとても詳細なシーンをレンダリングするために、シンプルな直接光モデルが使われています。結果として、シーン要素間で重要な光のやりとりが失われます。コンピュータアニメーションは、非常に膨大な数の画像を繰り返しレンダリングする必要があります。また同時に高度に stylized 目的を pursing しながら。この画像製作過程において、グローバルイルミネーションを用いるためには、レンダリング時間を最小にし、また非常に短いフィードバックループでフレキシブルなアートディレクションが可能であるツールが与えられていなければなりません。

この要求を解決するために、我々は間接照明ツールを開発しました。これはワークフローの効率とコントロールしさすさという核心的な制約を解決します。計算を劇的に高速化するいくつもの技法を用いて、非常に重要な視覚的な寄与(contribution)をパフォーマンスを落とすこと無く提供できるグローバルイルミネーション効果をレンダリングするという方向へ向けて我々は研究を行ないました。レイトレーシング中では、疎なジオメトリ分割をしたジオメトリのみを考慮します。放射エネルギー(radiant exitance)テクスチャマップを、ファイナルギャザリングを高速化し、また最終レンダリングへのノイズを減らす手助けとするために用います。我々は放射照度キャッシング(irradiance caching)を用います。そして近似ライティングモデルと組み合わせることで、その効率性と非ディフューズ面への応用範囲を向上させます。減衰(falloff)とカラー補正(color correction)のコントロールは、ユーザに最終的なシェーディングの補正を可能にさせます。結果として、が視覚的に許容できる近似を行なうことができ、またアーティストにクリエイティブな可能性を大きく発揮できる、効率的なツールを提供することができました。

本論文では、我々のレンダリングシステムとその根底となる技法について述べます。まず、我々の研究に触発を与えた既存研究の概要を説明します。我々のシステムの簡潔な概要を示し、その後我々が行なった近似や最適化について述べます。我々が開発したツールと、その利便性、そのワークフローについて述べます。最後に、アニメーション映画のプロダクションで利用した本ツールによる、画像とレンダリング時間の結果について述べます。

2 既存研究

グローバルイルミネーションはここ 20 年にわたる多くの研究の題目でした。ラジオシティアルゴリズムよりも幅広い範疇の光の経路を解くため、Kajiya [1986] によりレンダリング方程式を解くためのモンテカルロパストレーシングがまず用いられました。実装は非常に汎用的でシンプルですが、この手法はとても低速です。解を収束させるために、光の方向にサンプルされる必要のある経路の数は excessive です。ライトトレーシングなどの手法は、代わりに光源からのサンプル経路を用います。ここでの取りうる経路の数は非常に膨大で、カメラへ向かう有効なランダムウォーク(random walk)へ集中させる効率的なライトトレーシングには、確率密度関数(possible density function)の利用が必要になります。双方向パストレーシング(bidirectional path tracing)と呼ばれるこれらの拡張は、カメラからの経路とライトからの経路を、最終的な画像への各ペアの経路の寄与を戦略的に重み付けて結合させます[Lafortune and Willems 1993; Veach and Guibas 1994]。

分散減少(variance reduction)法もまた活発に研究されてきました。なぜなら分散減少法はほとんどのモンテカルロサンプリングアルゴリズムで有益だからです。この手法は、解の収束を早めることで、レンダリングのパフォーマンスを大きく改善させることができます[Lafortune 1996; Veach and Guibas 1995; Jensen 1995]。

Veach と Guibas [1997] は、メトロポリス光輸送(metropolis light transport)と呼ばれる手法を提案しました。これは前回探索した経路に変異(mutation)を与えます。この手法の目的は、経路空間のコヒーレンスを利用し、最終画像に影響の大きい経路に計算を集中させることです。各経路に注意深く重み付けを行ない、秀逸な変異戦略を用いることで、このアルゴリズムは他では解くことが困難な照明環境を効率的に扱うことができます。

これらのアルゴリズムを複雑なシーンに適用するために、 Pharr と Hanrahan [1996] は、全体がコンピュータのメモリに収まりきらないシーンをレイトレーシングエンジンでが扱えることを可能にする、ジオメトリキャッシング(geometry-caching)フレームワークを提案しました。Pharr [1997] は、キャッシュコヒーレンスを最大化するようにレンダリングアルゴリズムの操作を再順序化することで、さらにこの手法を向上させました。

平行する研究の方向では、最終画像にあまり影響を与えることなく、補外(extrapolate)することができる似たような結果を再計算することを避けるための、キャッシュ戦略を探索しました。Jensen [1996] は 2 パス(pass)のアルゴリズムとしてフォトンマッピングの利用を提案しました。最初のパスでは、フォトンをライトトレーシングのときと同じようにして経路をたどってシーン内を散乱させ、フォトンマップへと保存します。二番目のパスはカメラからの経路をサンプルし、ライトへ向かっての再帰的なレイトレーシングの代わりにこの情報を再利用します。フォトンマップはシーン内のすべての光の経路のキャッシュとして働き、それを用いることは既存のアルゴリズムに比べて appropriately 劇的にパフォーマンスを向上させます。明解で実践的なフォトンマッピング技法は [Jensen et al. 2002] で見つけることができます。

Ward と Heckbert [1992] は、理想ディフューズ面での放射照度関数(irradiance function)の特徴と空間コヒーレンスを利用し、シーン内で間接照明の疎なサンプリングを行ないました。ライトギャザリングが生じるとき、結果の入射する放射照度値は、放射照度勾配ベクトル(gradient vector)と共に空間細分割データ構造へ保存されます。この情報は、キャッシュされたサンプル間を補外するために再利用されます。誤差関数が定義されています。これはある位置でキャッシュされたサンプルが再利用できるかどうか、もしくは disregarded できるかどうかを決定します。この手法は、レンダリングの効率を大きく向上させます。なぜならレンダリングされる画像のすべてのピクセルでの間接照明のサンプリングを回避できるからです。残念ながら、この手法は、対象のサーフェスが複雑な双方向反射分布関数(bidirectional reflectance distribution function, BRDF)を持つときはうまく適用できずその利点を失います。

節 4 で述べる最適化はこの研究の上に築かれています。以下は完全なグローバルイルミネーション解の一連の近似になります。

3 システム概要

我々のシステムは、図 2 のように 5 つのステップで画像をレンダリングするように設計されています。各ステップでは、再利用することもできる情報を生成し、ファイルへ保存されます。各ステップは別々のプロセスで実行することができ、必要であれば複数起動することもできます。テクスチャとデプスマップ情報は必要に応じてロードされ、テクスチャキャッシュメモリマネージャで取り扱われます。

最初の 3 つのステップでは、シャドウマップ、ラジオシティマップ、ディープフレームバッファ(deep frame buffer)をおのおの生成します。シャドウマップは直接照明による影を計算するために必要になります。ラジオシティテクスチャマップはオプションで、これはライトのギャザリング計算を高速化するために利用します。ディープフレームバッファは、カメラから見えるすべてのマイクロポリゴンを含んでおり、これは後のプロセスでラスタライズされ保存されます。

4 番目のステップはおのおの可視のマイクロポリゴンを反復的に処理し、ライトギャザリングレイトレーシングアルゴリズムを用いて間接照明を計算します。これは放射照度キャッシュを使って間接照明のサンプリングを避けます。

最終ステップは、節 4.6 で記述する近似ライティングモデルを用いて各マイクロポリゴンをシェーディングし、その後のレンダリングされた画像を出力します。

レイトレーシングは最終シェーディング時には行なわれません。間接照明を導出するために放射照度キャッシュのみが用いられます。

4 近似と最適化

グローバルイルミネーションの分野における研究の多くは、レンダリング方程式 [ Immel et al. 1986; Kajiya 1986 ] を効率的に解くことに焦点が当てられてきました。

式1

ここで L_{e} は自己放出する放射輝度であり、L_{i} は入射する放射輝度です。f_{r} は位置 x、法線 n のサーフェスの BRDF を意味しています。複雑な光の経路の多くが最終的な画像へ寄与するときや、複雑な BRDF を持つサーフェスから放たれる間接照明をシミュレーションするときは、単純なアルゴリズムの効率は急激に落ちてしまいます。洗練されたアルゴリズムでも、複雑な照明条件では解を計算するのは intolerably に遅くなります。

それゆえ、最も重要な視覚的 payoff に寄与するレンダリング方程式の項を慎重に選択しました。これらの近似はレンダリング計算を高速化し、ユーザのワークフローを改善するために利用します。

4.1 経路の長さ

非再帰のライトギャザリングアルゴリズムを用いるので、間接照明の反射が一回の経路のみをシミュレートします。

間接照明の寄与(contribution)は、シーン内のある点で、半球上でレイを追跡し、レイが交差したサーフェスの所でプログラマブルサーフェスシェーダを評価することで、放射照度を評価して計算されます。この条件でシェーダが呼ばれたとき、シェーダは直接光の寄与のみの総和を取ります。これは再帰が生じるのを防止するためです。ラジオシティマップが前計算されていれば、サーフェスシェーダは呼ばれず、代わりに対応するテクスチャマップをアクセスします。

この制約は、ユーザに、画像に寄与するまでに光が数回反射するような間接照明が強い条件をフェイクするよう強いることになります。実際には、ユーザは仮想的な光源や、二次的(secondary)な間接照明をシミュレートし直接的かつ分離的なコントロールを提供する、跳ね返りジオメトリ(bouncing geometry)を配置することができます。

この選択により、フレームワークを間接照明寄与が強い部分を切り捨てるように制約を設けることで、膨大なレンダリング時間をユーザに課せないようにします。また、ラジオシティマップの前計算の必要を無くすることで、より良いワークフローを提供します。

4.2 サーフェスプロパティ

我々はさらに、解の範囲をディフューズ面の相互反射のみに狭めることにしました。これはスペキュラー間接照明をお互いのサーフェスに放射してしまうのを防ぐのに有効です。これらの現象のシミュレーションには、より洗練されたサンプリングアルゴリズムの利用が必要になったりしますが、しかし視覚的な寄与はそれほど向上しません。コースティクスやグロス反射はこのルールの例外です。これを効率的に解くより詳細なアルゴリズムは将来の研究です。

ライトギャザリング中にプログラマブルサーフェスシェーダが評価されるとき、それらは BRDF のディフューズ要素のみを考慮するように命令が組まれます。これはスペキュラー相互反射が生じるのを防ぎ、しかし局所的なカラーテクスチャマッピングは捉えます。カラーテクスチャマッピングは豊かなカラーブリーディングの寄与を与えます。

最終シェーディング中では、カメラや理想スペキュラー反射を通して直接見えるサーフェスに対してはこの制約は極端なケースのみになるでしょう。これらのケースでは、我々のゴールは、放射照度キャッシュ機構の利点と効率性を保ちつつも、間接照明を任意の BRDF と作用させ合うことです。節 4.6 では、これらの作用の重要な特徴を捉え、我々のゴールを達成する近似のライティングモデルを記述します。

4.3 簡略化ジオメトリのレイトレーシング

複雑なディスプレースメントマッピングされたジオメトリを効率的にレイトレースする価値のある研究が行なわれてきましたが、我々はユーザにそうさせることを refrain します。我々のゴールは、レイトレーシングの使用を最小化することです。レイトレーシングは、ライトギャザリングの主なボトルネックになります。シェーディング計算の再順序化は、我々のケースに利用することはできません。なぜなら放射照度キャッシングは、各放射照度サンプルの計算で放射されるレイ間に、依存関係があるからです。既存研究 [ Rushmeier et al. 1993; Christensen et al. 2003] に感化を受け、我々はレイの原点近くであっても、疎に分割されたジオメトリをレイトレースすることにしました。

レイはディスプレースされたマイクロポリゴン上から発生されるので、自己交差(self-intersection)の検出という問題に突き当たります。レイの原点近くの自己交差を無視する古典的なバイアスをかける技法は、ここでは適用することができません。なぜならこれでは目立つようなライトやシャドウの漏れ(leak)の問題が生じるからです。レイをトレースするときには、我々は以下のレイオフセット(ray offsetting)アルゴリズムを用います。

図 3 は 2 つの例を示しており、どのように有効なレイの原点が補正されるのかを説明しています。自己交差のアーティファクトを防ぐために、このアルゴリズムで用いられているオフセット距離は、疎なジオメトリ分割とマイクロポリゴン分割との間の最大オフセット量よりも大きくなる必要があります。近似のジオメトリをレイトレースするので、ジオメトリのマイクロディスプレースメントによるディフューズ自己相互反射は正確には捉えることができないかもしれません。これは通常、図 4 にみられるようにその視覚度は小さくなります。なぜなら半球をサンプルするときに、非常に詳細なサーフェス法線を考慮するためです。

我々のシステムでは、ユーザはレイトレーシングに適した分割レートを調整することができます。このチューンアップはキャラクタごとに行なわれ、小道具・背景には一度に全体に行なわれます。各ショットでは、優良なデフォルトの分割によるジオメトリが与えられ、特定のショット(たとえば超クローズアップなど)では必要があればレートを変更することができます。物体のディテールとポリゴンの数との間のトレードオフは、それゆえマニュアルでコントロールすることができます。立体角に基づいた分割を利用するのは実装されていませんが、本システムの考慮する価値のある拡張となるでしょう。

4.4 ラジオシティマップ

ライトギャザリングアルゴリズムのもうひとつのボトルネックは、各レイの放射輝度推定の計算です。 Arvo [1986], Heckbert [1990], その他多く [Jensen 1996; Christensen 2000] はこのアイデアを研究しています。似たような戦略をテクスチャマップを用いることで opt します。これは定数時間の問い合わせ(query)を提供し、レンダリングインフラ(rendering infrastructure)であるテクスチャ管理エンジン(texture management engine)の利点を得ることができます。

テクスチャ画像はシーンの各サーフェス上にマップされます。前処理ステージで、各テクセルの放射輝度値を計算し保存します。我々は間接照明の一回の反射しかシミュレートしないので、ラジオシティマップは直接照明の寄与のみを含みます。マップは、単純に各テクスチャの各ピクセルに対してサーフェスシェーダを走らせることで計算することができます。各テクセルのサーフェスの位置と法線を評価するために、テクスチャマッピング関数は逆関数化する必要があります。我々の場合は、テクセルの 4 隅のテクスチャ座標を逆関数化し、対応するサーフェス上の quadrilateral を得ます。その後、quadraliteal 領域でサーフェスシェーダを評価し、直接光を取り込み、シェーディングとテクスチャリングを行ない、 アンチエイリアシングを適用します。

テクスチャが非常に高解像度でなくとも、十分なディテールを捉えることができます。低解像度のテクスチャでも我々のアドバンテージは働くでしょう。この選択は高周波な間接照明情報を平均化し、最終的な解におけるノイズを大きく減らします。レイ微分(ray differentials) [Igehy 1999] やミップマッピング技法を用いて、テクスチャサイズに対応した適切なフィルタリングの利益を得ることも可能でしょう。

我々の実装では、テクスチャマップの解像度は、サーフェスのサイズとアスペクト比に比例するように計算しています。その尺度は、おのおのの場合でどれが最適に働くかに基づいて、ワールド座標かスクリーン空間内で計算されます。この選択は、全体の解像度の乗数パラメータを調整することができるユーザにゆだねられています。スクリーン空間がほとんどの場合用いられます。なぜならテクスチャをそのスクリーンでの被覆率に比例して自動的にスケールできるので、良いオートマチックなデフォルト値を与えることができるからです。この方法はまた、カメラの視点から遠く離れたところにあるオブジェクトには非常に低解像度のテクスチャを適用します。しかし、この技法は、カメラのモーションが大きかったりオブジェクトがカメラの視錐の外にある場合には、ちゃんとしたテクスチャサイズを与えることができません。

我々の条件下では、ラジオシティマップは知覚的なノイズなしに効率的に計算されることに注目してください。光の複数回反射をシミュレーションするときは、マップはライトトレーシング(light tracing)を用いて導出したり、フォトンマップなどの別のキャッシュ構造で置き換えることができます。そのようにすることは、十分なライトのサンプルを放射してマップのノイズを減らすために、膨大により多くの計算時間を費やすことになります。これはもしそうしないのであれば、最終的なレンダリングに時間的なノイズとして変わって表れます。かどの領域の視覚的なアーティファクトを減らすために、キャッシュ構造を利用せず、レイの交点がレイの原点に任意に近いときは、再帰的な分散レイトレーシング(distributed ray tracing)を利用することも提案されています。我々の制約のあるフレームワークはこれらの問題に苦しむことはありません。そのため、最終的なレンダリング時間の短縮に大きく寄与します。

4.5 放射照度キャッシュコヒーレンス

放射照度勾配キャッシング技法 [Ward and Heckbert 1992] は、我々には非常に有益です。ライトギャザリングステップ中では、我々はディスプレースもされるマイクロポリゴン上に位置する、放射照度サンプルを計算します。各放射照度サンプルは、ジオメトリ情報と放射照度勾配ベクトル(irradiance gradient vectors)と共にキャッシュに保存されます。この情報は、近隣位置の放射照度値をスムースに補外(extrapolate)するために利用されます。我々は、多くのジオメトリのディテールと複雑なサーフェスプロパティを持つシーンのキャッシュコヒーレンスを向上させるために、このテクニックを補正します。任意の位置 x でのサンプル i の誤差を計算するために、我々は以下の関数を代わりに用います。

式 2

ここで、

式 3

であり、

式 4

です。kappa はこのアルゴリズムの全体的な精度をコントロールし、ユーザが修正することができるのはこのパラメータのみになります。kappa はほとんどの場合では 1 に設定され、そして alpha_{plus} は 10 度にハードコードされました。R_{i} は放射照度サンプル i の評価中に交差したサーフェスへの、最も近い距離です。各ピクセルでは、カメラの射影を用いて、法線が n の x を通る平面上に射影されたピクセルの面積を計算します。R_{plus} と R_{minus} はおのおの射影ピクセル面積の平方根の 10 倍と 1.5 倍になります。これらの値は、x が見えるピクセルの立体角を用いて容易に導出することができます。

放射照度のサンプリングを避けるために、正の重みを持つキャッシュされたサンプルの候補に対して反復を行ない、それらの補外された寄与の重み付き平均を計算します。各サンプルの重みは、以下の式を用いて計算されます。

式 5

このモデルは、候補のキャッシュサンプルへの最大距離と、シーンのスケールと最終的なレンダリングに望むディテールの量がうまく相関します。サンプリング密度は自動的に補正され、疎すぎたり密すぎたりのサンプリングパターンを避けます。図 5(d) と (f) は、式 (5) と [Ward and Heckbert 1992] で提案されているオリジナルの誤差関数を用いたときのサンプリング周波数を示しています。どちらも同じ放射照度サンプルの数をもちいてレンダリングされました。上記で示した誤差関数は、オリジナルの式と比べたときに、かどの領域における放射照度のオーバーサンプリングを避けています。それゆえ、かどやへこみが多く平坦な面が少ない非常に詳細なジオメトリともよりよくスケールします。

加えて、式 (4) を計算するときにバンプマッピングにより alter しなかったサーフェス法線を用いることによるサーフェス法線の摂動により、オーバーサンプリングを避けます。図 5(d) と (e) の比較は、そのキャッシュコヒーレンスの向上を示しています。

ワークフローを早くするために、インタラクティブなライティングセッション中は、ユーザはディスプレースメントマッピングを無効にすることができます。これも同様にコヒーレンスを向上させます。

大きな payoff がある特殊なケースでは、プロシージャルジオメトリシェーダ(procedual geometry shader)を許可して放射照度キャッシュのコヒーレンスを向上させます。たとえば毛(fur)の高いジオメトリ密度では、完全にこの補間手法の効率は disgade になります。しかし、もし毛が短いのであれば、毛への間接照明と同じものを毛の生えているサーフェスへ適用するのは面白い試みでしょう。この場合、我々は、ジオメトリシェーダにライトギャザリングが行なわれる位置を指定することを可能にさせます。

各毛のフラグメントの対して、ジオメトリシェーダは強制的に対応する髪の根で生じる間接照明の取得を行なうオプションを持ちます。これは、図 9 に見られるように一貫していて許容できる照明を生成しつつも、髪に沿ってと横切ってのキャッシュコヒーレンスを大きく向上させます。

4.6 近似ライティングモデル

我々は、前節で述べた、複雑な BRDF のプロパティを保持しつつも放射照度キャッシングのコヒーレンスを有効にする、簡略化したライティングモデルを提案します。

ファイナルギャザリングステップでは、放射照度を対応する近似の入射場放射輝度(incoming field radiance)に変換することで、局所的なサーフェスシェーダに補外された放射照度を与えます。主な入射光方向 omega を選び、放射照度の結果がすべてこの方向から来るものと仮定します。我々は放射照度をサンプルするときに理想ディフィーズサーフェスプロパティを仮定しているので、以下のように放射輝度を計算します。

式 6

ここで E(x,n) は、位置 x での補外された放射照度で、これは節 4.5 で述べたように計算されます。

この情報はその後サーフェスシェーダに渡され、この寄与を完全な BRDF に適用した和を取ります。ライトギャザリング中に放射照度がサンプルされるごとに、主な入射光方向 w_{i} を、半球のサンプリングで用いたレイ方向の重み付き平均から導出します。おのおののレイの放射輝度推定の luminance は、重み付け処理で用いられます。これは主な入射間接光の方向を提供します。主な入射間接光の方向はサーフェス上でスムースに変化します。結果は、その対応する放射照度サンプルと共にキャッシュに保存され、任意の位置 x では式 (5) での重みを用いて平均を取って計算されます。

式 7

各波長に対して別々にこの技法を適用することで、強調した chromaticity 効果を捉えることは可能です。我々は 3 つの主な入射光方向を代わりに選びます。3 つのサンプルのおのおのの結果は、サンプルのレイの方向を放射輝度推定の色要素、赤・緑・黄色、で重み付けした結果です。特定の波長における放射輝度は、それゆえ対応する主な方向から来ることになります。

これは以下の近似で示すことができます。

式 8

L_{i} は式 (6) を用いて計算され、 w_{lambda} は式 (7) を用いて計算されます。 L_{d} は、通常の点光源 k からの直接光の寄与を示し、これはプログラマブルライトシェーダを用いて評価されます。物理的には非正確ですが、この間接照明モデルは、放射照度勾配キャッシュ技法を任意の BRDF を持つサーフェスに適用するための効率的な方法です。この技法は放射照度キャッシュに保存する情報を少し増やしますが、間接的に照らされたサーフェス上での指向性効果を捉えるのに必要なレイの数を劇的に減らします。図 5(c) は式 (8) を用いてレンダリングしました。これは図 5(d) で示されているように、放射照度サンプルの疎な分布の利用を有効にしています。この図での球のレンダリングは、それでも放射照度を各ピクセルで計算する必要があります。

この手法は、主なライト方向を計算するための平均が、よいヒューリスティック(heuristic)ではないときに制約がありますが、アーティファクトを引き起こすことは無く実際のケースで幅広く適用されました。

5 ツールの解説

前節で提示したコンセプトとアルゴリズムと、プロプライエタリ(proprietary, 訳注: 外には公開されていないインハウス製作のもの)なプロダクションレンダラと既存のシェーダのフレームワークとの統合について述べます。レンダリングのワークフローを示し、ユーザが利用できる各種コントロールについての解説も行ないます。

5.1 シェーダ統合

間接照明は、ユーザには、どのサーフェスにも使える新しいライトシェーダの型として利用できます。我々のフレームワークでは、サーフェスシェーダは望むライティング効果のために独立して書くことができます。ライトシェーダは、入射するライトの方向と色を提供する必要があります。我々のライティングモデルはこのフレームワークにフィットしているので、そのアプリケーションはすでに在るサーフェスシェーダを修正する必要はありません。間接照明はサブサーフェススキャッタリング(subsurface scattering)などのように複雑なサーフェス効果へ自動的に寄与します。

比較して、他のレンダリングシステムでは、サーフェスシェーダで明示的に間接照明サンプルを呼び出す必要があります。この選択はサーフェスシェーダに、その BRDF のプロパティを用いて容易にインポータンスサンプリングを適用することを可能にします。これは我々の近似モデルでは要求するものではないので、そのタスクからサーフェスシェーダを alleviate するほうがフレキシブルです。もしそのような必要がある場合は、より汎用的なインターフェイスで、 BRDF の記述を提供するサーフェスシェーダが可能になります [Slusallek and Seidel 1995]。

間接照明シェーダは間接照明のみを提供します。直接照明との分離は重要です。なぜならそうすることで、おのおのの寄与の独立したコントロールと調整を可能にするからです。また、近似のサンプリング戦略 [Ward 1995] を用いて、ライトシェーダのおのおのの型に、各問題の解を対応させます。たとえば面光源は、その面上に分布させた複数の仮想的な点光源でモデル化します。さらなるレイをトレースした後、理想スペキュラー反射や理想スペキュラー屈折も似たようにあつかわれます。

5.2 ワークフロー

我々のレンダリングシステムでは、ディープフレームバッファは、インタラクティブライティングツールにより複数回シェーディングされることがあります。これはジオメトリを処理してスキャンコンバートすることなしに再シェーディングすることが可能になります。これは、アニメーションが確立されライター(lighter)が数フレームのライティングのみに集中する必要がある既存のワークフローにうまく働きます。

ライティングツールはまた、シェーディングの前にライトギャザリングパス(light gathering pass)を実行させることができます。放射照度キャッシュを用いているので、 2 パスが必要になります。なぜなら各ピクセルは、画像面の現在のスキャンラインの上と下に位置するキャッシュされたサンプルから放射照度を補外するからです。ギャザリングとシェーディングが 1 パスで実行されるときは、スキャンラインの片側に位置するキャッシュされたサンプルから補外された放射照度を計算しますが、これは受け入れがたい視覚的アーティファクトが生じてしまいます。ギャザリングパスで、また低品質の設定で画像をシェーディングすることで、ユーザに視覚的なフィードバックを与えます。ギャザリングパスの終わりでは、放射照度キャッシュを再利用のためにファイルに保存します。最終シェーディングパスのときは、間接照明を求めるために放射照度キャッシュのみが用いられます。

間接照明が変化しないかぎりは、一本のレイもトレースすることなく画像は何度も再シェーディングされます。そうでない場合は、ユーザはギャザリングパスとシェーディングパスの両方の利用を要求することができます。これは、ワークフローの重要な観点です。なぜなら、すばやい視覚的なフィードバックを得ながらも、シェーダの設定のほとんどを調整できる方法を提供するからです。ほとんどの場合、直接光の変化は間接照明に影響を与えます。それでも、ギャザリングパスを実行せずにユーザは前者を何度も調整することができます。何度か繰り返し調整が済んだら、ライターは解を完全にアップデートすることができます。

また重要なことは、ラジオシティマップやそれに代わるキャッシュ構造を前計算する必要なしにライトギャザリングを実行する機能です。間接照明の一回の跳ね返りのみをシミュレートするという我々の選択は、インタラクティブレンダリングのパフォーマンスを急激に落とすことなく、そのようにすることを可能にしてくれます。我々の場合、ライターは本当にラジオシティマップキャッシュ機能を用いる事なく初期調整を行なうことができます。これは中間的な視覚的なフィードバックを可能にし、インタラクティブライティング turnaround を高速化します。マップは主にフルレングス(full length)のショット(shot)でフィルム解像度の画像レンダリングを最適化するために生成され用いられます。

シェーディング情報をテクスチャマップへとキャッシュするためのインフラを開発しましたので、ショット全体やシーケンス(sequence)における静的な間接照明を前計算してキャッシュするためにその利点を生かすことができます。間接照明はシーンのさらなるもう一つのテクスチャマップとして、ショットで利用可能になります。また、いくつかのフレームでの放射照度キャッシュを再利用することもできます。各新しいフレームでは、前のフレームで覆われていなかった画像の領域のみでライトギャザリングを計算します。新しい放射照度サンプルは、既存のキャッシュに追加され、次のフレームで用いられます。このアプローチは、ショットの各画像を逐次にレンダリングしなければならなくなるので、実際には用いられませんでした。レンダーファーム(render-farm)を用いて並列に画像をレンダリングするという我々の戦略とは合わなかったからです。

5.3 アートディレクション

...

6 結果

本ツールは、アーティストがコンピュータアニメーション映画 "シュレック2" のプロダクションの期間に用いました。主キャラクターと副キャラクターの 78 % のショットと、小道具とシーン背景の 30 % のショットで本ツールが用いられました。以下はレンダリング例と、本フレームワークを使うことの定量化可能な観点の比較です。

図 1 は背景キャラクターが直接光と間接光で照らされている画像です。キャラクターは光を自分自身に跳ね返しています。画像 (a) は最終レンダーを示しており、画像 (b)は同じレンダーですが間接照明がありません。画像は Pentium IV 2 GHz、 2 GB 物理メモリでレンダリングされました。画像は最終レンダーのフィルム解像度(1828x1102)でレンダリングされ、プレビュー作業ではその 1/3 でレンダリングされました。ライティングツールで作業をやり取りするときは、放射照度、テクスチャマップ、シャドウマップのサンプルに低品質の設定が用いられました。加えて、ディスプレースメントマッピングやファーは無効にしてあり、また低いマイクロポリゴン分割レートを用いました。図 8 は図 1(a) の前景のキャラクタを含んでいるレイヤのレンダリング時間です。

ラジオシティテクスチャマップは、高速な調整と視覚的なフィードバックサイクルを可能にするため、インタラクティブ作業中には用いられませんでした。テクスチャはバッチレンダリング時のみに用いられ、その解像度はスクリーン空間の尺度で計算されました。たとえば、キャラクターの belly を覆うテクスチャマップは 145x118 ピクセルでした。

ジオメトリは 780 万マイクロポリゴン以上が生成されましたが、レイトレースされる簡略化ジオメトリは全部で 49,000 ポリゴンでした。レイトレースされるジオメトリと空間データ構造は 23 MB のメモリしか消費しませんでした。レイトレーシングはそのためディスクとのスワッピングもジオメトリのキャッシュも必要ありませんでした。

ギャザリング段階では、放射照度サンプルあたり高品質設定では 600 レイ、低品質では 50 レイが用いられました。間接照明が非常に一様な場合では、100 程度の低い設定でノイズを取り除くことが十分できました。より複雑なシーンであったり間接照明が主に小さな領域から来る場合では、2000 までの設定が必要でした。映画の全ショットでの平均はサンプルあたり 420 レイで標準偏差は 250 でした。

放射照度キャッシュは、フィルム解像度では 68615 個の放射照度サンプルとなり、ビデオ解像度では 22301 個、低品質設定では 10085 個になりました。キャッシュの誤差関数は、ビデオからフィルムの解像度へは平均して 3 倍のスケーラビリティを示し、この場合ディスプレースマッピングが無効であれば 50 % の高速化になりました。図 8 のレンダリング時間は画像ビューポート全体のレンダリング中に測定されました。しかし、ユーザが画像の特定の領域をインタラクティブに更新した場合は、ギャザリングとシェーディング時間はそれに比例して低くなります。

7 まとめ

ここでは、アニメータが、近似グローバルイルミネーション効果を、コントロールしレンダリングすることを可能にする一連の技法を提案しました。これらは一度は高価でコントロールが困難であると考えられていたものです。

我々のアルゴリズムは、簡略化ジオメトリのみをレイトレーシングレイトレーシングし、テクスチャマップを用いてレンダリング方程式の一部をキャッシュすることで、ファイナルギャザリングのレンダリング時間を改善しました。また、我々の手法は、近似のライティングモデルを用いることで、空間的なコヒーレンスを向上させ、放射照度勾配キャッシングの応用範囲も拡大させます。

我々のアルゴリズムの、プロダクションレンダラとプログラマブルシェーダへの統合を示しました。

高速なフィードバックループのあるワークフローの中で、間接照明計算のいろいろな観点を、アーティストがどのようにコントロールすることができるのかを見てきました。

このようなツールがないと、似たような結果を得るためには、アーティストは直接光を配置してアニメーションさせることに、多くの時間をかけてしまうことになります。いくつかのケースでは、間接照明の作用効果は、直接光の技法のみを使って再生成することは非常に困難であるかほぼ不可能です。キャラクタや要素が光源で照らされた環境を移動すると共に、間接照明の寄与も自動で更新されます。

我々は、このシステムが画像生成プロセスを向上させることを発見しました。なぜなら素早いセットアップ工程が、 solid basis early on を提供することができるからです。アーティストは、複雑な相互作用効果のシミュレーションに費やす時間よりもより多くの時間をライティング戦略デザインと調整に費やすことができます。

我々は、ユーザのワークフロー内に obstacles を導入することなく、さらなる光の跳ね返りを我々のシステムへ組み込むことで、本研究をいくつかのチャレンジングな方向へと拡張していきたいと考えています。また、最終レンダー時に、放射照度キャッシュ誤差関数のサーフェス位置と法線方向をディスプレースさせないことで、さらに空間コヒーレンスを向上させたいとも思っています。

最後に、我々は応用をさらに広げるために、放射照度キャッシュにさらなる情報を保存する新しい方法を探索したいと思います。