JP2006525558A - ショット・レンダリングの方法と装置 - Google Patents

ショット・レンダリングの方法と装置 Download PDF

Info

Publication number
JP2006525558A
JP2006525558A JP2004571694A JP2004571694A JP2006525558A JP 2006525558 A JP2006525558 A JP 2006525558A JP 2004571694 A JP2004571694 A JP 2004571694A JP 2004571694 A JP2004571694 A JP 2004571694A JP 2006525558 A JP2006525558 A JP 2006525558A
Authority
JP
Japan
Prior art keywords
operations
rendering
shading
group
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004571694A
Other languages
English (en)
Inventor
クック,ロバート・エル
ダフ,トマス・ダグラス・セルカーク
Original Assignee
ピクサー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/428,325 external-priority patent/US7095409B2/en
Priority claimed from US10/428,321 external-priority patent/US7129940B2/en
Application filed by ピクサー filed Critical ピクサー
Publication of JP2006525558A publication Critical patent/JP2006525558A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Separation Using Semi-Permeable Membranes (AREA)

Abstract

コンピュータ・システムの方法(図3B)に、第1イメージ(図3B、イメージ1)と第2イメージ(図3B、イメージ2)でレンダリングされるオブジェクトのジオメトリック記述を受け取り、第1イメージ(図3B、イメージ1)と第2イメージ(図3B、イメージ2)のオブジェクトに関する複数のレンダリング・オペレーション(図3B、項目390、400)を実行し、複数のレンダリング・オペレーション(図3B、項目390、400)は、第1の複数のレンダリング・オペレーション(図3B、項目390)と少なくとも第2レンダリング・オペレーション(図3B、項目400)を含み、第1イメージ(図3B、イメージ1)のオブジェクトの第2レンダリング・オペレーション(図3B、項目400)と第2イメージ(図3B、イメージ2)のオブジェクトの第2レンダリング・オペレーション(図3B、項目400)は、実質的に類似し、第1の複数のレンダリング・オペレーション(図3B、項目390)は、第1イメージ(図3B、イメージ1)に関して実行され、第1の複数のレンダリング・オペレーション(図3B、項目390)は、第2イメージ(図3B、イメージ2)に関して実行され、第2レンダリング・オペレーション(図3B、項目400)は、第1イメージ(図3B、イメージ1)と第2イメージ(図3B、イメージ2)について1回実行される。

Description

