(57)【特許請求の範囲】
【請求項１】
画像として少なくとも２つのオブジェクトジオメトリと少なくとも２つのシェーダプロシージャを含む、３次元シーン記述をレンダリングする方法であって、
前記少なくとも２つのオブジェクトジオメトリのうちの一方は他方よりも少ない頻度で展開するものであって、
前記少なくとも２つのシェーダプロシージャを、前記少なくとも２つのオブジェクトジオメトリのうちの前記一方に対する静的シェーダプロシージャと前記少なくとも２つのオブジェクトジオメトリのうちの前記他方に対する動的シェーダプロシージャとに分解するステップと、
複数の制御パラメータに基づいて、前記静的シェーダプロシージャを前記少なくとも２つのオブジェクトジオメトリに適用することにより、中間表現を生成するステップであって、前記複数の制御パラメータは、前記少なくとも２つのオブジェクトジオメトリの外観がどのように変化するかを示すステップと、
前記複数の制御パラメータのうちの少なくとも１つの制御パラメータに基づいて、前記動的シェーダプロシージャを、前記少なくとも２つのオブジェクトジオメトリを含む前記中間表現に適用することにより、前記画像のカラー化したサンプルを生成するステップであって、前記静的シェーダプロシージャが前記少なくとも２つのオブジェクトジオメトリの前記一方に適用される頻度よりも多い頻度で、前記動的シェーダプロシージャが前記中間表現に適用されるステップと
を備えたことを特徴とする多重フェーズレンダリング方法。
【請求項２】
前記静的シェーダプロシージャは、前記複数の制御パラメータには依存しないことを特徴とする請求項１記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元オブジェクトを表現する２次元画像のレンダリングに関し、特に、多重フェーズにおける変換、サンプリング、補間およびシェーディングに関する。
【０００２】
【従来の技術】
３次元オブジェクトをレンダリングする場合、シーン（scene）の計算上の記述を用いて２次元画像が生成される。この記述は、シーンを、３次元オブジェクトの集まりおよび関連するシェーダプロシージャ（影付け処理、shader procedure）として特定する。個々のオブジェクトを、非一様有理Ｂスプライン表面（ＮＵＲＢＳ）のメッシュから、独立した３次元の点のアレイまでに亙って表現することができる、多くのフォーマットがある。シーンの単一の記述は、これらフォーマットの多くを利用することができる。しかしながら、いずれのフォーマットが使用されるに関わらず、基本的なタスクは、シーンを表現する２次元出力画像をレンダリングする、ということである。
【０００３】
動画シーケンスを形成するために、複数の出力画像（フレーム）を長い時間（over time）レンダリングすることができる。通常、動画シーケンスには、毎秒２４〜３０のフレームがある。一般に、動画シーケンスの多くの連続フレームは殆どまったく同じである。背景は比較的一定のままであり、わずかな数のオブジェクトのみが互いに対して移動し、場合によっては、あるオブジェクトが付加され他のオブジェクトが取除かれる。さらに、視点が変化する場合もあるが、一般にあるフレームから次のフレームへの変化はわずかである。
【０００４】
連続フレームの類似性を利用するために、動画システムに対する入力は、しばしば展開シーン記述（evolving scene description）として特定される。この展開シーン記述は、連続するフレーム間で漸次変更されることにより、例えば、オブジェクトの位置または視点等の変化を反映する。そして、展開シーン記述を、画像座標を用いてラスタ化し、補間することによって、適当なシェーダプロシージャを適用することによりシェーディングが施されたサンプルを生成することができる。
【０００５】
シェーダは、３次元レンダリングの重要な要素である。シェーディングは、光、形状、素材およびテキスチャを処理することによって、投影ジオメトリから可視面の外観を決定する。見る人はシェーディングの微妙なところに非常に感じ易いため、シェーダは、物理的な世界の視覚的現実を実質的に複製する豊かな画像を提供するよう、柔軟性を有していなければならない。シェーディングは複雑な計算を含む可能性があるため、シェーダは効率的でもなければならない。
【０００６】
大抵の従来技術によるレンダリングシステムは、単一フェーズにおいて動作する。図１は、一般的な従来技術によるレンダリングシステム１００（以下、単にシステム１００とする）を示す。本システム１００は、変換（transform）、サンプリング（sampling）および補間（interpolate）コンポーネント（以下、ＴＳＩコンポーネントとする）１１０と、シェーダコンポーネント１２０とを有している。ＴＳＩコンポーネント１１０は、展開シーン記述１０１の形態の入力と、例えば、視点、方向付け、サイズ等の制御パラメータ１０２とを受取る。展開シーン記述１０１は、シーンのオブジェクトの形状を定義するジオメトリ（Ｇ）を、オブジェクトの各々がどのようにシェーディングされるかを定義する手続き的シェーダ（Ｓ）のセットと共に含んでいる。
【０００７】
なお、いくつかのオブジェクトは、他のオブジェクトから構成することができる。例えば、テーブルオブジェクトは、１つのトップガラスオブジェクトと４つのスチール製脚オブジェクトとを含むことができる。一般に、テーブルオブジェクトは、一単位として移動および拡大縮小するが、トップガラスオブジェクトとスチール製脚オブジェクトとに対し、異なるシェーダプロシージャが適用される可能性が高い。
【０００８】
ＴＳＩコンポーネント１１０の出力は、外観属性（Ａ）１０３を有するサンプル点である。これらの属性には、シェーディング座標および画像座標におけるサンプルの（ｘ，ｙ，ｚ）位置、表面法線、表面パッチパラメータ（ｕ，ｖ）およびテクスチャ座標（ｓ，ｔ）等の値が含まれる。ＴＳＩコンポーネント１１０は、現視点を用いて、シーン記述をオブジェクト座標から画像座標に変換する。また、ラスタ化を使用して、所望のサンプルを決定することができ、補間を用いて、サンプル点に対する外観属性を生成する。
【０００９】
シェーダ（Ｓ）１２０は、１つまたは複数の手続き的シェーダを、各関連するオブジェクトの外観属性に適用する。シェーダ１２０の出力は、画像１０９を生成するためにフレームバッファに格納することができるカラー化したサンプルのセットである。各サンプルのカラーは、例えば、基礎となるサンプルの固有のカラー、テクスチャマップからのカラー情報、オブジェクト上に当たる光によってもたらされる拡散反射および鏡面反射等の効果を結合する。
【００１０】
追加の処理ステップ（合成およびフィルタリング）が、他のサンプルによって隠されたサンプルを破棄し、半透明のサンプルをそれらの後ろのサンプルと併合し、併合されたサンプル値からピクセル値を計算することができる。高品質出力のために、サンプルはピクセルグリッドより精密な解像度で計算されなければならず、複数の（サブピクセル）サンプルがフィルタリングによって結合されることにより、各ピクセルが生成されなければならない。
【００１１】
従来の単一フェーズレンダリングは多くの問題を有している。まず、レンダリングが非効率的である。単一フェーズレンダリングでは、シーン記述全体が、各画像についてステップ１１０とステップ１２０の両方によって処理される。そのため、シーケンスの個々の画像は各々、そのシーケンスの他のすべての画像とまったく異なっていたものとして生成される。毎秒３０画像が望まれている場合、関連するすべての処理を毎秒３０回行わなければならない。これは直接的かつ頑健ではあるが、特に複雑なシーンに対しては時間を消耗する。
【００１２】
さらに、多くの従来技術による在来の単一フェーズレンダリングシステムは、クラシカルな（非手続き的な）テクスチャマッピングを採用するため、限界がある。これに対して、手続き的シェーディングは、このレンダリングのパラダイムを拡張して、物理的な世界の視覚的現実性を複製し増幅する豊かな画像を提供する。手続き的シェーディングは、クラシカルなテクスチャマッピングに限定されたシステムに対し多くの利点を有する。すなわち、無類の豊かさおよび画像品質、解像度独立性、境界の継目無さ、メモリ効率（各シェーディングされたサンプル点の要求時生成）、外観の変化（例えば、あるごみを付加）が、容易に適応され、表面歪みがより容易に避けられ、ジオメトリ要件が低減され、最終的に、事前フィルタリングがサポートされることにより、優れたテクスチャフィルタリングが得られる。
【００１３】
１９９９年１月２６日にKajiya等に対して発行され、また、Torborg等により"Talisman（タリスマン）： Commodity Realtime 3D graphics for the PC," ACM Siggraph, Conference Proceedings, pp.353-363, Aug.4-9, 1996においても述べられている、米国特許第５，８６４，３４２号、"Method and system for rendering graphical objects to image chunks"は、ポリゴンジオメトリを用いるレンダリングシステムを教示している。
【００１４】
そのシステムは、シーン記述および制御情報を、ラスタ化およびシェーディングに対する入力とすることにより、３２×３２ピクセル画像「チャンク（chunk）」を生成する。これらチャンクは、データベースに格納される。これは、オブジェクト毎に行われ、漸次チャンクが生成される。常にシーン記述全体を処理するのではなく、急速に変化する部分を他の部分よりも頻繁に処理することができる。これにより、チャンクが更新され、一度に１つのチャンクに対しデータベースが変更される。
【００１５】
画像を生成するために、画像変換ステップによりデータベースからチャンクの完全なセットが読出される。この画像変換ステップでは、部分的に視点の変化を考慮するよう各チャンクを変更する。チャンクから決定されたサンプルは、最終画像を生成する合成およびフィルタリングステップに送出される。中間データベースにより、チャンクは、最も高速に変換しているチャンクに集中することで、使用される時よりも低速で生成することができる。例えば、背景で移動しているオブジェクトのチャンクを、前景のオブジェクトのチャンクよりも低頻度または低精度で更新することができる。これにより、動画シーケンスにおいて、各画像のシーン全体を常に処理することなく連続画像を生成することが可能となる。
【００１６】
【発明が解決しようとする課題】
しかしながら、チャンクは、複数画像におけるそれらの再使用可能性を制限し、それによってこの方法の利益を制限するものであるため、これらチャンクが生成され表現される方法には多くの問題がある。まず第一に、最初にチャンクが生成された時にすべてのシェーディングが終了しており、後にチャンクが使用される時にはシェーディングの計算は行われない。これによって、演算は高速となるが、鏡面反射等の視点の影響を受け易いシェーディング効果を適当に考慮するようチャンクを調整することが不可能である。その結果、わずかでも視点が変化すると、チャンクを再使用する時に生成されたサンプルが、チャンクが再計算された場合に生成されるであろうサンプルとは同じでなくなり、画像品質が悪化する。さらに、チャンクは、２次元画像として表現されている。これにより、高速な空間効率のよい演算が可能となるが、チャンクを変換することができる方法が非常に限定される。
【００１７】
上述した理由から、Talisman（タリスマン）のシステムは、殆どの時間の殆どのシーン記述を処理しなければならないか、または低品質出力を生成しなければならない。ユーザは、効率利得について多くが得られないかまたは品質の悪い出力に耐えるということになる。従って、この発明は、かかる問題点を解決するためになされたものであり、処理時間を低減して高品質画像を生成することができる３次元レンダリングシステムを提供することを目的としている。
【００１８】
【課題を解決するための手段】
本発明は、展開する３次元シーン記述を一続きの２次元画像（フレーム）としてレンダリングする方法および装置を提供する。本方法において、展開シーン記述には、オブジェクトジオメトリＧとそれらに関連するシェーダプロシージャＳとが含まれる。各シェーダプロシージャＳは、静的プロシージャＳsと動的プロシージャＳdとに因数分解される。すなわち、Ｓ（Ａ，Ｉ）＝Ｓd（Ｓs（Ａ，Ｒ），Ｉ）となる。ここで、Ａは、オブジェクトをシェーディングするために必要な外観パラメータを示し、Ｉは制御パラメータのインスタンスを示し、ＲはＩを含む制御パラメータの範囲を示す。
【００１９】
同様に、オブジェクトジオメトリのレンダリングプロシージャＴＳＩ（展開、サンプリングおよび補間）も、静的プロシージャＴＳＩsと動的プロシージャＴＳＩdとに因数分解される。すなわち、ＴＳＩ（Ｇ，Ｉ）＝ＴＳＩd（ＴＳＩs（Ｇ，Ｒ），Ｉ）となる。ＳとＴＳＩ両方の因数分解は、展開するシーンに対する全レンダリング時間を大幅に低減するよう選択されている。特に、視点に依存しないかまたは視点への依存度が低い計算Ｓs（Ａ，Ｒ）およびＴＳＩs（Ｇ，Ｒ）は、レンダリングの静的フェーズにおいて計算され、独立したデータ構造としてまたは内部表現と呼ばれる単一の結合されたデータ構造として格納される。そして、この内部表現がレンダリングの動的フェーズにより処理され、各フレームが生成される。
【００２０】
巧妙な因数分解および効率的な内部表現の両方の結果として、フレームを生成するために必要な動的計算が大幅に低減され、必要な静的計算が低頻度で実行されるため、レンダリング時間全体が低減される。
【００２１】
本発明の一態様において、シェーディングプロシージャＳのみの因数分解が実行される。静的および動的フェーズは、上述したようなシェーディング計算を実行する。シェーダマップと呼ばれるデータ構造を用いて、静的シェーディング計算の結果が格納され、グローバルに再パラメータ化された入力ジオメトリは、動的フェーズにおいて使用される。
【００２２】
本発明の他の態様では、ＳおよびＴＳＩの両方の因数分解が実行される。静的および動的フェーズは、上述したようなシェーディング計算とジオメトリ計算との両方を実行し、単一の結合されたデータ構造を用いて、静的シェーディング計算の結果と静的ジオメトリ計算の結果との両方が格納される。
【００２３】
本発明の他の態様では、ＳおよびＴＳＩの両方の因数分解が実行され、静的および動的フェーズが上述したようなシェーディング計算とジオメトリ計算との両方を実行し、別個のデータ構造を用いて、静的シェーディング計算の結果と静的ジオメトリ計算の結果とが格納される。静的シェーディング計算は、シェーダマップに格納される。
【００２４】
本発明の他の態様では、制御パラメータの範囲には視点の範囲が含まれ、制御パラメータのインスタンスには特定の視点が含まれ、静的シェーダは、特定の視点には依存しないかまたは特定の視点に対する依存度が低い。
【００２５】
本発明の他の態様では、オブジェクト座標系を用いて中間表現が表される。
【００２６】
中間表現は、エッジによって結合された頂点を有するポリゴンのメッシュ（ポリゴンファセットと呼ばれる）を含むことができるか、あるいは、シェーダマップを含むことができる。ポリゴンファセットおよびシェーダマップの両方については後述する。
【００２７】
【発明の実施の形態】
多重フェーズレンダリング
図２は、本発明による多重フェーズレンダリングシステム２００（以下、単にシステム２００とする）を示す。システム２００は、因数分解ステップ２１０と、静的レンダリングフェーズ２２０（以下、単に静的フェーズ２２０とする）と、動的レンダリングフェーズ２３０（以下、単に動的フェーズ２３０とする）と、コントローラ２４０とを有している。上述したように、システム２００は、展開シーン記述２０１を入力とする。この展開シーン記述には、オブジェクトジオメトリ（Ｇ）と関連するシェーダプロシージャ（Ｓ）とが含まれている。システム２００の出力は、画像（フレーム）２０９のシーケンスである。
【００２８】
因数分解ステップ２１０は、展開シーン記述２０１を静的部分２０２と動的部分２０３とに分解する。この因数分解ステップ２１０は、２つのレンダリングフェーズ２２０，２３０に対する前処理ステップである。静的部分２０２は、静的ジオメトリ（Ｇ’）と、静的変換、サンプリングおよび補間プロシージャＴＳＩsと、静的シェーダプロシージャ（Ｓs）とを含む。動的部分２０３は、動的変換、サンプリングおよび補間プロシージャＴＳＩdと、動的シェーダプロシージャ（Ｓd）とを含む。静的フェーズ２２０は、例えば視点の範囲等の値の範囲２０４に従って、シェーディングおよび更なるＧ’の処理を実行する。一方、動的フェーズ２３０は、値の特定のインスタンス２０５についてシェーディングおよびラスタ化を行う。特定のインスタンスは、特定のフレームに対応する。
【００２９】
両フェーズとも、変換、サンプリングおよび補間コンポーネントＴＳＩs２２１およびＴＳＩd２３１を含むことができる。なお、後述するシェーダマップを使用する場合、ＴＳＩs２２１は任意である。本発明の一実施態様では、ＴＳＩsは代表的な視点を用いてＧ’に対する浮動小数点透視変換を実行することにより、ある範囲の値に対して有効である固定小数点中間表現を生成する。そして、ＴＳＩdは、特定のインスタンスおよびフレームについての中間表現に対して固定小数点透視ワープ（warp）を適用する。ＴＳＩdによって使用される固定小数点表現により、非常に効率的な計算が可能となるが、これは浮動小数点によってサポートされる広い動的な範囲をサポートしていない。因数分解２１０の結果である分離により、処理時間、記憶領域およびバス帯域幅が低減される。これは、中間表現が「リフレッシュ」される必要があるのは、例えば視点の大きな変化かまたは完全に異なるシーン等、大幅な変化があった場合のみであることによる。
【００３０】
図３は、本発明による静的フェーズと動的フェーズとを対照させるために使用されている。静的とは、多数の画像に亙って実質的に同じであるオブジェクト（幾何学的記述ＧおよびシェーダＳから構成される）および処理を言う。動的とは、全フレーム毎のオブジェクトおよび処理を言う。図３において、水平ライン３００は、画像３０１〜３０９のシーケンスを示しており、各目盛りはフレームを表している。その下の水平ライン３１１〜３１９は、シーケンス３００におけるオブジェクトの出現（および消滅）を示す。垂直破線３２１および３２２は、シーンが変っていることを示す。
【００３１】
静的フェーズ２２０の目的は、一定または比較的一定のシーン記述の（静的）オブジェクト（幾何学的記述ＧおよびシェーダＳから構成される）を随時（occasionally）処理するということである。位置、サイズまたは方向付けのわずかな詳細を除いて大部分が同じままである背景オブジェクトまたは前景オブジェクトは、静的であるとみなすことができる。また、視点および他の制御インスタンスパラメータに依存しないかまたは依存度が低いシェーディング計算も静的であるとみなすことができる。シーン記述が急に変化する場合、または多くのフレームに亙ってオブジェクトの徐々に増える変化量がある閾値を超える場合にのみ、静的フェーズは、シーン記述の対応する部分を再処理する必要がある。対照的に、動的フェーズ２３０は、シーケンスの全フレーム毎にシーンの各オブジェクトを処理する。
【００３２】
コントローラ２４０は、静的フェーズ２２０に対し、制御パラメータ２０４の範囲を与える。この制御パラメータの範囲は、各ＧおよびＳに対し、形状（Ｇ）および陰影（Ｓ）の外観がその範囲でどのように変化するかを示す。例えば、制御パラメータ２０４の範囲は、視点の範囲、幾何学的なサイズの範囲、またはシェーダＳが評価されるべき（ｕ，ｖ）の範囲とすることができる。
【００３３】
追加の詳細がよりよく見えるようになる（またはより見えなくなる）ようにオブジェクトが移動する場合、そのオブジェクトのシーン記述は、それら詳細を示す（または隠す）ように再処理される必要がある。言い換えれば、ある範囲の最後は、特定のオブジェクトに対して静的フェーズを再開する閾値である。ビデオゲーム等いくつかの実現例において、コントローラの動作は、ユーザ入力に応じることができ、シーンがどのように展開しているかを予測するよう試みることができ、対応する制御パラメータを生成することができる。
【００３４】
さらに、静的フェーズ２２０またはコントローラ２４０は、シーンに対する新たなオブジェクトの導入を予想することができる。これらオブジェクトは、その導入に先立って事前処理することができる。
【００３５】
静的フェーズ２２０は、動的フェーズ２３０による処理が容易な中間表現２０８を生成する。例えば、中間表現２０８は、動的フェーズ２３０が、静的フェーズ２２０がより広いダイナミックレンジを可能とするために使用するより低速な浮動小数点算術ユニットの代りに、高速な固定小数点算術ユニットを使用することができるような形態となっている。
【００３６】
動的フェーズ２３０は、動的シェーダプロシージャ（動的部分）２０３と動的変換、サンプリングおよび補間プロシージャＴＳＩd２３１とを、制御パラメータのインスタンス２０５を用いて静的フェーズ２２０の中間表現２０８に適用する。インスタンス２０５は、シーケンスの全フレームに対して存在する。動的フェーズ２３０の目的は、連続画像におけるオブジェクトの外観のいかにわずかな漸次の差異に対しても、中間表現２０８（形状および陰影データの両方から構成される）を「調整する」ことである。例えば、その差異は、オブジェクトが１秒の１／３０で移動する距離、またはその視点における同様のシフトに対応するものである。また、各フェーズは、後に詳述するように、ある変換、サンプリングおよび補間を実行することができる。
【００３７】
２つのフェーズ２２０，２３０は、互いに独立して、異なる速度で動作することができる。静的フェーズ２２０は、そのオブジェクトの外観に大幅な変化がある時にのみオブジェクトに作用する。静的フェーズ２２０は、そのオブジェクトの中間表現２０８をデータベースに格納し更新することができる。動的フェーズ２３０は、シーケンスのすべての画像について実行する。
【００３８】
因数分解
大抵のシェーディングされた３次元オブジェクトには、連続した多次元表面のパラメータ表現（parameterization）が存在する。例えば、パラメータパッチのメッシュによって定義されたオブジェクトは、境界において連結することができるパッチ毎のパラメータ表現を有している。外観属性の多くは、このグローバルパラメータ表現の関数として生成することができる。このグローバルパラメータ表現は、Ｇ’に格納される。生成することができない部分は、視点またはシーンにおけるオブジェクトの位置の変化等、動的パラメータによって決まる。形状についても同様に、元のＴＳＩ関数は、静的関数と動的関数とに因数分解することができるため、レンダリング時間全体が低減される。
【００３９】
従って、本発明は、シェーダプロシージャ（Ｓ）をＳs２０２およびＳd２０３に因数分解し、元のＴＳＩ関数をＴＳＩs２２１およびＴＳＩd２３１に因数分解する。静的シェーダＳsは、範囲２０４の制御パラメータに対して一定（または略一定）であり、動的シェーダＳdは、各画像の制御パラメータのインスタンス２０５によって決まる。ＴＳＩs２２１プロシージャは、Ｓs２０２プロシージャと協動して、例えば、現視点が範囲２０４内にあるとすると、グローバルにパラメータ化されたジオメトリＧ’を、ＴＳＩd２３１およびＳd２０３による非常に高速なレンダリングに適合される中間表現２０８に変換する。
【００４０】
多重フェーズレンダリングにおける１つの重要な洞察は、一般に、動画シーケンスにおいてある画像から次の画像へ、シーン記述および／または視点はわずかな量しか変化しない、ということである。より詳細には、シーンのオブジェクトのうちのいくつかは殆ど移動せず、わずかな数のオブジェクトが出現または消失し、視点は殆ど移動しない場合が多く、大きい変化は頻繁には起こらない。他の重要な洞察は、手続き的シェーディングによって必要な計算の多くが視点とは無関係であるため、これら計算を、動的フェーズによって格納および検索することによって、もとの因数分解されていないシェーダプロシージャＳの出力を再構成することができる、ということである。
【００４１】
シーン記述および／または視点の変化がわずかである根本的な理由は、一般に、２つの連続する画像が、例えば１秒の１／３０等、非常にわずかな時間によって分割されているということである。シーン記述および視点がある画像から次の画像へほんのわずかしか変化しない場合、出現したオブジェクトを再使用することができる場合の第１の画像に対する（静的）変換、サンプリングおよび補間（ＴＳＩs２２１）の大部分は、中間表現２０８については、生成される新たなサンプルに対して十分である。
【００４２】
同様に、シーン記述および視点がある画像から次の画像にわずかしか変化しない場合、第１の画像に対してシェーディング（Ｓs）によって行われる計算の大部分は、第２の画像にもまだ適用が可能である。特に、オブジェクト上の特定の点のカラーに寄与する情報の大部分は、その点自体の固有の特徴であり、視点に関するそのオブジェクトの正確な位置にほとんど関係していない。この視点独立性に対する最も顕著な例外は、正確な視点に非常に影響を受け易い鏡面反射である。従って、本発明による多重フェーズレンダリングは、シェーダプロシージャを以下の２つの部分に分割している。すなわち、その１つ目（Ｓs）は、視点に対する依存度が低く、複数画像に対し再使用が可能なものであり、２つ目（Ｓd）は、シーケンスのすべての画像に対して再計算されるものである。
【００４３】
多重フェーズレンダリングの中心的な特徴は、ＴＳＩd２３１およびＳd２０３を含む動的フェーズ２３０が、すべての画像に対して全シーン（全オブジェクト）に作用する一方で、静的フェーズ２２０が、シーンのオブジェクトを必要な場合にのみ処理する、ということである。静的フェーズ２２０は、所定の瞬間にあるシーンの一部分のみに作用することができるように、一度に１つのオブジェクトに作用するよう構成されている。多くの動画シーケンスにおいて、次の画像を生成するために静的フェーズ２２０が処理する必要があるのは、シーン記述のわずかな部分のみである。
【００４４】
大抵の動画シーケンスに対し、静的フェーズ２２０は頻繁には実行しない。従って、中間表現２０８は、その中間表現２０８に適用されるＴＳＩd２３１がＧに適用されるＴＳＩ（従来技術の場合のように）よりずっと高速であるように、設計されている。また、Ｓは、Ｓd（Ｓsの格納された計算へのアクセスおよび処理を含む）がＳより高速であるように因数分解される。従って、多重フェーズレンダリングは、単一フェーズレンダリングより非常に短い時間で所定の品質の出力を生成することができる。
【００４５】
動画シーケンスにおいて画像から画像へ、２種類のイベント、すなわち視点の変化およびＧ’の変化が、静的フェーズにおいてオブジェクトを再処理する必要性をトリガする。オブジェクトに対する視点の変化は、現視点がオブジェクトが最後に処理された時に想定された範囲２０４を離れる時はいつでも、静的処理をトリガする。
【００４６】
動画シーケンスにおける変化の大部分は、Ｇ’の変化によって表現される。シーン内をオブジェクトが移動する等のいくつかの変化を、静的フェーズにおいてオブジェクトを再処理する必要なく、中間表現２０８を漸次変更することによって適応させることができる。シーンの新たなオブジェクトの出現等、他の変化には、静的フェーズの動作が必要である。
【００４７】
中間表現
多重フェーズレンダリングにおいて設計上考慮すべき重要なことは、静的フェーズから動的フェーズに渡される中間表現２０８の選択である。
【００４８】
従って、本発明による中間表現は、従来技術の画像チャンクとは異なり、ある範囲の値を越えた変化を可能とするオブジェクト座標を用いることによって表される。
【００４９】
中間表現２０８は、３次元であるため、従来技術の画像チャンクの２次元値と異なり、データ値の（ｘ，ｙ，ｚ）位置を特定する。３次元情報に対し、範囲２０４における新たな現視点について中間表現をいかにレンダリングするかを正確に判断する必要がある。
【００５０】
この表現は、独立したデータ値を特定するだけでなく、値がどのように隣接するかをも特定する。この隣接情報は、視点の変化が画像における誤ったクラックまたはオーバラップをもたらすことがないようにする、という効果を有する。基本的なカラーおよび半透明情報に加えて、中間表現２０８は、Ｓdによって必要とされる情報も含む。例えば、Ｓdが鏡面反射をサポートしている場合、中間表現２０８は、反射が正確に計算され得るように照明法線を特定する。
【００５１】
高品質のエイリアス除去された画像を生成するために、中間表現の解像度は、画像のピクセル解像度よりも大幅に高くなっている。Ｇ自体の展開オブジェクトジオメトリは、これらの要件を満足するが、Ｇは処理に時間がかかる。中間表現は、高い並行処理性を有する動的フェーズによって非常に高速に処理することができる形態を有している。
【００５２】
これを可能にするために、データ値は、単純で（例えば、固定小数点フォーマットで格納される）、ローカライズされており、かつ、すべて同じフォーマットであるか、または非常に小さいフォーマットのセットでなければならない。これは、データによっては広範囲の画像に関する情報を特定するＧとは、対照的である。シェーディング中に複数ソースからの情報を結合しなければならず（ローカルでないというもう１種類の失敗（a second kind of failure to be local））、オブジェクトに対し広範囲の根本的に異なる表現が使用される。
【００５３】
ポリゴンファセット−形状および陰影属性を結合する中間表現
図４に示すように、１つの中間表現は、「ポリゴンファセット」を使用する。ポリゴンファセットは、グラフィカルシーンの中間記述として作用する。ポリゴンファセットは、静的フェーズ２２０におけるオブジェクト（Ｇ’）を処理した結果である。ポリゴンファセットは、動的レンダリングに必要なものの大半を符号化している。しかしながら、ポリゴンファセットは、動的フェーズ２３０が種々の異なる視点から非常に正確な画像を生成することができるように、十分な量を処理せずにおく。また、この表現により、ポリゴンファセットに関連する位置を再計算するのではなく単に変更するだけで、シーンのオブジェクトの相対的な動きをサポートすることが可能となる。
【００５４】
図４は、小さい三角形として表現されているポリゴンファット４００を示す。一般に、ポリゴンファセットは、三角形かまたは四辺形のいずれかである。ポリゴンファセットはエッジを有するポリゴンであるため、ポリゴンファセットがいかに隣接するかを正確に特定することができる。オブジェクトは、その表面を覆うポリゴンファセットのメッシュによって表現される。共有される頂点およびエッジを用いてポリゴンファセットが特定されるということは、ポリゴンファセットのグループが変化した視点からレンダリングされる場合に誤ったクラックおよびオーバラップが生じない、ということを意味する。
【００５５】
各ポリゴンファセットは、その頂点と１ブロックの追加データ４１０とを含む１組のデータ値と関連付けられている。例えば、三角形のポリゴンファセット４００は頂点４０１，４０２，４０３を有し、データブロック４１０に関連付けられている。３次元空間におけるポリゴンファセットの位置は、ポリゴンファセットの各頂点の座標（ｘ，ｙ，ｚ）によって特定されている。これにより、ポリゴンファセットが他の視点から正確にレンダリングされることが可能となる。上述したように、座標は、画像空間ではなくオブジェクト空間において特定されているため、例えばオブジェクトが移動する場合等、ポリゴンファセットの再使用および変更が容易となる。
【００５６】
ポリゴンファセットは、ビュー平面におけるピクセル間の距離がＰである場合、そのビュー平面に投影された各エッジの見た目上の長さがＰ／２未満となるように、静的フェーズ２２０において生成される。これにより、ポリゴンファセットから高品質な画像を生成することができるように、そのポリゴンファセットを十分に小さくすることが保障される。さらに、可能な場合は、エッジの見た目上の長さはＰ／４より長く維持される。これにより、ポリゴンファセットの数が低減され、従って、両フェーズにおける必要な計算も低減される。
【００５７】
ポリゴンファセットのサイズを小さくすることにより、最終的な画像よりも非常に高詳細レベルで情報を特定することが可能となる。これにより、結果としての画像の高品質なエイリアス除去が可能となる。ポリゴンファセット間の間隔はピクセル間の間隔に基づいているが、ポリゴンファセットは、１つの画像におけるピクセルではなくそれらが表現するオブジェクトに位置合せされている。
【００５８】
データブロック４１０は、視点４１１を有しており、ポリゴンファセットは静的フェーズ２２０によりこの視点４１１から最初にレンダリングされている。また、データブロック４１０は、ポリゴンファセットを正確に使用することができる視点の最大変化を特定するｄｅｌｔａ＿Ｖ値４１２を有している。この値は、オブジェクトに対する極座標状の表現を含む多くの方法で表現することができる。例えば、ｄｅｌｔａ＿Ｖは、視点とオブジェクトとの距離が２の因子（factor）より大きく変化するかまたはオブジェクトの周囲を２０°より大きい角度で移動した場合に、ポリゴンファセットを再生成しなければならない、ということを特定する。
【００５９】
また、データブロック４１０は、使用される動的シェーダＳd４１３も特定する。この意味を理解するために、以下のように考える。すなわち、シーングラフによって特定された項目の１つが、各オブジェクトに対して使用されるシェーディング計算である。シーングラフが、オブジェクトＡに対してシェーダプロシージャＳが使用されるということを特定しているものと仮定する。また、各ポリゴンファセットには、ＲＧＢカラー４１４およびＳsによって計算される半透明（translucency）値（α）４１５も関連付けられている。さらに、照明計算のために使用される表面法線（normal）４１６が格納されている。動的シェーダＳd４１３は、この格納されたデータを使用して、各サンプル点のシェーディングされた値を計算する。
【００６０】
静的フェーズによって生成されたポリゴンファセットデータを、オブジェクトによってインデクスされるデータベースに格納することができる。静的フェーズは、このデータベースを更新し続け、時にオブジェクトの新たな中間記述を生成する。この更新は、例えば、視点とオブジェクトの関係が、格納された中間表現２０８が有効かつ正確な出力にもはや使用することができないほど変化している場合に、行われる。例えば、視点からオブジェクトまでの距離が半分に切られた場合、正確さを維持するためには、新たなさらに詳細な中間表現が必要とされる。あるいは、この距離によって新たなより低い解像度が２倍になる場合、最適な効率を維持するために中間表現が必要とされる。
【００６１】
シェーダマップ
図５に示すように、別の中間表現が、複数解像度のシェーダマップ５０１〜５０４を使用する。シェーダマップは、複数の詳細レベルでのＳsの評価と考えることができる。図５に示すように、シェーダマップ５００は、周知の従来技術によるテクスチャマップと同様の構造を有する。これは、Ｎタプルミップマップとしても知られており、各マップが特定の解像度で［０，１］2∈ＲNからの関数を表現する。しかしながら、シェーダマップは、単純なテクスチャマッピングの代りに手続き的シェーディングを可能とするという点で、テクスチャマップよりも非常に広い目的にかなうものである。
【００６２】
テクスチャマップと同様に、シェーダマップ５０１〜５０４は、例えば１×１、２×２、…、５１２×５１２、１０２４×１０２４等、複数の解像度に対して計算され格納される。シェーダマップは複数の解像度で格納されるため、サンプリングレートの変化を容易に適応させることができる。テクスチャマッピングと異なり、シェーダマップは、タイリング方式を使用して計算および格納を最小化する。タイルは、例えば５１２×５１２マップのうちの１６×１６領域等、マップの矩形サブセットから構成されている。タイルおよびマップは、要求時にＳs計算により生成される。
【００６３】
特定のマップにおける各ｎタプルｉ５１０は、静的に既知であるか、または静的フェーズにおいて計算することができる値を格納する。例えば、特定のシェーディング計算は、Ｃ＝Ａ1＋Ａ2＋ (Ａ3）(Ｋspec) として表される。ここで、値Ａ1、Ａ2およびＡ3は、おそらく他の静的な量の複雑な表現から計算される静的な量である。値Ｋspecは、鏡面照明によるコントリビューション（contribution）であり、現視点によって動的に変化する。
【００６４】
この場合、ｎタプルｉ５１０は、Ａ1およびＡ2の合計５１１と値Ａ3５１２とを格納する。そして、動的フェーズは、鏡面照明によるコントリビューションＫspecと、積 (Ａ3）(Ｋspec) と、最終的な合計Ｃとを計算するだけでよい。一般に、静的な量は、シェーダの計算付加の量を表すため、従来技術によるシステムと比較してシェーディング実行時間が大幅に節約される。
【００６５】
最終的にシェーディングされた値（例えば、上述した式におけるＣ）を計算するために、動的フェーズは、適当なシェーダマップに含まれるｎタプルエントリの視点依存のサブセットを再サンプリングする必要がある。この再サンプリングを実行するために、Williamによる"Pyramidal Parametrics," SIGGRAPH 1983, pp.1-11に述べられているような３線ミップマッピングと同様の等方性フィルタリングを使用する場合、再構成は、シェーダマップの隣接する解像度レベルから２つのｎタプルプローブを結合して、フィルタリング演算の最終結果を形成することにより、実行される。各プローブは、シェーダマップレベルのｎタプルエントリのセットから構成されている。このセットを構成するｎタプルは、例えば２×２双線形フィルタ等の等方性フィルタにより結合され、そのプローブについてｎタプルが生成される。各プローブのエントリのセットは、等方性フィルタのサポート内のエントリのセットである。
【００６６】
同様に、McCormack等により"Feline: Fast Elipical Lines for Anisotropic Texture Mapping," WRL Research Report 99/1, July 1999において述べられているようなFelineアルゴリズムと同様なマルチプローブ異方性フィルタリングを用いて再サンプリングを行う場合、再構成は、上述したように各等方性プローブが等方性フィルタリング演算の最終結果である場合に、複数のｎタプル等方性プローブを結合することによって実行される。ｎタプル等方性プローブは、異方性フィルタに従って、重み付けがなされ結合される。
【００６７】
このように、等方性および異方性フィルタリングをより豊かなデータ表現のセット、すなわち、Ｓsによって計算される格納された静的な量に汎化することによって、Ｓdによって実行される計算と協動して、計算コストが大幅に低減しつつ、元のシェーダＳの出力の高品質な再構成が生成される。これは、本発明の重要な効果である。
【００６８】
いかなるフレームをレンダリングする前にも、コントローラ２４０はまず、各シェーダプロシージャに対して部分的に埋められているシェーダマップを生成することができるため、Ｓdによって行われる再サンプリングは、あるデータを有することが保障される。例えば、コントローラは、６つの最低解像度のシェーダマップ（例えば、１×１、２×２、４×４、８×８、１６×１６および３２×３２）が、Ｓdが決して待つ必要のないように常に使用可能であるようにすることができる。再サンプリングプロセスに必要なタイルを予測するために、２つの代替方法がある（再サンプリングプロセスは、Ｓd２０３の一部である）。
【００６９】
第１の代替方法は、レンダリング中にプロセスを再サンプリングすることによって予め要求されたタイルに隣接するタイルを生成する。第２の代替方法では、コントローラ２４０が、将来的なシェーダマップの必要を予測するためにシーン全体を周期的に生成する低解像度レンダリングエンジンを有する。この予測が間違っていていた場合、低解像度シェーダマップを使用することができる。記憶領域要件を低減するために、最低使用頻度（ＬＲＵ（Least Recently Used））アルゴリズムを使用して、タイルをメモリに格納しおよび／またはメモリから削除することが可能である。
【００７０】
シェーダマップは、例えば、ＮＵＲＢＳ、バイキュービック（bicubic）パッチ、三角形、点サンプル、ボリューム、サーフェスおよび他の３次元ジオメトリックフォーマット等、あらゆる形態のジオメトリに容易に適応することができる。シェーダマップは構造上テクスチャマップと同様であるため、ジオメトリの中間表現は、テクスチャマップと互換性のあるいかなる形態にもすることができる。また、後に、本発明を、OpenGL（商標名）およびRenderMan（商標名）等の周知のテクスチャマッピングシステムに採用することも可能である。テクスチャマッピングに必要な成分であるパラメータ表現の無いジオメトリについては、因数分解演算がグローバルパラメータ表現を生成し、それを入力ジオメトリＧに対して付加することによりＧ’を形成する。
【００７１】
適用例
本発明による多重フェーズレンダリングの第１に意図される適用例により、複雑な動画シーンが、例えば３０フレーム／秒等、安定した高フレームレートでレンダリングされる。この方法を用いることにより、中間表現２０８の品質が「フレーム」レートを満たすために時に低下する場合であっても、静的フェーズは、時間の可能な限りシーン記述を処理する。あるいは、多重フェーズレンダリングを使用して、フレームレートが変化する場合に一定の品質の出力を生成することができる。
【００７２】
多重フェーズレンダリングは、本来は動画シーケンスをサポートするために設計されているが、同様のシーン記述に基づくものであれば、いかなる画像のグループをレンダリングする場合にも有用である。例えば、人がある画像の変化を探索して最適な１つの画像を見付けようとしている場合に、多重フェーズレンダリングによって探索プロセスの速度が向上する。また、多重フェーズレンダリングは、単一画像を生成する場合で、その画像が、静的フェーズにおいて１回レンダリングすることができ、動的フェーズにおいて複数回使用することができる繰返しの要素を含む場合にも有用である。
【００７３】
多重フェーズレンダリングの背景にある動機付けは、例えば、３次元可視化およびゲームプレイ等、リアルタイムのインタラクティブ３次元グラフィクスをサポートすることである。しかしながら、これはまた、動画の映画等より有効なものを作成することも可能である。
【００７４】
拡張
上述した説明は、その最も簡単な形態で多重フェーズレンダリングを提示している。それを拡張することができる方法として、多くの重要な方法がある。
【００７５】
本発明の重要な拡張は、ＴＳＩsとＴＳＩdの両方、およびＳsとＳdの両方は、論理的に互いに異なるプロセスとして最も容易に理解されるが、ハードウェアから見ると非常に類似している、ということを理解することである。特に、ＴＳＩdによって行われる再サンプリングおよび再補間は、本質的にサンプリングの変形であり、ＴＳＩsおよびＳdによって行われる補間は、Ｓsと同種の処理の特別な場合である。その結果、多重フェーズレンダリングのハードウェアによる実現は、静的フェーズと動的フェーズとの両方の大部分をサポートするために同じコンポーネントを使用することができ、２つのタスクの間の回路を時間多重化することができる。このハードウェアは、中間表現とその画像のサンプルを生成することができる。
【００７６】
例えば、制御装置が、中間表現を生成するための制御パラメータの範囲を提供する間に、シェーダプロセッサが、必要に応じて静的計算を実行することができる。制御ユニットが、その画像のカラー化したサンプルを生成するための制御パラメータのインスタンスを提供する間に、同じプロセッサが、すべての画像に対して動的計算を実行する。
【００７７】
原則として、中間表現は、視点の範囲に依存せずに、視点から完全に無関係であることが可能である。これは、手続き的シェーダによって必要な計算の多くに対しても同じである。ここで、この視点独立性に関する観測について、それがジオメトリに関係する場合を考える。オブジェクトが高速に回転し移動しているシーン等、ある状況において、この独立性が有用である。しかしながら、他の状況では、ある程度の視点依存性が有益である。特に、遠くの建物等、あるオブジェクトのビュー角度の範囲が制限されていることが分っている場合、対応する中間表現を格納するメモリ要件は、決して表示されることのないオブジェクトの部分を省略し、視点から横向きに面するオブジェクトの部分に対して低解像度を使用することにより、１桁またはそれ以上低減することができる。この方法を用いることにより、記憶領域要件が低減され、動的フェーズがより高速となる。
【００７８】
中間表現のサイズを低減することにより、動的フェーズの計算が、シーン記述の複雑さではなく画像のピクセルの数に比例する。
【００７９】
中間表現の詳細レベルが、階層的表現を使用することにより動的に変化することが可能である場合、静的フェーズは比較的詳細な情報を生成することができ、動的フェーズは現視点に最も適している正確な詳細レベルを選択することができる。これにより、静的フェーズにおいて行われる計算の数が増大する代りに、動的フェーズにおいて行われる計算の数が減少する。これは、動画シーケンスにおいて多くの連続フレームに対して中間表現が使用される場合に適したトレードオフである。また、これにより、詳細レベルが変化した場合に、移行がより平滑になる。
【００８０】
上述したように、中間画像はまた、今にもシーンに入ろうとしているオブジェクトの記述を含むことも可能である。すなわち、これらは、静的フェーズによって事前計算することが可能である。そして、新たなオブジェクトを含むシーンへの移行を単一のフレームで行うことができる。
【００８１】
利点
静的シェーディング要件を動的シェーディング要件から分離することにより、画像品質を犠牲にすることなく、レンダリング効率が向上する。静的要件は、相対的にかなり低い周波数で処理され、それに対応して計算コストが低くなる。動的要件（記憶領域からの予め計算された静的要件の検索を含む）は、元のシェーディング要件より非常に小さく、従って、より効率的に計算することができる。
【００８２】
同様に、元のジオメトリを静的コンポーネントと動的コンポーネントとに因数分解することにより、レンダリング効率も向上する。例えば、静的コンポーネントに対する透視変換では、任意の視点において固定小数点座標を生成するために浮動小数点演算が必要である。動的コンポーネントに対する透視変換では、固定小数点演算を使用して、元の視点における固定小数点座標を近い視点の範囲に変更することができる。これにより、中間表現が頻繁にリフレッシュされる必要が無いため、処理時間、記憶領域およびバス帯域幅が大幅に低減する。
【００８３】
本発明は特定の用語および例を用いて説明されているが、本発明の精神および範囲内で他のあらゆる適応および変更が可能であることは理解されるべきである。従って、特許請求の範囲の目的は、これらすべての変形態様および変更態様を、本発明の真の精神および範囲内にあるようにカバーすることである。
【００８４】
【発明の効果】
この発明は、画像としてオブジェクトジオメトリおよびシェーダプロシージャを含む展開シーン記述をレンダリングする方法及び装置であって、シェーダプロシージャを、静的シェーダプロシージャと動的シェーダプロシージャとに因数分解し、制御パラメータの範囲を使用して、静的シェーダプロシージャをオブジェクトジオメトリに適用することにより、中間表現を生成し、制御パラメータのインスタンスを使用して、動的シェーダプロシージャを中間表現に適用することにより、前記画像のカラー化したサンプルを生成するようにしたので、レンダリング時間を低減して高品質画像を生成することができる。
【００８５】
また、静的シェーディング要件を動的シェーディング要件から分離することにより、画像品質を犠牲にすることなく、レンダリング効率が向上する。静的要件は、相対的にかなり低い周波数で処理され、それに対応して計算コストが低くなる。動的要件（記憶領域からの予め計算された静的要件の検索を含む）は、元のシェーディング要件より非常に小さく、従って、より効率的に計算することができる。
【００８６】
また、元のジオメトリを静的コンポーネントと動的コンポーネントとに因数分解することにより、レンダリング効率も向上する。例えば、静的コンポーネントに対する透視変換では、任意の視点において固定小数点座標を生成するために浮動小数点演算が必要である。動的コンポーネントに対する透視変換では、固定小数点演算を使用して、元の視点における固定小数点座標を近い視点の範囲に変更することができる。これにより、中間表現が頻繁にリフレッシュされる必要が無いため、処理時間、記憶領域およびバス帯域幅が大幅に低減する。
【図面の簡単な説明】
【図１】  従来技術による単一フェーズレンダリングシステムである。
【図２】  本発明による多重フェーズレンダリングシステムのブロック図である。
【図３】  静的オブジェクトおよび動的オブジェクトのタイミング図である。
【図４】  本発明によって使用される第１の中間表現において使用されるポリゴンファセットの図である。
【図５】  本発明によって使用される第２の中間表現において使用されるシェーダマップの図である。
【図１】
0004663847.tif 000002
【図２】
0004663847.tif 000003
【図３】
0004663847.tif 000004
【図４】
0004663847.tif 000005
【図５】
0004663847.tif 000006