本発明は、コンピュータ・アニメーションに関する。具体的には、本発明は、関連するイメージ・フレームの効率的なレンダリングの技法と装置に関する。
関連する出願の参照
本発明は、 に一緒に出願されたショット・シェーディングの方法と装置、代理人書類番号021751-000100USに関連し、全ての目的においてそれを参照する。
著作権
この特許書類に開示された部分は著作権保護の対象である対象を含む。著作権所有者は特許商標庁の特許ファイルや記録に表れるように特許書類や特許開示をそのまま複製することに反対はしないが、それ以外の著作権を保留する。
常に、映画製作者は、しばしば、架空の生物、遠くの場所、空想的なものを伴う作り話をすることを試みてきた。それを行うために、映画製作者は、しばしば、架空を「現実」にするアニメーション技法に頼った。アニメーションの主な路の2つに、伝統的に、ドローイングベース・アニメーション技法と物理アニメーション技法が含まれる。
ドローイングベース・アニメーション技法は、ウォルト・ディズニーなどの映画製作者によって20世紀に洗練され、「白雪姫」や「ファンタジア」(1940年)などの映画に使用された。このアニメーション技法は、通常、アーティストが透明の媒体またはセルにアニメートされたイメージを手書き(またはペイント)することを必要とする。ペインティングの後に、各セルが、映画の1つまたは複数のフレームとしてフィルムに取り込まれるか記録される。
物理ベース・アニメーション技法は、通常、ミニチュア・セット、小道具、キャラクタの作成を必要とする。映画製作者は、セットを作り、小道具を追加し、ミニチュア・キャラクタをあるポーズで位置決めする。アニメータが、満足するようにすべてのものが配置された後、フィルムの1つまたは複数のフレームが、その特定の配置を映す。物理アニメーション技法は、「キング・コング」(1932年)などの映画のためにウィリー・オブライエンなどの映画製作者によって開発された。その後、この技法が、「猿人ジョー・ヤング」(1948年)や、タイタンの戦い(1981年)を含む映画のために、レイ・ハリーハウゼンなどのアニメータによって洗練された。
20世紀後半のコンピュータの広い可用性に伴って、アニメータは、アニメーション・プロセスでの支援のためにコンピュータに頼り始めた。これには、たとえばイメージをペイントすることによって、インビトゥイーン・イメージを生成すること(「インビトゥィーニング」)によってなど、ドローイングベース・アニメーションを容易にするためのコンピュータの使用が含まれる。これには、物理アニメーション技法を増補するためのコンピュータの使用も含まれる。たとえば、物理モデルを、コンピュータ・メモリ内の仮想モデルによって表し、操作することができる。
コンピュータ支援アニメーション(computer aided animation、CAA)産業を開拓した会社の1つが、Pixar Incorporated社であった。Pixarは、特にCAA用に設計されたコンピューティング・プラットフォームと、現在はRenderMan(登録商標)と称するアニメーション・ソフトウェアの両方を開発した。RenderMan(登録商標)は、アニメーション産業で特によく歓迎され、アカデミー賞(登録商標)で2回表彰された。
本発明の記名された発明者は、オリジナルRenderMan(登録商標)ソフトウェアを共同開発した。その時に、記名された発明者は、このソフトウェアのオペレーションに影響する複数の工学的仮定を行った。1つの仮定は、メモリに保管されたシーンのジオメトリック記述が、比較的小さいということであった。ジオメトリック・シーン記述に、通常、位置、オブジェクト(表現対象物)、オブジェクト配置などのジオメトリック記述が含まれた。記名された発明者は、出力イメージ・フレームの解像度が高く、コンピュータ・プログラム・メモリに経済的に保管できないとも仮定した。
これらの仮定に鑑みて、フレームをレンダリングする時に、ジオメトリック・シーン・データが、まず、ディスク・メモリからプログラム・メモリに移動される。次に、フレームが、バケットと称する、一連のより小さいフレーム部分に副分割され、バケットに現れるオブジェクトの諸部分が、レンダリングされる。このプロセスを、フレームがレンダリングされるまで、フレーム内の残りのバケットについて繰り返す。したがって、このプロセスは、次のフレームの始まりの前に、1フレーム内のすべてのオブジェクトをレンダリングする。いくつかの面で、RenderMan(登録商標)のアニメーション・プロセスは、一時に1フレームがレンダリングされるという点で、上で述べた伝統的なアニメーション技法に類似していた。並列処理技法が、使用可能であり、実施されていたが、各フレームは、それでも個別に別々に、他のフレームと別にレンダリングされた。
米国特許第4897806号
上記に鑑みて、本発明の発明者は、アニメートされた特徴を作るプロセスを容易にするために、アニメーション・ソフトウェアの領域でさらなる改善を行うことが望ましいことを理解した。
本発明は、コンピュータ・アニメーションの分野に関する。具体的に言うと、本発明は、関連するイメージ・フレームの効率的なレンダリングの技法と装置に関する。
本発明は、コンピュータ支援アニメーションの分野でのレンダリングのパラダイム・シフトを表す。本発明者は、工学的仮定の異なる組を使用することによって、レンダリング時間を大幅に減らせることを認めた。とりわけ、1つの仮定は、シーン記述は大きいので、コンピュータ・プログラム・メモリに保管するのが高価であることであり、もう1つの仮定は、イメージ解像度は「低い」ので、イメージ(フレーム)をコンピュータ・プログラム・メモリに簡単に保管できることである。たとえば、通常のシーン記述は、300ギガバイト程度になり、イメージは、300メガバイト程度である。
この仮定を行うことによって、本発明者は、一連の関連するイメージ(「ショット」)のオブジェクトを効率的にレンダリングして、総レンダリング時間を減らすことができることを認めた。各イメージを、本明細書では「フレーム」または「イメージ・フレーム」とも称する。この新規のアイデアを実装するために、ジオメトリック・シーン・データが、一時に1オブジェクトずつ、ハード・ディスクからレンダリング・エンジンにストリーミングされる。そして、そのオブジェクトが現れるショット内のすべてのイメージ・フレームのための各オブジェクトをレンダリング・エンジンがレンダリングする。
たとえば、まず、オブジェクトがディスク・ドライブから取り出され、レンダリング・エンジンが、そのオブジェクトのポリゴン・ダイシング(polygonal dicing)スキーマを決定する。次に、レンダリング・エンジンが、オブジェクトのポリゴン・ダイシング・スキーマに対して変位マップを実行する。次に、レンダリング・エンジンが、オブジェクトに対して、ある時間不変シェーディング計算すなわち、ショット内のフレームのオブジェクトに共通するシェーディング計算を実行する。これらの前計算を、本明細書では「ショット固有」レンダリング、「ショット不変」レンダリング、または「時間不変」レンダリングと称する。たとえば、80フレームを含むショットについて、80個の異なるフレーム内のオブジェクトについてショット不変シェーディング計算を80回実行するのではなく、レンダリング・エンジンは、80個のすべてのフレームのオブジェクトについてシェーディング計算を1回実行する。この例のもう1つの場合では、レンダリング・エンジンが、シェーディング計算を80回未満だけ実行する。
次に、レンダリング・エンジンは、時間変動シェーディング計算などの「イメージ固有」レンダリングまたは「フレーム固有」レンダリングを計算する。フレームごとに、ショット固有レンダリング結果とフレーム固有レンダリング結果を組み合わせて、最終的なイメージ・フレームを形成する。これらのシェーディング・オペレーションは、直列にまたは並列に実行することができる。
本発明の1態様によれば、コンピュータ・システム用の方法が説明される。1つの技法に、第1イメージと第2イメージでレンダリングされるオブジェクトのジオメトリック記述を受け取ることと、第1イメージと第2イメージのオブジェクトに関する複数のレンダリング・オペレーションを実行することが含まれる。さまざまな方法で、複数のレンダリング・オペレーションに、第1の複数のレンダリング・オペレーションと少なくとも第2のレンダリング・オペレーションが含まれ、第1イメージのオブジェクトの第2レンダリング・オペレーションと第2イメージのオブジェクトの第2レンダリング・オペレーションは、実質的に類似する。第1の複数のレンダリング・オペレーションは、第1イメージについて1回と、第2イメージについて1回実行される。さらに、第2レンダリング・オペレーションは、第1イメージと第2イメージの両方について1回実行される。
本発明のもう1つの態様によれば、複数のイメージ内の複数のオブジェクトをレンダリングする方法が開示される。さまざまな技法に、複数のイメージからのイメージごとに、複数のオブジェクトからの第1オブジェクトをレンダリングすることが含まれる。レンダリングに、複数のイメージからのイメージごとに第1オブジェクトについて実行されるレンダリング・オペレーションの第1群と、複数のイメージからの複数のイメージについて第1オブジェクトについて1回実行されるレンダリング・オペレーションの第2群が含まれる。
本発明のもう1つの態様によれば、複数のイメージ内の複数のオブジェクトをレンダリングするコンピュータ・システムが開示される。このコンピュータ・システムに、N個のイメージを含む複数のイメージを保管するように構成されたメモリと、プロセッサとが含まれる。プロセッサは、複数のオブジェクトからの第1オブジェクトのレンダリング・オペレーションの第1群を、複数のイメージからのイメージごとに1回ずつ、N回実行するように構成される。プロセッサは、複数のイメージについて、複数のオブジェクトからの第1オブジェクトのレンダリング・オペレーションの第2群を、M回実行するようにも構成され、M<Nである。
本発明の一態様によれば、第1イメージと第2イメージを含む複数のイメージ内のオブジェクトをシェーディングする方法が説明される。1つの技法に、第1オブジェクトのジオメトリック記述を受け取ることと、第1イメージと第2イメージの両方について1回、第1オブジェクトのジオメトリック形状に応答して第1オブジェクトのシェーディング・オペレーションの第1の組を実行することが含まれる。方法に、第1イメージ内の第1オブジェクトのシェーディング・オペレーションの第2の組を実行することと、第2イメージ内の第1オブジェクトのシェーディング・オペレーションの第3の組を実行することも含まれる。さまざまな方法に、第1イメージ内の第1オブジェクトのシェーディング値を決定するために、第1オブジェクトのシェーディング・オペレーションの第1の組の結果と第1オブジェクトのシェーディング・オペレーションの第2の組の結果とを組み合わせることと、第2イメージ内の第1オブジェクトのシェーディング値を決定するために、第1オブジェクトのシェーディング・オペレーションの第1の組の結果と第1オブジェクトのシェーディング・オペレーションの第3の組の結果とを組み合わせることも含まれる。
本発明のもう1つの態様によれば、N個のイメージ内の複数のオブジェクトをシェーディングする方法が説明される。1つの技法に、N個のイメージの複数のオブジェクトからのあるオブジェクトのシェーディング計算を1回実行することが含まれる。さらに、そのオブジェクトのシェーディング計算の第1の組が、Mを超えない回数だけ、そのオブジェクトのジオメトリック・データに応答して実行され、MはN未満である。
本発明のもう1つの態様によれば、プロセッサを含むコンピュータ・システム内で複数のイメージ内のオブジェクトをシェーディングするコンピュータ・プログラム製品が開示される。コンピュータ・プログラム製品に、N個のイメージについてM回だけ第1オブジェクトのシェーディング・オペレーションの第1の組を実行するようにプロセッサに指示するコードと、N個のイメージについてN回だけ第1オブジェクトのシェーディング・オペレーションの第2の組を実行するようにプロセッサに指示するコードと、N個のイメージの第1オブジェクトのシェーディング値を決定するために、第1オブジェクトのシェーディング・オペレーションの第1の組と第1オブジェクトのシェーディング・オペレーションの第2の組とを組み合わせるようにプロセッサに指示するコードとを含めることができる。さまざまな実施形態で、M<Nである。コンピュータ・コードは、通常、不揮発性メモリ、光メモリ、ハード・ディスク・ドライブ、ネットワーク・ストレージ・ドライブ、または類似物などの有形の媒体に常駐する。
本発明をより完全に理解するために、添付図面を参照する。これらの図が、本発明の範囲における制限と考えられてはならないことを理解して、本発明のこれから説明する実施形態と現在理解されている最良の形態を、添付図面の使用を介して追加の詳細と共に説明する。
図1は、本発明の一実施形態による通常のコンピュータ・レンダリング・システム100のブロック図である。
この実施形態では、コンピュータ・システム100に、通常、モニタ110、コンピュータ120、キーボード130、ユーザ入力デバイス140、ネットワーク・インターフェース150、その他の類似物が含まれる。
この実施形態では、ユーザ入力デバイス140が、通常、コンピュータ・マウス、トラックボール、トラック・パッド、無線リモート、その他の類似物として実施される。ユーザ入力デバイス140は、通常、ユーザに、モニタ110に表示されるオブジェクト、アイコン、テキスト、その他の類似のものを選択させることができる。
ネットワーク・インターフェース150の実施形態に、通常、イーサネット・カード、モデム(電話、衛星、ケーブル、ISDN)、(非同期)ディジタル加入者回線(DSL)ユニット、その他が含まれる。ネットワーク・インターフェース150は、通常、図示のようにコンピュータ・ネットワークに結合される。他の実施形態では、ネットワーク・インターフェース150を、コンピュータ120のマザーボードに物理的に統合することができ、ソフトDSLまたはその類似のソフトウェア・プログラムとすることができる。
コンピュータ120に、通常、プロセッサ160と、ランダム・アクセス・メモリ(RAM)170、ディスク・ドライブ180などのメモリ・ストレージ・デバイスと、これらの構成要素を相互接続するシステム・バス190などの馴染みのあるコンピュータ構成要素が含まれる。
一実施形態で、コンピュータ120は、Intel Corporation社のXeon(商標)マイクロプロセッサなどの複数のマイクロプロセッサを有するPC互換コンピュータである。さらに、この実施形態では、コンピュータ120に、通常は、UNIXベースのオペレーティング・システムが含まれる。
RAM 170とディスク・ドライブ180は、データ、オーディオ/ビデオ・ファイル、コンピュータ・プログラム、アプレット・インタープリタまたはアプレット・コンパイラ、仮想マシンの保管、さらにジオメトリック・シーン・データを含む記載された発明の実施形態、オブジェクト・データ・ファイル、シェーダ記述子、レンダリング・エンジン、出力イメージ・ファイル、テクスチャ・マップ、変位マップ、その他の類似のものの保管のための有形の媒体の例である。他のタイプの有形の媒体に、フロッピ・ディスク、リムーバブル・ハード・ディスク、CD−ROMやバー・コードなどの光記憶媒体、フラッシュ・メモリ、読取専用メモリ(ROM)、バッテリバックアップ式揮発性メモリなどの半導体メモリ、ネットワーク接続されたストレージ・デバイス、その他の類似物が含まれる。
この実施形態では、コンピュータ・システム100に、HTTPプロトコル、TCP/IPプロトコル、RTP/RTSPプロトコル、その他の類似のものなど、ネットワークを介する通信を可能にするソフトウェアも含めることができる。本発明の代替実施形態では、たとえばIPX、UDP、またはそれと類似した他の通信ソフトウェアやトランスポート・プロトコルも使用することができる。
図1は、本発明を実施できるコンピュータ・レンダリング・システムを表す。多数の他のハードウェア構成やソフトウェア構成が、本発明と共に使用するのに適することが、当業者にはすぐに明白になる。たとえば、Pentium(商標)マイクロプロセッサまたはItanium(商標)マイクロプロセッサ、Advanced Micro Devices,Inc社のOpteron(商標)マイクロプロセッサまたはAthlonXP(商標)マイクロプロセッサ、Motorola,Inc.社のPowerPC G3(商標)マイクロプロセッサ、G4(商標)マイクロプロセッサ、その他の類似物などの他のマイクロ・プロセッサの使用が企図されている。さらに、Microsoft Corporation社のWindowsXP(登録商標)、WindowsNT(登録商標)、または類似のWindows(登録商標)オペレーティング・システム、Sun Microsystems社のSolaris、LINUX、UNIX、Apple Computer Corporation社のMAC OS、その他の類似の他のタイプのオペレーティング・システムが企図されている。
図2は、本願を使用した用語を示す図である。具体的に言うと、図示されているように、仮想カメラ200が、イメージごとに定義される。仮想カメラ200は、イメージ平面210に関連し、イメージ平面210は、イメージが記録される2次元平面を定義する。イメージ平面210から、レンダリングされるイメージの外側境界を定義するスクリーン・ウィンドウ220が定義される。画素位置230が、スクリーン・ウィンドウ220内で定義される。本発明の一実施形態では、スクリーン・ウィンドウ220が、2000水平画素と1000垂直画素の画素解像度を有する。本発明の他の実施形態では、水平方向または垂直方向でのより高いまたはより低い画素解像度が心に描かれている。
図3A〜Cは、本発明の実施形態によるフロー処理のブロック図である。具体的に言うと、このブロック図は、アニメーションの個々のフレーム(イメージ)が、実質的に同時にまたは時間的に近くでレンダリングされる処理を開示するものである。
この実施形態では、実質的に同時にレンダリングされる個々のフレームを、イメージの「ショット」と称する。ショットに、アニメーションの複数のフレームを含めることができ、時間的に連続するフレームを含めることができ、同一時刻を表す(カメラ、ライティングなどが異なる)フレームを含めることができ、時間的に分離されたフレームを含めることができる。
本発明の一実施形態で、処理は、レンダリングされるイメージの指定、ステップ300から始まる。この例では、イメージ指定に、1つまたは複数のシーン背景の指定、イメージ内のオブジェクトとテクスチャの指定、イメージに適用されるライティングの指定、オブジェクト配置データの指定、シーン内のオブジェクトのアニメーション・パラメータ、変位マップ、その他の類似のもの指定が含まれる。通常、イメージは、現在入手可能な普通の3次元モデリング技法やソフトウェアを使用することによって1人または複数のアニメータによって指定される。たとえば、Alias|Wavefront社のMaya(商標)ソフトウェアなどのソフトウェアやその類似物を使用して、シーンを指定することができる。
この例では、背景の指定に、通常、下で説明するオブジェクトが配置される位置または「セット」のジオメトリック指定が含まれる。ジオメトリック指定に、ジオメトリック境界、1つまたは複数の「環境」マップ、その他を含めることができる。これらの環境マップは、静的とするか、時と共に変化するものとすることができる。本発明の例では、セットは、部屋、屋内の位置、屋外の位置、または類似のものなど、オブジェクトが配置される位置を表すことができる。
オブジェクトは、アニメータによってセット内に配置または位置決めされる。これらのオブジェクトは、家具、植物、乗物、その他の類似物など、シーン内の無生物オブジェクトである。さらに、これらのオブジェクトを、たとえばキャラクタ、椅子、ドア、その他の類似物など、シーン内で移動するか移動されるオブジェクトとすることができる。この実施形態では、オブジェクトを、単純なものから複雑なものまでとすることができ、一部のオブジェクトが、1つまたは複数のより小さいオブジェクトから形成される。いくつかの実施形態で、オブジェクトの一部だけを、メモリから取り出すことができ、そのオブジェクトの残りの部分は、レンダリングされる前に動的に作成される。単なる例として、映画モンズターズ・インク(商標)のキャラクタ、サリー(商標)に、300万個を超える髪オブジェクトが含まれるが、約100万個の髪オブジェクトだけがメモリに保管され、残りの200万個の髪オブジェクトは、オン・ザ・フライで生成される。その場合に、動的に生成されるオブジェクトを、手続的に生成されたオブジェクト(procedurally generated object)と呼ぶ。
この実施形態では、オブジェクトが、通常は互いに別々に保管される。すなわち、各オブジェクトを、それ自体のファイルに保管し、コンピュータ・ファイル・システムによって取り出すことができる。本発明の他の実施形態では、複数のオブジェクトのデータを、単一のファイルに含めることができる。
イメージ内のオブジェクトの指定に、そのようなオブジェクトの表面処理の指定も含めることができる。たとえば、イメージ内の単一のオブジェクトに、ベース・テクスチャ、ほこり、損傷、くぼみ、変位、数式、その他のものを指定するテクスチャ・マップなどの複数の表面処理を関連付けることができる。この実施形態では、表面処理が、通常、オブジェクトと別々のファイルとして保管される。他の実施形態では、オブジェクトと関連する表面処理を、単一のファイルに一体化することができる。
イメージ内でオブジェクトが置かれるか位置決めされる位置は、通常はアニメータによって指定される。イメージ内で動かないオブジェクトについて、配置位置は、静的すなわちショット不変である。しかし、ショット内で動くオブジェクトに対して、配置データは、通常、オブジェクトの最初の位置および/または方位を表す。異なるイメージ内で動く時の動くオブジェクトの位置は、アニメーション・パラメータによって決定される。
この実施形態で、各シーンに、通常、光源やライティング・パラメータの指定が含まれる。ライティング・データに、光源、ライト・タイプ(たとえば、拡散、点)、ライティング位置、ライティング距離、その他を含めることができる。このライティング・データを、単一のファイルまたは複数のファイルに保管することができる。
この例では、シーン内で動くオブジェクトのアニメーション・データに、通常、動くオブジェクトがシーン内で当初はどこに置かれるかの指定を含めることができ、特定のオブジェクトがイメージ内のどこに動くかに関するデータが含まれる。この実施形態では、データが、空間内の特定の点を指定することができ、あるいは、空間内の点を決定する数式を指定することなどができる。多数の普通の方法を使用して、アニメーション・データを指定することができる。この実施形態では、アニメーション・データを、個々のファイルに保管することができ、あるいは、上で説明したデータ要素のうちの1つまたは複数と組み合わせることができる。
図3Aでは、示された次のステップが、イメージの「ショット」を構成する複数のイメージの識別、ステップ310である。一実施形態で、ショットに、シーケンシャル・フレームを含めることができる。他の実施形態で、ショットに、同一のジオメトリック背景とオブジェクトを使用するが異なる時刻の複数のイメージ(非シーケンシャル・フレーム)を含めることができ、ショットに、同一のジオメトリック背景とオブジェクトを使用するが、異なるカメラ・アングル(「アングル」)からの複数のイメージを含めることができる。もう1つの実施形態で、ショットに、「ブラケットされた(bracketed)」レンダリング・パラメータとともに同一のジオメトリック・データとオブジェクトを使用する複数のイメージを含めることができる。言い換えると、ショット内のイメージは、ほぼ実質的に同一のレンダリング・パラメータを有するが、たとえば+1EV、+0EV、−1EV調整など、普通の写真で一般的であるようにブラケットされた1つ(または複数)のレンダリング・パラメータを有することができる。本発明の実施形態では、ブラケットされたとすることのできるレンダリング・パラメータに、1つまたは複数の光強度の変更、たとえば表面の粗さなど、表面のテクスチャの変更、ライト位置の変更、「バーン・ドア(barn door)」光境界の変更、テクスチャ・ノイズ周波数(周波数制御を用いる手続テクスチャベース・ノイズ)の変更、その他を含めることができる。この場合に、ダイシング、サーフェスハイディング(surface-hiding:隠面処理)、シェーディング・オペレーションの多く、その他を、ショットについて1回実行することができる。下の実施形態では、ショット内のイメージが、通常、類似するジオメトリック・シーン・データ、オブジェクト・データ、その他を共用する。
この実施形態では、「第1オブジェクト」が、ショット内の異なるイメージのイメージ平面に最も近いオブジェクトとしてレンダリング・システムによって推定される、ステップ320。この実施形態では、レンダリング・システムは、オブジェクト配置データに基づいて、どのオブジェクトがカメラに最も近いかを推定することができる。他の実施形態では、たとえば、最も複雑でないオブジェクト、ショット内の最大個数のイメージに現れるオブジェクト、選択されたオブジェクト(たとえば、メイン・キャラクタ)、その他のものなど、任意のオブジェクトを「第1オブジェクト」として選択することができる。
本発明の一実施形態では、次に、オブジェクトを要求する、ステップ330。この例では、要求は、そのオブジェクトおよび/または他のオブジェクトを含む、ローカル・ディスク・ドライブまたはネットワーク・ドライブからのファイルに関するものとすることができる。オブジェクトを複数のサブオブジェクトから構成することができるので、データ・ファイルに、複数のサブオブジェクトの指定が含まれる場合がある。この実施形態では、通常のシーン記述が大きく、単なる例として、300ギガバイト程度またはそれ以上である。したがって、本発明者は、一時に1オブジェクトをシーン記述データから処理できると判定した。
この要求に応答して、オブジェクトが、プログラム・メモリに保管される、ステップ340。一実施形態で、ストリーミング・テクノロジが使用され、その結果、データ・ファイル全体がまだ完全にメモリによって取り出されていなくても、レンダリング・エンジンがオブジェクトの処理を開始できるようになっている。他の実施形態で、レンダリング・エンジンは、メモリから取り出された後にオブジェクトの処理を開始する。オブジェクトは、通常、1つまたは複数のジオメトリックプリミティブまたはモデリング・プリミティブからなる。
本発明の一実施形態で、オブジェクトは、オブジェクトの初期指定に基づいて動的に決定される。たとえば、オブジェクトの一部を指定し、ネットワーク・ドライブに保管することなどができる。次に、オブジェクトが要求された時に、オブジェクトの指定された部分を使用して、そのオブジェクトの残りの部分を動的に構成することができる。
この実施形態では、オブジェクトを指定したならば、ジオメトリックプリミティブが、ポリゴン・メッシュまたはグリッドに分解される、ステップ350。オブジェクトを小さいポリゴンに分解する処理を、産業界で理解されているように、「ダイシング」と称する。多数の普通の技法を使用して、オブジェクトをダイシングすることができ、たとえば、ダイシングは、オブジェクトを三角形、4辺を有するポリゴン、その他の類似物に分割することができる。この実施形態では、小さいポリゴンのそれぞれが、イメージ平面内の画素とほぼ同一のサイズにセットされるが、他の実施形態では、このサイズをより小さくまたはより大きくすることができる。この例では、小さいポリゴンの頂点が、識別され、頂点の座標位置が、プログラム・メモリまたはディスク・メモリに保管される。
この実施形態では、オブジェクトが、ショット内の全イメージでイメージ平面に最も近い位置にある時に限って、1回ダイシングされることが好ましい。それを行うことによって、そのオブジェクトがショット内の他のイメージに現れた時に、レンダリング・システムがそのオブジェクトを再ダイシングする必要がなくなる。他の実施形態で、ショット内の異なるイメージの間でオブジェクトのサイズに大きい差がある場合に、レンダリング・システムは、オブジェクトの再ダイシングが有利である可能性があることを判定することができる。これらの実施形態の例を、図4A〜Bに示す。
図4A〜Bに、本発明の実施形態の例を示す。図4Aでは、オブジェクトが、あるフレームでオブジェクト500として現れ、別のフレームでオブジェクト510として現れる。図からわかるように、オブジェクト500は、普通のアルゴリズムを使用してダイシングされており、結果のポリゴン・グリッドに56個の頂点が含まれる。一実施形態で、レンダリング・システムは、イメージ内のオブジェクト510について、同一のポリゴン・グリッド(56頂点)を使用することができる。それを行うことによって、レンダリング・エンジンが、このオブジェクトをレンダリングする時に再ダイシングを行う必要がなくなる。
もう1つの実施形態で、レンダリング・システムが、前にダイシングされたオブジェクトを選択的に再ダイシングすることができる。たとえば、図4Bで、オブジェクトは、あるフレームにオブジェクト520として現れ、別のフレームにオブジェクト530として現れる。オブジェクト520の初期ダイシングは、98個の頂点を指定するポリゴン・グリッドによって示されている。このダイシングは、ショット内の他のイメージでこのオブジェクトをレンダリングする時に使用することができる。しかし、いくつかの場合に、レンダリング・エンジンが、オブジェクトを再ダイシングしなければならないと判定することがある。たとえば、オブジェクトが、ショット内のかなりの数のイメージについてオブジェクト530として現れる場合に、レンダリング・エンジンは、オブジェクト520に使用されたダイシングがほとんどのイメージに不要と判定することができる。したがって、レンダリング・エンジンは、オブジェクト530(26頂点)に示されているようにこのオブジェクトを再ダイシングし、ショット内の異なるイメージ内のオブジェクトにこのダイシングを使用することができる。そのような実施形態では、オブジェクトのレンダリング時間が減る。
図3Aに戻ると、レンダリング・エンジンは、次に、オブジェクトに対する変位マッピング・オペレーションを実行する。変位マッピングという概念は、本願の記名された発明者であるRobert L.Cookによって開拓された。変位マッピングを用いると、オブジェクト表面に、くぼみ、溝、かさぶた、粗さ、またはパターンなどの小さいジオメトリック的表面詳細を与えることができる。
この実施形態では、レンダリング・エンジンが、下でさらに説明する変位「シェーダ」を実装して、このマッピングを実行する。動作時に、レンダリング・エンジンは、上のダイシング処理から頂点Pを取り出し、オフセット・ベクトルの組を取り出す、ステップ360。次に、レンダリング・エンジンは、それぞれのオフセット・ベクトルに従って、頂点Pの位置をオフセットさせる、ステップ370。この実施形態では、オフセット・ベクトルの組を、ランダム・ノイズ型パターン、式、所定のパターン、またはそのものとすることができる。さらに、オフセット・ベクトルを、オブジェクトの表面(x、y方向)に沿う、それぞれの頂点Pに垂直(+/−z方向)、または類似物とすることができる。
下で説明するシェーディング処理中に、法線ベクトルNが、頂点Pの変位後の位置に基づいて、頂点Pごとに計算される。この実施形態では、変位後頂点位置を、プログラム・メモリに保管するかディスクに保管する。
本発明の一実施形態では、非常に少数の、時には1つだけのダイシング方式と変位後頂点の1組が、ショットごとのすべてのイメージをレンダリングする時にオブジェクトについて使用される。本発明の発明者は、ショットの複数のイメージについてオブジェクトをレンダリングする時に、ダイシング方式と変位後頂点の異なる組がイメージごとに使用される場合に、オブジェクトの表面に望ましくない効果が表れる場合があることを発見した。たとえば、ダイシング・レートが、ショット内の異なるイメージについて異なる場合に、表面が、波打ってまたは移動して見える場合がある。したがって、ショット内のオブジェクトの表面での意図されない変動を減らすために、1つのダイシング・レートだけが、オブジェクトのレンダリングに使用される。
他の実施形態で、変位後オフセット頂点の複数の組を使用して、1ショット内の異なるイメージのオブジェクトを表すことができる。図4Bに示された例では、オブジェクトが、1ショット内の異なるイメージ内で劇的にサイズを変更される時に、レンダリング・エンジンが、そのオブジェクトについて異なるダイシング方式と、変位後オフセット頂点の異なる組を使用することができる。たとえば、レンダリング・エンジンは、ショット内の複数のイメージのオブジェクトについて、オブジェクト520など、そのオブジェクトがイメージ平面に近い時に、変位後オフセット頂点の第1の組を使用することができる。さらに、レンダリング・エンジンは、ショット内の複数のイメージのオブジェクトについて、オブジェクト530など、そのオブジェクトがイメージ平面から遠い時に、変位後オフセット頂点の第2の組を使用することができる。
本発明の他の実施形態では、バンプ・マッピング技法を実装することもできる。たとえば、バンプ・マッピング技法を使用することによって、各頂点Pに関連する法線Nを変更して、変更された法線の組を形成することができる。次に、変更された法線の組が、レンダリング・エンジンによって、ショット内のイメージ内のオブジェクトの外見を計算するのに使用される。しかし、変位マッピングと対照的に、頂点Pは、実際には移動されず、変位されない。この例では、上のオペレーション(ステップ340〜370)が、時間不変またはショット固有のレンダリング・オペレーションである。言い換えると、これらのレンダリング・オペレーションは、ショット内の複数のフレームについて同一であるか実質的に類似する。したがって、レンダリング時間を減らすために、実質的に類似するレンダリング・オペレーションは、ショット内のすべてのフレームについて繰り返されない、すなわち、ジオメトリック・データが、ストレージから1回取り出され、頂点変位が1回実行されるなどである。テクスチャリング・オペレーション、手続ジオメトリック・データ生成、その他など、多くの他のタイプの時間不変レンダリング・オペレーションを、他の実施形態で含めることができる。
図3A〜Cに示された実施形態に戻ると、次のステップの一部は、一般に、ショット内のイメージごとに実行される。言い換えると、下で説明するステップの一部は、通常、ショット内の各個々のイメージのコンテキストでオブジェクトについて実行される、すなわち、ショット固有ではなくイメージ固有またはフレーム固有である。
実装の観点から、一実施形態で、各オブジェクトのレンダリングを、レンダリング・エンジン内の同時処理スレッドに関連付けることができる。いくつかの実施形態で、レンダリング・エンジンは、通常、マルチスレッド式オペレーティング・システムで走行し、したがって、これらの処理スレッドは、異なる時に実行される可能性がある。たとえば、いくつかの処理スレッドが、実質的に同時に実行される可能性があり、いくつかの処理スレッドが、他の処理スレッドの前に完了する可能性があり、いくつかの処理スレッドが、オーバーラップする可能性があるなどである。実施形態で、これらの処理スレッドを、実質的に同時にまたはシーケンシャルに走行するようにスケジューリングすることができる。他の実施形態では、各ショットのレンダリングが、1つの処理スレッドに関連する。
レンダリング処理は、図3A〜3Cで継続される。この実施形態で、オブジェクトは、通常、各イメージの座標系で位置決めされる。具体的に言うと、オブジェクトを、イメージに現れるサイズにスケーリングし、必要な場合に、正しい方位に向けることができる(集合的に、データの位置決め)。一実施形態で、これを行うために、レンダリング・エンジンは、各イメージのオブジェクトのそれぞれの位置決めデータによって、各イメージの変位後オフセット頂点の組を変更する。他の実施形態で、変形や類似物を含む追加オペレーションを、オブジェクトに対して実行することができる。
次に、オブジェクトのヒットテスト処理を実行する、ステップ380。この実施形態では、ヒット・テストに、オブジェクトの各頂点の位置をzバッファ内のデータと比較することが含まれる。したがって、zバッファ内のデータよりイメージ平面に近い頂点ごとに、その頂点が、可視と考えられ、したがって、潜在的にレンダリング可能と考えられる。同様に、オブジェクトの頂点が、zバッファ内のデータより大きいz深さを有する(イメージ平面からより遠い)場合に、その頂点は隠されている。したがって、本発明者は、隠れ頂点をレンダリングする必要がなく、したがってレンダリング時間が減ることを認めた。
この実施形態では、その後、zバッファを、オブジェクトからの深さ情報を用いて更新する。このzバッファ・データは、その後、レンダリングされる次の連続するオブジェクトのヒットテスト・オペレーションに使用することができる。
この実施形態では、追加テストが、イメージ平面内のスクリーン・ウィンドウの外側寸法との各頂点の比較である。言い換えると、ヒット・テストに、オブジェクトの各頂点が、レンダリングされるイメージ内のx−y値を有するかどうかの判定を含めることができる。スクリーン・ウィンドウ内の頂点は、潜在的にレンダリング可能であり、スクリーン・ウィンドウ外の頂点は、レンダリングする必要がない。このステップが完了した後に、オブジェクトが潜在的に可視であるイメージごとに、スクリーン・ウィンドウ内であると同時に可視であるオブジェクトの頂点の位置が、プログラム・メモリまたはディスク・メモリに保管される。
この実施形態では、示されているように、このステップが、ショット内のイメージごとに実行される、すなわち、ヒットテストが、各イメージに固有である。これは、オブジェクトが、異なるイメージで異なる方位にある可能性があり、カメラ・パラメータ(たとえば、位置、方向、視野)が、イメージごとに異なる可能性があるなどがあるからである。レンダリング・エンジンは、通常、次のイメージに対して、あるイメージのオブジェクトのヒットテスト結果に頼らないので、このステップは、通常、オブジェクトが潜在的に可視であるイメージごとに実行される。本発明の実施形態で、これらの処理は、互いに独立にspawnすることができ、これらの処理は、順次、並列、オーバーラップする、または類似物とすることができる。一実施形態で、ヒットテスト・オペレーションが、イメージ固有レンダリング・オペレーションである。他の可視性オペレーション、レイ・トレーシング・オペレーション、その他の類似物など、多くの他のタイプのイメージ固有レンダリング・オペレーションを実行することもできる。
上で説明した「ブラケッティング」実施形態などの他の実施形態で、ショット内の異なるイメージが、ブラケットされたレンダリング・パラメータを有することができるが、残りのレンダリング・オペレーションは、実質的に同一のままになる。たとえば、ヒットテストの場合に、シーン内のオブジェクトの方位が移動せず、かつ/またはカメラが「ロックダウン」される場合に、ヒットテスト・オペレーションは、イメージ固有ではなく、時間不変である。したがって、このヒットテスト・オペレーションは、そのショットについて1回だけ実行すればよい。
本発明のもう1つの実施形態では、あるレンダリング・オペレーションが、ショット内の一部のオブジェクトについてイメージ固有であり、ショット内の他のオブジェクトについて時間不変である場合がある。言い換えると、一部のレンダリング・オペレーションが、イメージ内の1オブジェクトについてイメージ固有であるが、イメージ内の別のオブジェクトについて時間不変である場合がある。たとえば、背景オブジェクトがロックダウンされているショットで、そのショットのイメージ内のこれらのオブジェクトに関するヒットテスト・オペレーションは、時間不変である可能性があり、前景オブジェクトが移動する場合に、イメージ内のこれらのオブジェクトに関するヒットテスト・オペレーションは、時間変動またはイメージ固有である。もう1つの例として、背景オブジェクトに対して走行するシェーディング・オペレーションは、ショット内で時間不変である場合があるが、前景オブジェクトに対して走行する同一のシェーディング・オペレーションが、時間変動であり、イメージ固有である場合がある。他の実施形態では、ショット内で、あるオブジェクトに関するいくつかのレンダリング・オペレーションが、ショット内のフレームの第1の組について時間不変であり、ショット内のフレームの第2の組について時間変動である場合がある。本願に鑑みて、当業者は、本明細書に詳細に開示されていない多数の他の実施形態にこれらの概念を適用することができる。
この実施形態では、次のステップが、オブジェクト・シェーディング処理を表す。Pixar社のレンダリング・テクノロジは、光と表面の相互作用を記述するのに「シェーディング言語」を使用する。具体的に言うと、RenderMan(商標)で、Pixar社は、光源の出力と、光がイメージ内のオブジェクトの表面によってどのように減衰するかを記述するシェーディング言語を導入した。
この実施形態では、通常のシェーダに、経時的に変化してもしなくてもよいシェーディング関数とシェーディング・パラメータが含まれる。ショット内のイメージの間でオブジェクトについて変化しない関数とパラメータについて、そのようなシェーディング関数を、「不変」シェーディング関数(ショット固有)と称する。さらに、ショット内のイメージの間でオブジェクトについて変化するシェーディング関数を、「可変(variant)」シェーディング関数(イメージ固有)と称する。
プラスティックから作られたオブジェクトの単純な表面シェーダの例を、下に示す。
surface
paintedplastic( float Ka = 1, Kd = .5, Ks = .5, roughness = .1;
color specularcolor = 1;
string texturename = "texture";)
{
extern vector N, I;
extern color Cs;
color Ct = Cs;
if (texturename != "")
Ct *= color texture(texturename);

normal Nf = faceforward(Normalize(N), I);
vector V = -normalize(I);
Ci = Ct *(Ka* ambient() + Kd * diffuse(Nf)) +
specularcolor * Ks * specular(Nf, V, roughness);
Oi = Os;
Ci *= Oi;
}
このシェーダについて、
Kaは、ユーザ定義の環境光パラメータを表し、
Kdは、ユーザ定義の拡散光パラメータを表し、
Ksは、ユーザ定義のスペキュラ・パラメータを表し、
roughnessは、ユーザ定義の表面粗さパラメータを表し、
Nは、表面位置からの正規化されたベクトルを表し、
Iは、ビューイング位置から表面位置へのベクトルを表し、
Nfは、ビューイング位置に向かうNのベクトル成分を表し、
Vは、表面位置からビューイング位置への正規化されたベクトルを表し、
specularcolorは、ユーザ定義のスペキュラ色パラメータを表し、
textureは、テクスチャ・マップのユーザ定義のファイル名を表し、
Csは、オブジェクトのデフォルト表面色パラメータを表し、
Ctは、テクスチャ・マップ「texture」を乗算されたデフォルト表面色パラメータを表し、
関数ambient()は、非指向性光の光寄与を返し、
関数diffuse(Nf,V)は、幅広く均一に散乱した反射の近似からの光寄与を返し、
関数specular(Nf,V,roughness)は、光源からの表面のスペキュラ反射に起因する光寄与を返し、
Ciは、オブジェクトのローカル照明モデルを表す。
上の例を使用すると、Ka、Kd、Ks、roughness、texture、specularcolor、その他の類似物などの多くのパラメータが、通常、ショット全体を通じて一定に保たれる(ショット固有)。しかし、これらのパラメータは、時間の関数として定義することができる、すなわち、時間可変シェーディング関数とすることができる(イメージ固有)。たとえば、そのようなパラメータは、オブジェクトとライトが1ショット内でお互いに関して動く場合に変更することができる。もう1つの例として、ショット中に色が変化するカメレオンタイプのオブジェクトをレンダリングするために、パラメータCsを、時間と共に変更することができる。
多くの場合に、オブジェクトに関する他のシェーディング・パラメータの一部が、時間の関数(イメージ固有)である。たとえば、ベクトルIは、カメラがイメージ・フレームの間で移動する際に変化し、関数ambient()、diffuse()、specular()は、イメージ・フレームの間でライトが追加され、減らされ、または位置を変更される時に変化する。本発明者は、時間可変シェーディング関数と時間不変シェーディング関数が、通常、前もって知られていることを認めた。したがって、本発明者は、レンダリング・エンジンに、時間不変シェーディング関数と時間可変シェーディング関数を明らかにすることができる。
この実施形態では、レンダリング・エンジンが、このシェーディング情報をアニメータから前もって受け取る。この情報は、通常、シェーディング計算へのどの入力がオブジェクトについて時間に依存しないか(ショット不変)と、どの計算が時間に依存するか(イメージ固有)を識別する、ステップ390。
この実施形態の他の実施形態では、レンダリング・エンジンが、オブジェクトに関してシェーダによって使用される入力を分析することによって、ショット内のフレームについてオブジェクトのどのシェーディング計算が同一であるかを自動的に動的に識別するか判定することができる。これを行う形に、どのシェーディング・オペレーションがショット内の異なるフレームについて異なる入力パラメータを有するかをレンダリング・エンジンが判定することを含めることができる。
レンダリング・エンジンは、次に、オブジェクトの時間不変シェーディング計算を実行する、ステップ400。例として、上のシェーディング・コードを参照すると、デフォルト表面色Csとテクスチャ・マップが時間に依存しない場合に、Ctを、ショットのオブジェクトについて計算することができる。通常、これらの計算は、オブジェクトに関する1つまたは複数の中間ショット・シェーディング値をもたらす。これらの中間シェーディング値は、プログラム・メモリまたはディスク・メモリに保管することができる。
次に、ショット内の各イメージのオブジェクトについて、時間可変シェーディング関数を計算する、ステップ410。たとえば、1つまたは複数のライトが、一連のイメージで移動するか、オン/オフに切り替えられる場合、またはオブジェクトかカメラがイメージの間で移動する場合に、関数specular(Nf,V,roughness)が、イメージごとに計算される。これらの中間イメージ・シェーディング値も、プログラム・メモリまたはディスク・メモリに保管することができる。
この実施形態では、イメージごとに、レンダリング・エンジンが、次に、ショット内のオブジェクトの最終シェーディング計算を実行する、ステップ420。一実施形態で、オブジェクトの中間ショット・シェーディング値と中間イメージ・シェーディング値が数学的に組み合わされ、オブジェクトのグリッド位置のほとんどに関する最終シェーディング値がもたらされる。この実施形態の他の実施形態では、ステップ410、420を一緒に実行することができる。たとえば、中間ショット・シェーディング値をステップ410への入力として使用して、単一のステップでオブジェクトの最終シェーディング値を決定することができる。
本発明の実施形態では、ステップ410、420がシーケンシャルである必要はない。たとえば、他の実施形態で、ステップ420をステップ410の後にすることができる。もう1つの実施形態で、時間不変シェーディング計算を、時間可変シェーディング計算とインターリーブすることができる。たとえば、1つの時間不変レンダリング・オペレーションを実行し、2つの時間可変レンダリング・オペレーションを実行し、もう1つの時間不変レンダリング・オペレーションを実行し、もう1つの時間可変レンダリング・オペレーションを実行するなどである。この処理は、すべてのレンダリング・オペレーションが実行されるまで継続することができる。もう1つの実施形態では、時間可変レンダリング・オペレーションが、最初の時間不変レンダリング・オペレーションの前に実行される。
本発明の実施形態では、レンダリング・オペレーション(時間不変および/または時間可変)を、前のレンダリング・オペレーションの結果と独立またはこれに依存のいずれかとすることができる。すなわち、一実施形態で、第1レンダリング・オペレーションの結果を、連続するレンダリング・オペレーションによって使用することができる。さまざまな実施形態で、第1レンダリング・オペレーションは、第2レンダリング・オペレーションの直前に実行することも、そうしないこともできる。
上のシェーディング処理の結果は、通常、可視ポリゴン・グリッド位置からマッピングされたカラー値の2次元グリッドである。この実施形態では、その後、カラー値の2次元グリッドを補間して、ヒット・テスト位置での表面の値を決定し、その後、これらの値を補間して、スクリーン・ウィンドウ内の画素を決定する、ステップ430。代替案では、いくつかのオブジェクトについて、フレームごとのシェーディング・オペレーションの一部を、ポリゴン・グリッド位置ではなくヒット・テスト位置で実行する必要がある場合がある。これは、たとえばスポットライトを通過するオブジェクトなど、モーション・ブラー・オペレーションなどのレンダリング・オペレーションに関係する。
本発明の実施形態では、たとえば4×4または11×11などのサンプリング行列など、グリッドからヒット・テスト位置とスクリーン・ウィンドウに保管する普通の方法のどれでも使用することができる。バイリニア補間とその類似など、画素値を決定する多数の他の方法も使用することができる。追加の実施形態は、本願と同一の譲受人に譲渡された、すべてにおいて本明細書に組み込まれている米国特許第4897806号に開示された発明を使用することができる。
この実施形態では、オブジェクトを表すスクリーン・ウィンドウ内の画素値が、オブジェクトが現れるすべてのイメージについて保管される、ステップ440。一実施形態で、オブジェクトが、レンダリングされるオブジェクトである場合に、2000×1000画素スクリーン・ウィンドウ全体を、プログラム・メモリ、ディスク・メモリ、ネットワーク・ストレージ・メモリ、またはその類似物に保管することができる。オブジェクトが、第2のまたは後続のオブジェクトである場合に、この実施形態では、そのようなオブジェクトを表す画素だけが更新される。もう1つの実施形態で、新たにレンダリングされたオブジェクトを用いてイメージを更新するために、この処理を、次の実装とすることができる:新イメージ=旧イメージ+ショット内の各イメージの新オブジェクト。
次に、上で説明した処理を、ショット内のすべてのオブジェクトがレンダリングされるまで、ショット内の後続オブジェクトについて繰り返すことができる、ステップ450。すべてのオブジェクトをレンダリングし終えた時に、ショット内の結果のイメージを、表示のために出力し、アナログ形式(たとえばフィルム、ビデオ・テープ)に変換し、ディジタル媒体出力デバイス用にフォーマットし、または類似のことを行うことができる、ステップ460。
本発明の一実施形態では、通常のショットが、1秒から30秒のイメージを表す。この例では、毎秒約24個のイメージ・フレームがあり、したがって、1ショットは、24個から720個のイメージ・フレームになる。他の実施形態では、ショットを、12フレームから1000フレームとすることができ、2フレームから2400フレームまたはそれ以上とすることなどができる。
動作時に、レンダリング時間の実質的な節約を、この実施形態の実施形態を使用することによって達成できると思われる。たとえば、通常のアニメートされた映画をレンダリングするために、レンダリング時間の90%までが、シェーディングに帰し、10%が、ハイディング(隠面処理)、変位マッピング、その他の類似の他のレンダリング・ステップに帰する可能性がある。90%のうちで、50%の時間が、イメージ固有シェーディングに帰し、50%の時間が、ショット不変シェーディングに帰する可能性がある。本発明の実施形態を使用すると、この例で、ショット不変シェーディング時間を実質的に除去でき、したがって、総合レンダリング時間を、ほとんど半分(約55%)に減らすことができる。他の実施形態で、達成される通常の効率は、2倍から10倍と推定され、もう1つの実施形態で、フレームのショットのレンダリングに関して10倍から1000倍と推定される。後者の範囲は、上で説明した「ブラケットされた」ショットをレンダリングする時に達成されると思われる。他の実施形態では、これより高いまたはこれより低い効率を達成することができる。
前述の明細書で、本発明を、その特定の例示的実施形態に関して説明した。多数の変更または修正を、たやすく心に描くことができる。上の開示に鑑みて、当業者は、任意の個数の追加のレンダリング・ステップを、上で説明したレンダリング処理に導入できることを認めるであろう。上の開示に鑑みて、オブジェクトについて、そのような追加レンダリング・ステップが、イメージ固有関数(時間可変)とショット固有関数(時間不変)を有する可能性があると認められるであろう。したがって、ショット固有レンダリングは、ショット全体について1回だけオブジェクトに対して実行できると認められる。さらに、イメージ固有レンダリング関数は、イメージごとにオブジェクトに対して実行することができると認められる。その後、ショット固有レンダリング関数をイメージ固有レンダリング関数と組み合わせて、ショット内のイメージを形成することができる。現在RenderMan(登録商標)と互換の多数のシェーダを、本発明の実施形態で使用できることが心に描かれている。
上の流れ図は、コンピュータ・コードとして実現でき、プロセッサ実行可能コードにコンパイルしてもしなくてもよい。このコードは、ローカル・ディスク・ドライブ、ネットワーク・ストレージ・ドライブ、または類似物などの有形の媒体にプログラムとして保管することができる。代替実施形態では、コードを、別のプログラムによって動的に生成することができる。たとえば、第1プログラムを使用して、上で説明した形で動作する実行可能プログラムをオンザフライで生成することができる。
本発明の実施形態で、本発明者は、このスキーマの利益を、モーション・ブラー、被写界深度、レイ・トレーシング、MIPマッピング、テクスチャ・マッピング、ハイライティング、ジオメトリック・データ取出、手続ジオメトリック・データ生成、その他の類似の他のレンダリング技法に適用できることを確認した。
本発明の実施形態は、任意の個数のレンダリング・プラットフォームやさまざまな目的に適用することができる。たとえば、実施形態を、開発目的でエンジニアリング・ワークステーションで、アーティストやアニメータ用のビジュアライゼーション・システムで、最終制作用のレンダリング・ファーム・マシンで、その他の類似物で使用することができる。したがって、上で開示した概念は、さまざまな応用例で極端に貴重である。
一実施形態で、N個のオブジェクトに関するショット固有オペレーションの実行を、並列に処理することができる。本発明のもう1つの実施形態で、これらの処理のそれぞれを、別々の関連しない実行プロセスとして実施することができる。マルチスレッド式オペレーティング・システムを使用することによって、複数のプロセスを、実質的に同時に実行することができ、単純に時間的にオーバーラップさせることなどもできる。並列処理環境では、プロセスを、実際に並列に実行することができる。もう1つの実施形態では、一部のプロセスを、実際に他のプロセスの前に完了することができる。一実施形態で、N個のオブジェクトがある場合に、レンダリング・システムは、M個のプロセスをspawnし、M≦Nである。
上の開示で、一部のショット固有処理が、ショットについて1回実行されるとして示された。しかし、N個のイメージがある場合に、レンダリング・システムが、ショット不変処理をM回実行し、N>M≧1である実施形態を実施することができることを理解されたい。
上の実施形態で、ステップ380のイメージ固有レンダリング計算の前に実行されるものとしてステップ340〜370の時間不変レンダリング計算を示したが、この順序を逆転することもできることを理解されたい。本発明の他の実施形態では、時間不変レンダリング計算とイメージ固有レンダリング計算を、インターリーブ式または合間とすることができ、すなわち、複数のレンダリング計算を用いてオブジェクトをレンダリングする時に、イメージ固有レンダリング計算を、時間不変レンダリング計算の合間に実行することができる。さらに、インターリーブされたレンダリング・オペレーションは、オブジェクトの頂点ごとベースでおよび/または一時にすべての頂点に対して実行することができる。例として、レンダリング処理は、オブジェクトの第1頂点に対するレンダリング・オペレーションを、レンダリング・オペレーションA、B、C、D、Eの順番で実行することができ、その後、このレンダリング処理を、後続頂点について繰り返すことができる。1つの場合に、レンダリング計算A、B、D、Eが、時間不変計算であり、Cが、イメージ固有計算である場合があり、別の場合に、A、B、C、Eが、イメージ固有レンダリング計算であり、Dが時間不変レンダリング計算である場合がある。もう1つの例で、レンダリング・オペレーションAを、オブジェクトのすべての頂点に関して実行し、その後、レンダリング・オペレーションBを、そのオブジェクトのすべての頂点に関して実行することなどができる。もう1つの例で、上の例の組合せが企図されている。この開示に鑑みて、時間不変レンダリング・オペレーションとイメージ固有レンダリング・オペレーションをインターリーブする多数の形が、心に描かれている。
添付文書を読んだ後に、当業者は、さらなる実施形態を思い浮かべることができる。他の実施形態では、上で開示した発明の組合せまたは副組合せを有利に作ることができる。このアーキテクチャのブロック図と流れ図は、理解を容易にするためにグループ化されたものである。しかし、ブロックの組合せ、新しいブロックの追加、ブロックの再配置、その他の類似物が、本発明の代替実施形態で企図されていることを理解されたい。たとえば、イメージ固有シェーディング・オペレーションを、ショット不変シェーディング・オペレーションの前に実行することができる。
したがって、本明細書と図面は、制限的な意味ではなく例示的な意味でみられなければならない。しかし、請求項に記載の本発明の広義の趣旨と範囲から逸脱せずに、これに対してさまざまな修正と変更を行うことができることは明白である。
本発明の一実施形態によるレンダリング・システムを示すブロック図である。 本願を使用した用語を示す図である。 本発明の実施形態によるフロー処理を示すブロック図である。 本発明の実施形態によるフロー処理を示すブロック図である。 本発明の実施形態によるフロー処理を示すブロック図である。 本発明の実施形態の例を示す図である。
符号の説明
100 コンピュータ・レンダリング・システム、110 モニタ、120 コンピュータ、130 キーボード、140 ユーザ入力デバイス、150 ネットワーク・インターフェース、160 プロセッサ、170 ランダム・アクセス・メモリ(RAM)、180 ディスク・ドライブ、190 システム・バス、200 仮想カメラ、210 イメージ平面、220 スクリーン・ウィンドウ、230 画素位置、410 オブジェクト、500 オブジェクト、510 オブジェクト、520 オブジェクト、530 オブジェクト

Claims (35)

  1. 第1オブジェクトのジオメトリック記述を受け取ることと、
    第1イメージと第2イメージとの両方について1回、前記第1オブジェクトの前記ジオメトリック記述に応答して前記第1オブジェクトに関するシェーディング・オペレーションの第1の組を実行することと、
    前記第1イメージ内の前記第1オブジェクトに関するシェーディング・オペレーションの第2の組を実行することと、
    前記第2イメージ内の前記第1オブジェクトに関するシェーディング・オペレーションの第3の組を実行することと、
    前記第1イメージ内の前記第1オブジェクトのシェーディング値を決定するために、前記第1オブジェクトに関するシェーディング・オペレーションの前記第1の組の結果を前記第1オブジェクトに関するシェーディング・オペレーションの前記第2の組の結果と組み合わせることと、
    前記第2イメージ内の前記第1オブジェクトのシェーディング値を決定するために、前記第1オブジェクトに関するシェーディング・オペレーションの前記第1の組の結果を前記第1オブジェクトに関するシェーディング・オペレーションの前記第3の組の結果と組み合わせることと
    を含む、前記第1イメージと前記第2イメージを含む複数のイメージ内のオブジェクトをシェーディングする方法。
  2. 第1処理スレッドが、シェーディング・オペレーションの前記第2の組を実行する前記ステップを実行し、
    第2処理スレッドが、シェーディング・オペレーションの前記第3の組を実行する前記ステップを実行し、
    前記第1処理スレッドと前記第2処理スレッドが、同時処理スレッド、オーバーラップする処理スレッド、と並列処理スレッドからなる群から選択された形で関係する
    請求項1に記載の方法。
  3. 前記第1オブジェクトに関するシェーディング・オペレーションの前記第1の組が、前記第2イメージ内の前記第1オブジェクトに関するシェーディング・オペレーションと同一の前記第1イメージ内の前記第1オブジェクトに関するシェーディング・オペレーションを含む請求項1に記載の方法。
  4. 前記第1オブジェクトに関するシェーディング・オペレーションの前記第2の組が、前記第1イメージに固有である請求項3に記載の方法。
  5. 前記第1オブジェクトに関するシェーディング・オペレーションの前記第1の組が、環境照明値に応答して決定される請求項3に記載の方法。
  6. 前記第1オブジェクトに関するシェーディング・オペレーションの前記第2の組が、拡散照明とスペキュラ照明からなる群から選択された照明値に応答して決定される請求項5に記載の方法。
  7. 前記第1オブジェクトに関するどのシェーディング・オペレーションがシェーディング・オペレーションの前記第1の組に含まれるかの判定を受け取ることをさらに含む請求項1に記載の方法。
  8. 請求項1に記載の方法に従ってシェーディングされた前記第1イメージと前記第2イメージを含む有形の媒体。
  9. シェーディング・オペレーションの前記第1の組のうちの少なくとも1つが、前、後、合間、インターリーブされたからなる群から選択された形での、シェーディング・オペレーションの前記第2の組のうちの少なくとも1つの実行とシェーディング・オペレーションの前記第3の組のうちの少なくとも1つの実行に関連する請求項1に記載の方法。
  10. 第2オブジェクトのジオメトリック記述を受け取ることと、
    前記第1イメージと前記第2イメージとの両方に関して1回、前記第2オブジェクトの前記ジオメトリック記述に応答して前記第2オブジェクトに関するシェーディング・オペレーションの第1の組を実行することと、
    前記第1イメージ内の前記第2オブジェクトに関するシェーディング・オペレーションの第2の組を実行することと、
    前記第2イメージ内の前記第2オブジェクトに関するシェーディング・オペレーションの第3の組を実行することと
    を含み、前記第1オブジェクトに関するシェーディング・オペレーションの前記第1の組のシェーディング・オペレーションが、前記第1イメージ内の前記第2オブジェクトに関するシェーディング・オペレーションの前記第2の組と前記第2イメージ内の前記第2オブジェクトに関するシェーディング・オペレーションの前記第3の組からなる群から選択されたシェーディング・オペレーションに含まれる
    請求項1に記載の方法。
  11. 前記第1オブジェクトが、第1頂点と第2頂点を含み、
    シェーディング・オペレーションの前記第1の組とシェーディング・オペレーションの前記第2の組が、前記第1頂点に対するシェーディング・オペレーションの前記第1の組とシェーディング・オペレーションの前記第2の組とそれに続く前記第2頂点に対するシェーディング・オペレーションの前記第1の組前記第1の組とシェーディング・オペレーションの前記第2の組及び前記第1頂点と前記第2頂点に対するシェーディング・オペレーションの前記第1の組とそれに続く前記第1頂点と前記第2頂点に対するシェーディング・オペレーションの前記第2の組からなる群から選択された形で前記第1頂点と前記第2頂点に適用される
    請求項1に記載の方法。
  12. 複数のイメージからのイメージごとに複数のオブジェクトからの第1オブジェクトをレンダリングすることであって、前記第1オブジェクトのレンダリングが、前記複数のイメージからのイメージごとに前記第1オブジェクトに関して実行されるレンダリング・オペレーションの第1群と、前記複数のイメージからの複数のイメージについて前記第1オブジェクトに関して1回実行されるレンダリング・オペレーションの第2群とを含む、レンダリングすること
    を含む、前記複数のイメージ内の前記複数のオブジェクトをレンダリングする方法。
  13. 前記複数のイメージからのイメージごとに前記複数のオブジェクトからの前記第1オブジェクトをレンダリングした後に、前記複数のイメージからのイメージごとに前記複数のオブジェクトからの第2オブジェクトをレンダリングすることであって、前記第2オブジェクトをレンダリングすることが、前記複数のイメージからのイメージごとに前記第2オブジェクトに関して実行されるレンダリング・オペレーションの第1群と、前記複数のイメージからの複数のイメージについて前記第2オブジェクトに関して1回実行されるレンダリング・オペレーションの第2群とを含む、レンダリングすること
    をさらに含む請求項12に記載の方法。
  14. 前記複数のイメージがN個のイメージを含み、
    前記第1オブジェクトに関するレンダリング・オペレーションの前記第2群が、M回実行され、
    1≦M<Nである
    請求項12に記載の方法。
  15. レンダリング・オペレーションの前記第1群が、可視性オペレーションとレイ・トレース・オペレーションを含むオペレーションの群から選択される請求項14に記載の方法。
  16. レンダリング・オペレーションの前記第2群が、ダイシング・オペレーション、テクスチャ・マッピング・オペレーション、変位オペレーションを含むオペレーションの群から選択される請求項14に記載の方法。
  17. レンダリング・オペレーションの前記第2群が、ジオメトリック・データ取出と手続ジオメトリック・データ生成を含むオペレーションの群から選択される請求項13に記載の方法。
  18. レンダリング・オペレーションの前記第1群が、スペキュラ照明シェーディング、ハイライト照明シェーディング、拡散照明シェーディング、環境照明シェーディングを含むシェーディング・オペレーションの群から選択される請求項17に記載の方法。
  19. レンダリング・オペレーションの前記第2群が、スペキュラ照明シェーディング、ハイライト照明シェーディング、拡散照明シェーディング、環境照明シェーディングを含むシェーディング・オペレーションの群から選択される請求項13に記載の方法。
  20. 請求項13に記載の方法に従ってレンダリングされたオブジェクトを含む複数のイメージを保管する媒体。
  21. 前記複数のイメージを出力することをさらに含む請求項19に記載の方法。
  22. レンダリング・オペレーションの前記第2群からの少なくとも1つのレンダリング・オペレーションが、前と後からなる群から選択された形で、レンダリング・オペレーションの前記第1群からの少なくとも1つのレンダリング・オペレーションに関して実行される請求項12に記載の方法。
  23. レンダリング・オペレーションが、前記第1オブジェクトに関して1回実行されるレンダリング・オペレーションの前記第2群と前記複数のイメージからのイメージごとに前記第2オブジェクトに関して実行されるレンダリング・オペレーションの前記第1群との両方に含まれる請求項13に記載の方法。
  24. N個のイメージを含む複数のイメージを保管するように構成されたメモリと、
    前記メモリに結合されたプロセッサであって、前記複数のイメージからのイメージごとに1回のN回だけ、複数のオブジェクトからの第1オブジェクトに関してレンダリング・オペレーションの第1群を実行するように構成され、前記複数のイメージについてM回、前記複数のオブジェクトからの前記第1オブジェクトに関してレンダリング・オペレーションの第2群を実行するようにも構成され、M<Nである、プロセッサと
    を含む、前記複数のイメージ内の前記複数のオブジェクトをレンダリングするコンピュータ・システム。
  25. 前記プロセッサが、前記第1オブジェクトに関するレンダリング・オペレーションの前記第1群を実行した後に、前記複数のイメージからのイメージごとに1回のN回だけ、前記複数のオブジェクトからの第2オブジェクトに関してレンダリング・オペレーションの第1群を実行するようにも構成される請求項24に記載のコンピュータ・システム。
  26. 1≦M<Nである請求項24に記載のコンピュータ・システム。
  27. レンダリング・オペレーションの前記第1群が、可視性オペレーションとレイ・トレース・オペレーションからなるオペレーションの群から選択される請求項26に記載のコンピュータ・システム。
  28. レンダリング・オペレーションの前記第2群が、ジオメトリックダイシング・オペレーション、テクスチャ・マッピング・オペレーション、ジオメトリック変位オペレーションからなるオペレーションの群から選択される請求項27に記載のコンピュータ・システム。
  29. レンダリング・オペレーションの前記第2群が、前記第1オブジェクトのジオメトリック・データ取出と前記第1オブジェクトの手続ジオメトリック・データ生成からなるオペレーションの群から選択される請求項26に記載のコンピュータ・システム。
  30. レンダリング・オペレーションの前記第1群が、スペキュラ・シェーディング、ハイライト・シェーディング、拡散シェーディング、と環境シェーディングからなるシェーディング・オペレーションの群から選択される請求項26に記載のコンピュータ・システム。
  31. レンダリング・オペレーションの前記第2群が、スペキュラ・シェーディング、ハイライト・シェーディング、拡散シェーディング、環境シェーディングからなるシェーディング・オペレーションの群から選択される請求項26に記載のコンピュータ・システム。
  32. 前記プロセッサが、第1オブジェクトに関するレンダリング・オペレーションの前記第1群からレンダリング・オペレーションごとに別々のプロセスをspawnするように構成される請求項26に記載のコンピュータ・システム。
  33. レンダリング・オペレーションの前記第1群からのレンダリング・オペレーションごとの前記別々のプロセスが、同時プロセスと並列プロセスからなる群から選択されたプロセスである請求項32に記載のコンピュータ・システム。
  34. 少なくとも1つのレンダリング・オペレーションが、前記第1オブジェクトに関するレンダリング・オペレーションの前記第1の組と前記第2オブジェクトに関するレンダリング・オペレーションの前記第1群との両方に共通する請求項24に記載のコンピュータ・システム。
  35. 前記第1オブジェクトに関するレンダリング・オペレーションの前記第1群からの第1レンダリング・オペレーションが、前と後からなる群から選択される形で前記第1オブジェクトに関するレンダリング・オペレーションの前記第2群からの第1レンダリング・オペレーションと関連して実行され、
    前記第1オブジェクトに関するレンダリング・オペレーションの前記第1群からの第2レンダリング・オペレーションが、前と後からなる群から選択される形で前記第1オブジェクトに関するレンダリング・オペレーションの前記第2群からの前記第1レンダリング・オペレーションと関連して実行され、
    前記第1オブジェクトに関するレンダリング・オペレーションの前記第2群からの第2レンダリング・オペレーションが、前と後からなる群から選択される形で前記第1オブジェクトに関するレンダリング・オペレーションの前記第1群からの前記第2レンダリング・オペレーションと関連して実行される
    請求項24に記載のコンピュータ・システム。
JP2004571694A 2003-04-30 2003-07-31 ショット・レンダリングの方法と装置 Pending JP2006525558A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/428,325 US7095409B2 (en) 2003-04-30 2003-04-30 Shot shading method and apparatus
US10/428,321 US7129940B2 (en) 2003-04-30 2003-04-30 Shot rendering method and apparatus
PCT/US2003/024123 WO2004100073A1 (en) 2003-04-30 2003-07-31 Shot rendering method and apparatus

Publications (1)

Publication Number Publication Date
JP2006525558A true JP2006525558A (ja) 2006-11-09

Family

ID=33436678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004571694A Pending JP2006525558A (ja) 2003-04-30 2003-07-31 ショット・レンダリングの方法と装置

Country Status (6)

Country Link
EP (1) EP1620833B1 (ja)
JP (1) JP2006525558A (ja)
AT (1) ATE500573T1 (ja)
AU (1) AU2003257998A1 (ja)
DE (1) DE60336271D1 (ja)
WO (1) WO2004100073A1 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649032A (en) * 1994-11-14 1997-07-15 David Sarnoff Research Center, Inc. System for automatically aligning images to form a mosaic image
US5793374A (en) * 1995-07-28 1998-08-11 Microsoft Corporation Specialized shaders for shading objects in computer generated images
US6266053B1 (en) * 1998-04-03 2001-07-24 Synapix, Inc. Time inheritance scene graph for representation of media content

Also Published As

Publication number Publication date
AU2003257998A1 (en) 2004-11-26
EP1620833B1 (en) 2011-03-02
EP1620833A4 (en) 2008-03-26
ATE500573T1 (de) 2011-03-15
WO2004100073A1 (en) 2004-11-18
DE60336271D1 (de) 2011-04-14
EP1620833A1 (en) 2006-02-01

Similar Documents

Publication Publication Date Title
US7564457B2 (en) Shot shading method and apparatus
Klein et al. Non-photorealistic virtual environments
US9036898B1 (en) High-quality passive performance capture using anchor frames
US6097396A (en) Method and apparatus for creating lifelike digital representation of hair and other fine-grained images
US7436404B2 (en) Method and apparatus for rendering of translucent objects using volumetric grids
US8482569B2 (en) Mesh transfer using UV-space
US8436867B1 (en) System and method for generating computer graphic images by identifying variant and invariant shader arguments
US6985156B2 (en) System and process for optimal texture map reconstruction from multiple views
US7205998B2 (en) System and process for optimal texture map reconstruction from multiple views
US7545378B2 (en) Foot roll rigging
US8704823B1 (en) Interactive multi-mesh modeling system
KR20040044442A (ko) 자동 3차원 모델링 시스템 및 방법
US20090033662A1 (en) Multiple artistic look rendering methods and apparatus
US8054311B1 (en) Rig baking for arbitrary deformers
US7508390B1 (en) Method and system for implementing real time soft shadows using penumbra maps and occluder maps
JP2008102972A (ja) 自動3dモデリングシステム及び方法
US7268784B2 (en) Adaptive caching of animation controls
US8599197B1 (en) Annotation-based mesh modification
US7839408B2 (en) Dynamic scene descriptor method and apparatus
US8368712B2 (en) Mesh transfer in n-D space
US7129940B2 (en) Shot rendering method and apparatus
US9519997B1 (en) Perfect bounding for optimized evaluation of procedurally-generated scene data
US9007388B1 (en) Caching attributes of surfaces without global parameterizations
EP1620833B1 (en) Shot rendering method and apparatus
US8659600B2 (en) Generating vector displacement maps using parameterized sculpted meshes

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090930

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091215