(57)【要約】コンピュータグラフィックスシステムは、画像の中の画素の画素値を生成し、画素はシーンの中の点を表わす。コンピュータグラフィックスシステムは、画素値を選択された関数の積分の評価により生成する。コンピュータグラフィックスシステムは、サンプル点生成手段と関数評価手段とを備える。サンプル点生成手段は複数の追跡レベルを持つように構成されたレイの追跡において各々一連のレイの１つに関連付けられたサンプル点の各集合を生成するように構成される。少なくとも１つのレベルにあるレイが複数のレイに分割でき、各レイはレイインスタンス識別子に関連付けられる。サンプル点生成手段は各レベルに対して選択されたローテーション演算子が再帰的に適用される所定の決定論的な低食い違い量列としてサンプル点を生成するように構成される。関数評価手段は、サンプル点生成手段により生成されたサンプル点の１つにおける選択された関数の評価を各々代表する複数の関数値を生成するように構成され、画素値を生成するのに関数値を用いる。一実施形態では、選択されたローテーション演算子は、クランレイ・パターソンローテーション演算子である。
2005505810.tif 000002
【特許請求の範囲】
【請求項１】
画像における画素の画素値を生成するためのコンピュータグラフィックスシステムであって、前記画素はシーンの中の１点を表し、前記コンピュータグラフィックスシステムは前記画素値を選択された関数の積分の評価により生成し、
Ａ．  複数の追跡レベルを持つように構成されたレイの追跡において各々一連のレイの１つに関連付けられたサンプル点の各集合を生成するように構成されたサンプル点生成手段であって、少なくとも１つのレベルにある前記レイが複数のレイに分割され、各レイがレイインスタンス識別子に関連付けられ、各レベルに対して選択されたローテーション演算子が再帰的に適用される所定の決定論的な低食い違い量列として前記サンプル点を生成するように構成された前記サンプル点生成手段と、
Ｂ．  前記サンプル点生成手段により生成された前記サンプル点の１つにおける前記選択された関数の評価を各々代表する複数の関数値を生成するように構成され、前記画素値を生成するのに前記関数値を用いる関数評価手段と
を備えることを特徴とするレイ追跡コンピュータグラフィックスシステム。
【請求項２】
前記選択されたローテーション演算子がクランレイ・パターソンローテーション演算子であることを特徴とする請求項１に記載のコンピュータグラフィックスシステム。
【請求項３】
前記サンプル点生成手段が、各追跡レベルに対して生成されたサンプル点をキャッシュするように構成され、前記キャッシュされたサンプル点を続く追跡レベルのためのサンプル点の生成において用いることを特徴とした請求項１に記載のコンピュータグラフィックスシステム。
【請求項４】
画像における画素の画素値を生成するコンピュータグラフィックスの方法であって、前記画素はシーンの中の１点を表し、前記コンピュータグラフィックスシステムは前記画素値を選択された関数の積分の評価により生成し、
Ａ．  複数の追跡レベルを持つように構成されたレイの追跡において各々一連のレイの１つに関連付けられたサンプル点の各集合を生成するサンプル点生成ステップであって、少なくとも１つのレベルにある前記レイが複数のレイに分割され、各レイがレイインスタンス識別子に関連付けられ、各レベルに対して選択されたローテーション演算子が再帰的に適用される所定の決定論的な低食い違い量列として前記サンプル点を生成するステップを含む前記サンプル点生成ステップと、
Ｂ．  前記サンプル点生成ステップにおいて生成された前記サンプル点の１つにおける前記選択された関数の評価を各々代表する複数の関数値を生成し、前記画素値を生成するのに前記関数値を用いる関数評価ステップと
を備えることを特徴とするコンピュータグラフィックスの方法。
【請求項５】
前記選択されたローテーション演算子がクランレイ・パターソンローテーション演算子であることを特徴とする請求項４に記載のコンピュータグラフィックスの方法。
【請求項６】
前記サンプル点生成ステップが、各追跡レベルに対して生成されたサンプル点をキャッシュするステップを含み、前記キャッシュされたサンプル点を続く追跡レベルのためのサンプル点の生成において用いることを特徴とした請求項４に記載のコンピュータグラフィックスの方法。
【請求項７】
画像における画素の画素値を生成するコンピュータグラフィックスシステムを提供するコンピュータに関連して用いられるコンピュータプログラムであって、前記画素はシーンの中の１点を表し、前記コンピュータグラフィックスシステムは前記画素値を選択された関数の積分の評価により生成し、
Ａ．  複数の追跡レベルを持つように構成されたレイの追跡において前記コンピュータが各々一連のレイの１つに関連付けられたサンプル点の各集合を生成できるように構成されたサンプル点生成モジュールであって、少なくとも１つのレベルにある前記レイが複数のレイに分割され、各レイがレイインスタンス識別子に関連付けられ、各レベルに対して選択されたローテーション演算子が再帰的に適用される所定の決定論的な低食い違い量列として前記サンプル点を生成するように構成された前記サンプル点生成モジュールと、
Ｂ．  前記サンプル点生成モジュールにより生成された前記サンプル点の１つにおける前記選択された関数の評価を各々代表する複数の関数値を前記コンピュータが生成できるように構成され、前記画素値を生成するのに前記関数値を用いる関数評価モジュールと
を備えることを特徴とするコンピュータプログラム。
【請求項８】
前記選択されたローテーション演算子がクランレイ・パターソンローテーション演算子であることを特徴とする請求項７に記載のコンピュータプログラム。
【請求項９】
前記サンプル点生成モジュールが、各追跡レベルに対して生成されたサンプル点を前記コンピュータがキャッシュできるように構成され、前記キャッシュされたサンプル点を続く追跡レベルのためのサンプル点の生成において用いることを特徴とした請求項１に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
（参照としての組み入れられるもの）
１９９７年６月２３日にマーチン・グラベンスタイン等(Martin Grabenstein, et al.)の名前で出願され、「サンプル点を生成するために決定論的手法を用いた画像における画素の画素値を生成するシステム及び方法、」("System And Method For Generating Pixel Values For Pixels In An Image Using Strictly Deterministic Methodologies For Generating Sample Point, ")と題される本出願の譲受人に譲渡された米国特許出願第０８／８８０，４１８号（以下グラベンスタインの出願として参照）は、参照として組み入れられる。
【０００２】
２００１年６月１９日にアレキサンダー・ケラー(Alexander Keller)の名前で出願され、「サンプル点を生成するために決定論的手法を用いた画像における画素の画素値を生成するためのシステム及び方法」("System And Method For Generating Pixel Values For Pixels In An Image Using Strictly Deterministic Methodologies For Generating Sample Points,"と題される本出願の譲受人に譲渡された米国特許出願第０９／８８４，８６１号（以下ケラーの出願として参照）は、参照として組み入れられる。
【０００３】
（技術分野）
本発明は、広くはコンピュータグラフィックスに関し、特に、画素値を表す積分値を概算するためのサンプル点を提供するために、低食い違い量列(超一様分布列：low-discrepancy sequences)及びクランレイ・パターソンローテーション(Cranley-Patterson rotations)などのリカーシブローテーション(recursive rotations)を用いた決定論的手法を用いてレンダリングされた画像におけるピクセルの画素値を生成するシステムと方法に関する。
【背景技術】
【０００４】
コンピュータグラフィックスにおいて、コンピュータは、例えばカメラ等によるシーンの記録をシミュレートするために、例えば１つ以上の光源に照明される３次元シーンにおけるオブジェクトの面の２次元画像平面への投影を表すデジタルデータを生成するために用いられる。カメラは、シーンの画像を画像平面に投影するためのレンズを備えるかもしれないが、レンズが用いられない場合には、ピンホールカメラであるかもしれない。２次元画像は、画素要素（画素（ピクセル）またはぺルと省略される）の配列から構成され、各ピクセルに対して生成されるデジタルデータは、画像平面における各々のピクセル位置での画像平面に投影されたシーンの色と輝度を表す。オブジェクトの面は、リアルに見える画像を得るために、形状、色、スペキュラー、テクスチャーなどを含めた可能な限り本物に近い形で画像に表現されるのが好ましい、いくつかのタイプの特性を含んでいる。
【０００５】
一般にコンピュータグラフィックスにおいて、画像は、光源と画像平面のピクセルとの間において追跡されるレイ(rays)を評価(evaluate)するため積分を評価(evaluating)することによりレンダリングされ、レイは各々の光源と画像平面上のピクセルとの間において光子(photons)によって取られ得る径路を表す。積分の評価は、本質的には、画像平面の各ピクセルに入射する光子の流れ（光束：photon flux）の強さと色に関する情報を与える。一般に、積分は以下の形式である。
【数１】
2005505810.tif 000003
ここで“ｆ”はｓ1＋・・・＋ｓn＝ｓ次元単位立方体［０，１）sにおいて定義される関数である。光源に対する画像平面の位置と方向によって、いくつかのレイは光源から画像平面上のピクセルへ、直接光子の軌跡(photon path)を描くかもしれない。同様に、シーンの中のオブジェクトに対する画像平面の位置と方向によって、いくつかのレイは光源からシーンの中のオブジェクトの１以上の面において反射された後、画像平面上のピクセルに達する光子の軌跡を描くかもしれない。上述したように、オブジェクトの面は、いくつものタイプの特性を持つことができるので、それらから反射される光子の色や方向などに影響を及ぼすことができる。面の色は反射された光子の色に影響を及ぼすことができる。例えば、もし面が青色であれば、反射された光子は主に（完全でないならば）青色の光子から構成される。面の他の特性はそこから反射される光子の方向に影響を及ぼすことが可能であり、したがって各々の面から追跡されるレイの軌跡に影響を及ぼし得る。様々なタイプの面の特性が光子を幾つかの方向に反射させることから、面に入射されるレイは一般に、各面の特性に依存する方向への複数の反射レイに「分割(split)」される。例えば、面が全体として鏡面的(specular)であれば、反射レイは入射角に近い似通った方向となる。一方、面が全体として拡散的(diffuse)であると、反射レイは全体として入射角とはかなり異なる多様な方向となる。
【０００６】
一般的に、式（１）によって表わされる積分は、閉じた形の解(closed form solutions)をもたず、通常数値的に評価される。式（１）によって表わされる積分は次のように数値的に見積もることができる。
【数２】
2005505810.tif 000004
ここで、総和の中の各ｆ（ｘi1(1)，・・・，ｘin(n)）は、積分領域内のサンプル点（ｘi1(n)，・・・，ｘin(n)）における関数“ｆ”の評価値(evaluation)である。サンプル点は、幾つもの手法を用いて生成することができる；グラベンスタインの出願(Grabenstein application)は、サンプル点がハルトン列(Halton sequences)などのｓ次元の決定論的低食い違い量列からのサンプルを含む手法について記述し、ケラーの出願(Keller application)は、サンプル点がｓ次元ハマースレイ点群(Hammersley point sets)を含む手法について記述する。一般に、それらの次元ｓ1，・・・ｓnは、それぞれ光源と画像平面との間の光子の軌跡に関連付けられている。
【０００７】
問題は、特に幾つものレイが実質的に同じ方向をもつ状況において発生する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、画素値を代表する積分値を概算するためのサンプル点を与えるために決定論的低食い違い量列とクランレイ・パターソンローテーションなどのリカーシブローテーションを用いてレンダリングされる画像のピクセルに対する画素値を生成する新規で改良されたシステムと方法を提供する。
【０００９】
概略、本発明は、画像のピクセルに対する画素値を生成するコンピュータグラフィックスシステムを提供し、ピクセルはシーンにおける１つの点を代表する。このコンピュータグラフィックスシステムは、画素値を選択された関数の積分評価により生成する。コンピュータグラフィックスシステムは、サンプル点生成手段(sample point generator)と関数評価手段(function evaluator)とを備える。サンプル点生成手段は、複数の追跡レベル(trace levels)をもつように構成された光線追跡(ray trace)において、一連のレイ(a series of rays)の１つに各々関連付けられるサンプル点の集合をそれぞれ生成するように構成される。少なくとも１つのレベルにあるレイは複数のレイに分割でき、各レイはレイインスタンス識別子(ray instance identifier)に関連付けられている。サンプル点生成手段は、選択されたローテーション演算子がそれぞれのレベルに応じて再帰的に(recursively)適用される所定の決定論的低食い違い量列としてサンプル点を生成するように構成される。関数評価手段は、複数の関数値を生成するように構成され、関数値の各々はサンプル点生成手段により生成されたサンプル点の１つにおける選択された関数の評価を表わす。また、関数評価手段は、画素値を生成するのにこの関数値を用いる。
【００１０】
ある実施形態では、選択されたローテーション演算子は、クランレイ・パターソンローテーション演算子である。
【００１１】
更に、ある実施形態では、サンプル点生成手段はそれぞれの追跡レベルに対して生成するサンプル点をキャッシュするように構成され、次の追跡レベルに対するサンプル点を生成する間、キャッシュされたサンプル点を用いる。
【００１２】
本発明は、添付された請求項における特徴により指摘される。本発明の上記及び更なる長所は、添付された図面と連携する以下の説明を参照することにより、より良く理解されるであろう。
【発明を実施するための最良の形態】
【００１３】
本発明は、シーンの画像の中のピクセルに対する画素値を生成するためのコンピュータグラフィックスシステムと方法を提供し、これはシーン内の様々な点から反射された光の各画素値への寄与を表わす関数の積分を評価するためのサンプル値を生成するために用いられるサンプル点の生成に決定論的手法を用い、選択されたローテーション演算子が適用される。ここに添付された図１には、このような決定論的手法を用いる実例としてのコンピュータシステム１０が描かれる。図１を参照すると、一実施形態におけるコンピュータシステム１０は、プロセッサモジュール１１とオペレータインターフェース部を含み、オペレータインターフェース部は、キーボード１２A及び／又はマウス１２Bなどのオペレータ入力部（全体としては、オペレータ入力部１２として扱われる）と、ビデオディスプレイ装置１３などのオペレータ出力部を備える。実例としてのコンピュータシステム１０は、従来のプログラム内蔵方式のコンピュータアーキテクチャーである。プロセッサモジュール１１は、例えば、１個以上のプロセッサ、メモリとディスク及び／又はテープ記録部などの大容量記憶装置（個別には示されない）を含み、これらはそれに与えられるデジタルデータに関する処理及び記録作業を実行する。プロセッサモジュール１１が、複数のプロセッサデバイス含むならば、それぞれのプロセッサデバイスはシングルタスクの様々な部分を処理するように構成されてもよく、この場合タスクはそれ以外の場合よりも速く実行され得る。オペレータ入力部１２は、オペレータが処理のための情報を入力することを可能とするために設けられる。ビデオディスプレイ装置１３は、オペレータにプロセッサモジュール１１により生成された出力情報をスクリーン１４に表示するために設けられ、これには処理の間に生成される情報の他、オペレータが処理のために入力するであろうデータや、処理を制御するためにオペレータが入力するであろう情報も含まれる。プロセッサモジュール１１は、いわゆる「グラフィカルユーザインターフェース」（“ＧＵＩ”）を用いてビデオディスプレイ装置１３での表示のための情報を生成し、これにより様々なアプリケーションプログラムの情報が個々別々の「ウインドウ」を用いて表示される。コンピュータシステム１０は、入力情報をオペレータから受け取るためのキーボード１２Ａやマウス１２Ｂ、オペレータに出力情報を表示するためのビデオディスプレイ装置１３など、特定のコンポーネントを備えたかたちで示されているが、コンピュータシステム１０は、様々なコンポーネントを追加的に、あるいは図１に示されたものの代わりに備えていてもよい。
【００１４】
更に、プロセッサモジュール１１は、１以上のネットワークポートを備え（全体として参照番号１４により参照される）、これはコンピュータネットワークにコンピュータシステム１０を接続するコミュニケーションリンクに接続される。ネットワークポートは、コンピュータシステム１０からネットワーク上の他のコンピュータシステムや他の装置へ情報を転送し、またはそれらから情報を受信することを可能とする。例えばクライアントサーバ方式(client-server paradigm)に従って構成された一般的なネットワークにおいては、ネットワークの中のあるコンピュータシステムがサーバーとして任命され、これらには他のクライアントコンピュータシステムでの処理のためのデータやプログラム（包括的には「情報」）が蓄えられており、これによりクライアントコンピュータシステムは情報を便利に共有することができる。特定のサーバーに保持された情報にアクセスする必要があるクライアントコンピュータシステムは、サーバーがネットワークを介してそれに情報をダウンロードすることを許可する。またデータを処理した後、クライアントコンピュータシステムは、処理されたデータを保存しておくためにサーバーに戻してもよい。これらのコンピュータシステム（上述したサーバーやクライアントを含む）に加えて、ネットワークは更に、プリンターやファクシミリ装置、デジタルオーディオやビデオ記録装置と分配装置などを含んでいてもよく、これらはネットワークに接続された様々なコンピュータシステムにおいて共有されてもよい。ネットワーク上のコンピュータシステムを双方向に連結するコミュニケーションリンクは、従来周知のように、利便性のあるいかなる情報伝達媒体(information-carrying medium)を含んでいてもよく、これにはコンピュータシステム間において信号を伝達する有線、光ファイバーや他の媒体が含まれる。コンピュータシステムは、コミュニケーションリンクを介して伝達されるメッセージを用いて情報をネットワークを介して転送し、各メッセージは情報とメッセージを受け取る装置を識別するための識別子(identifier)を有する。
【００１５】
本発明により扱われる問題は、図２との関係において説明される。一般的にコンピュータグラフィックスでは、光源と画像平面上のピクセルとの間において追跡されるレイの特性を決定するために積分を評価することにより画像がレンダリングされる。レイは、それぞれの光源と画像平面上のピクセル間においてシミュレートされる光子が取る経路を表す。図２には、基本的に光沢があるが略鏡面的な２つの面２１、２２からの反射を含み、基本的に光沢があるが略拡散的する１つの面２３からの反射に引き継がれるレイの軌跡２０が１例として描かれる。説明を簡略にするために、図２では反射は実際には屈折により表わされている。第１の面２１に入射する光子の流れを表わすレイ２４は、反射において、面２１の特性に依存する方向をもつ選択された数のレイに分割される。図２に描かれたイラストでは、面２１に入射するレイ２４は、２つのレイ２５、２６に分割されるが、コンピュータグラフィックスシステム１０は、面からの反射においていかなる数のレイに入射レイを分割するように制御されてもよい。図２に描かれたイラストでは、レイ２５、２６の双方は、面２２に向けられるが、面２１が略鏡面的であることから入射角は僅かにしか異ならない。
【００１６】
レイ２４が面２１に入射すると、面２２に向けられたレイ２５、２６は、面２２の特性はもちろんのこと、それらの入射角に依存する方向をもつ選択された数のレイに分割される；図２に描かれたイラストでは、レイ２５は２つのレイ２７、２８に分割され、レイ２６はレイ２９、３０に分割されている。面２２が略鏡面的であることから、レイ２７と２８は、ほとんど同じ反射角をもち、レイ２９と３０についても同様である。図２に描かれたイラストでは、レイ２８と２９も面２２からほとんど同じ反射角をもつが、一方でレイ２７と３０の反射角はいくぶんより大きく異なる。
【００１７】
レイ２７乃至３０は、全て面２４に入射する。面２１、２２では、面２４から反射したレイの反射角は、面２４の面特性はもちろんのこと入射角に依存する。面２４は略拡散的であることから、面２４から反射されたレイ３１乃至３８の反射角は、略鏡面的な面２１、２２におけるものよりもより大きく異なる。しかし、略同じ入射角をもつレイ２８や２９などのレイでは、一対の関連する反射レイは実質的に同じ反射角をもつ。これはレイの対３３、３５とレイの対３４、３６により示される。
【００１８】
レイの集合は、レイ２４が図２に描かれたイラストのツリーのルートであるレイツリー(ray tree)を含む。レイツリーにおける各レイは、インスタンス番号により識別され、面２１に入射するレイ２４はインスタンス番号“ｉ”により識別され、続くレイはそのインスタンス番号に基づいたものとされる。したがって、レイ２４が面２１からの反射において分割されるレイ２５と２６には、インスタンス番号“ｉ＋１”と“ｉ＋２”が付けられる。同様に、レイ２５が面２２からの反射において分割されるレイ２７と２８には、インスタンス番号“ｉ＋２”と“ｉ＋３”が付けられ、レイ２６が面２２からの反射において分割されるレイ２９と３０には、インスタンス番号“ｉ＋３”、“ｉ＋４”が付けられる。これまでに図２に描かれたイラストで示されたように、レイ２７乃至３０の各々は、順番に、それらが略拡散的な面２４から反射されるときに選ばれた数のレイ３１乃至３８に分割され、各レイは入射レイのインスタンス番号に基づいたインスタンス番号をもつ。
【００１９】
明らかなように、多くのレイのインスタンス番号は重複しており、重複の程度は各レイがそれぞれの面と相互作用するときに分割されるレイの総数に依存する。図２を調べると、同じインスタンス番号“ｉ＋３”をもつ３つのレイ、すなわちレイ２８、２９、３１があることが明らかとなり、そのうちの２つ、すなわちレイ２８、２９は、面２２から反射され面２３に入射し、似通った空間的特徴をもつ。更に、同じインスタンス番号“ｉ＋４”をもつ４つのレイ、すなわちレイ３０、３２、３３、３５が存在し、そのうちの２つ、すなわちレイ３３、３５は面２３から反射され、似通った空間的特徴をもつ。一般に、面２１、２２が略鏡面的であることから、レイ２７乃至３０は略同じ方向となり、かなり似通った空間的特徴をもつ。したがって、略拡散的な面２４から反射されたレイがいくつかの方向をもつにもかかわらず、面２４に入射するレイの多くが似通った角度からのものであることから、面２４から反射された多くのレイも似通った方向と他の空間的特徴を備える。インスタンス番号における重複の程度は、各入射レイが面との相互作用において分割されるレイの総数に依存し、反射レイが似通った空間的特徴を備える度合いはそれらが反射される面の特性に依存するものと考えられる。
【００２０】
一般に、画像は光源と画像平面のピクセルとの間において追跡されるレイを評価するため積分を評価することによりレンダリングされ、レイは各々の光源と画像平面上のピクセルとの間において光子によって取られ得る径路を表す。積分の評価は、本質的には、画像平面の各ピクセルに入射する光子の流れの強さと色に関する情報を与える。一般に、積分は以下の形式である。
【数３】
2005505810.tif 000005
上述のように、式（６）（式（１）に等しい）により表わされる積分は、一般に閉じた形式の解(closed form solutions)をもたず、それらは通常数値的に評価される。式（６）によって表わされる積分は、次のように数値的に評価することができる：
【数４】
2005505810.tif 000006
ここで、総和の中の各項ｆ（ｘi1(1)，・・・，ｘin(n)）は、積分領域内のサンプル点（ｘi1(n)，・・・，ｘin(n)）における関数“ｆ”の評価値(evaluation)である。サンプル点は、幾つもの手法を用いて生成することができる；グラベンスタインの出願(Grabenstein application)は、サンプル点がハルトン列(Halton sequences)などのｓ次元の決定論的低食い違い量列からのサンプルを含む手法について記述し、ケラーの出願(Keller application)は、サンプル点がｓ次元ハマースレイ点群(ハマースレイ点集合：Hammersley point sets)を含む手法について記述する。一般に、それらの次元ｓ1，・・・ｓnは、それぞれ光源と画像平面との間の光子の軌跡に関連付けられている。
【００２１】
問題は特に、面２２から反射され面２３に入射されるレイ２８、２９や、面２３から反射されるレイ３３、３５などのように、いくつものレイが実質的に同じ方向をもつ状況において発生し、それは同じサンプル点が積分を評価するのに用いられる可能性が高く、少なくともそれらのレイに関連する積分の部分が実質的に同じ数値の評価値をもつことによる。これに対処するために、式（２）を式（１）の積分の数値的評価に用いる代わりに、積分は次のように評価できる。
【数５】
2005505810.tif 000007
ここでＳij(j)はクランレイ・パターソンローテーション演算子である。すなわち、ｓ1＋・・・＋ｓn次元サンプル点Ｘij(j)までの相応する高い次元を用いて“１”を法としてシフトする(shifts modulo "one")。ここで各サンプル点Ｘij(j)における初めのｓj座標は、式（６）の中のｘij(j)に対応する。サンプル点Ｘij(j)の座標は、ハルトン(Halton)、スクランブルハルトン(scrambled Halton)、あるいは他のいかなる低食い違い量列から取られても良い。添え字“ｊ”の異なる値に対しては、同一あるいは異なる低食い違い量列が用いられても良い。例えば、もしいくつかの分割された添え字の値が予め既知であれば、スクランブルあるいは非スクランブルハマースレイ点を用いてもよい。同じ次元の同じ低食い違い量列を用いた繰り返しシフトを避けるには、ｓjの値はｊ＝１，・・・，ｎに対して０よりも大きいことが好ましい。一例として、スクランブルハルトン列が用いられた場合、ｓ1＋・・・＋ｓl＜ｄ≦ｓ1＋・・・＋ｓl+1の次元ｄに対するサンプル点は、
【数６】
2005505810.tif 000008
によって与えられ、ここで、各Φb（ｉ，σb）はスクランブル根基逆数(scrambled radical inverse)であり、基数ｂ＝ｂ１，・・・、及び各基数に対する順列(置換：permutations)σ＝σ1，・・・に対して、
【数７】
2005505810.tif 000009
によって定義される。ケラーの出願では、次のように再帰的に定義される一例としての順列σについて説明されている。基数ｂ＝２に対する順列σ2＝（０，１）から始め、順列の列は以下のように定義される。
（ｉ）もし、基数“ｂ”が偶数であれば、順列σbは第１に２σb/2の値を取り、２σb/2＋１の値を付加することにより生成される。そして、
（ｉｉ）もし、基数“ｂ”が奇数であれば、順列σbはσb-1の値を取り、（ｂ−１）／２以上の各値を１インクリメントさせ、ｂ−１の値を真中に挿入することにより生成される。
この再帰的な生成手段は、以下のような順列をもたらす。
σ2＝（０，１）
σ3＝（０，１，２）
σ4＝（０，２，１，３）
σ5＝（０，３，２，１，４）
σ6＝（０，２，４，１，３，５）
σ7＝（０，２，５，３，１，４，６）
σ8＝（０，４，２，６，１，５，３，７）…
したがって、基数“ｂ”での値“ｉ”に対する根基逆数が与えられ、もし根基逆数を表す「ｋ番目」の桁が値“ｊ”を持つならば、スクランブル根基逆数の「ｋ番目」の桁は、上記順列σbでの“ｊ番目”の桁の値に対応する値を持つ。
【００２２】
一般に、レイトレーシングにおける再帰レベルは、トレースデプス(trace depth)を超えず、これは通常、光源と画像平面との間の経路を含むレイの数に関係する。スクランブル、非スクランブルハルトン列及びハマースレイ点群は、極めて高速に生成することができ、これらは、それらがそれ自身極めて高速である根基逆関数(radical inverse function)に基づくためである。かなり深いトレースデプスであっても、サンプル点の座標を生成するコストは、一般に各々のサンプル点に対する関数“ｆ”の数値を生成するコストよりも安く、これは、数値的な評価に加えて、交差判定(intersection test)や、濃度(density)やテクスチャーなどの照合(look-ups)をも含むことができる。
【００２３】
本発明によれば、サンプル点の座標のキャッシングを利用する手法が以下に説明され、レイトレーシングがプロセッサモジュール１１（図１）により提供される複数のプロセッサに渡って分散される分散レイトレーシングにおいてどのようにキャッシュされたサンプリングが用いられるかが説明される。キャッシングの優位性は、ハルトン列の代わりに低食い違い量列を生成するためにより時間が掛かる手法が用いられた場合により明らかとなる。この新しい手法はコードセグメント(code segment)１との関連で説明される。
【００２４】
コードセグメント１
2005505810.tif 000010
2005505810.tif 000011
2005505810.tif 000012
【００２５】
コードセグメント１は２つのクラス、すなわちQMCContextとRayを含む。ライン（１）から（１３）を含む１つのクラス、クラスQMCContextは、２つのメソッドを提供する。すなわち、メソッドget_sampleとメソッドsetup_child_contextである。ライン（８）から（１７）を含むメソッドget_sampleは、式（８）で用いられるサンプル点を提供する。各コンテキストレベルは、本質的にレイツリー（図２参照）でのレベルと関係する。メソッドget_sampleは、再帰的(recursively)に作用される。初め、ライン（１０）では再帰レベルがルートであるか否かが判定され、これは親がいない場合に当たる。もし、親レベルが存在するならば、メソッドget_sampleは、キャッシュがサンプル点をもつか否かを判定するために再帰において親レベルのために保持されるキャッシュをチェックする（ライン１１）。もし、キャッシュがサンプル点をもつならば、それはそのサンプル点を用い、ライン（１６）において現在(current)の再帰レベルのためにサンプル点をアップデートし、以下において説明されるクラスRayにおけるメソッドにアップデートされたサンプル点を与える。一方、もしキャッシュがサンプル点をもたなかったならば、メソッドget_sampleは、ライン（１４）において、親の親レベルからサンプル点を生成し、ライン（１５）において親のキャッシュにサンプル点を加える。その後、ライン（１６）では、メソッドget_sampleがライン（１４）において生成されたサンプル点をライン（１６）における現在の再帰レベルのためにアップデートし、クラスRayにおけるメソッドにアップデートされたサンプル点を与える。最後に、もし、ライン（１０）において、親が存在しない（再帰レベルがルートレベルである場合）と判定されると、メソッドget_sampleは、ライン（１６）においてサンプル点を生成し、クラスRayにおけるメソッドにこのサンプル点を与える。
【００２６】
クラスQMCContextのライン（１８）から（２３）を含むメソッドsetup_child_contextは、次の低いレベルのために（もし存在すれば）クラスQMCContextにより与えられるメソッドを初期化する。
【００２７】
ライン（２４）から（３６）を含むクラスRayは、クラスQMCContextにより提供されるメソッドを初期化し、更にメソッドShadeを含む。ライン（２７）から（３６）を含み、特定のレイに対する式（８）を評価するために用いられるメソッドShadeは、クラスQMCContextにある両方のメソッドを呼び出す。メソッドShadeは、ライン（３２）において、式（８）との関連で用いられるサンプルを生成するためにライン（３３）で用いられるサンプル点を与えるため、クラスQMCContextのメソッドget_sampleを呼び出す。ライン（３４）において、メソッドShadeは、次のコンテキストレベル（もし存在すれば）のためのクラスQMCContextを用意するためにクラスQMCContextにおけるメソッドsetup_child_contextを呼び出す。
【００２８】
本発明は、画素値を表わす積分を数値的に評価するためのサンプル点を与えるために決定論的な低食い違い量列と、クランレイ・パターソンローテーションなどのリカーシブルローテーションを用いてレンダリングされた画像における画素の画素値を生成する新奇で改良されたコンピュータグラフィックスシステムを提供する。
【００２９】
本発明は、リカーシブなクランレイ・パターソンローテーションとの関連において説明されたが、他の形式のローテーションが用いられてもよい。
【００３０】
本発明に基づくシステムは、特定の目的のためのハードウェアや汎用目的のコンピュータシステムから全体又は一部分が構成されてもよく、これらのいかなる組み合せ、あるいは適切なプログラムにより制御されるこれらのどのような構成部分であってもよい。いかなるプログラムも、システムの全体又は一部分であってもよく、あるいは従来の方法でこのシステムに保存されていてもよく、またそれは全体あるいは一部分が、ネットワークあるいは従来の方法により情報を転送する他の仕組み(mechanism)を介してシステムの中に提供されていてもよい。更に、このシステムは操作され、かつ／または、さもなければオペレータ入力部（不図示）を用いてオペレータにより与えられた情報を利用して制御される。オペレータ入力部は、システムに直接接続されるかもしれないし、ネットワークあるいは従来の方法により情報を転送する他の仕組みを介してシステムに情報を転送してもよい。
【００３１】
これまでの説明は、この発明の特定の実施形態に限られている。しかし、本発明のいくつかの、あるいは全ての優位性を達成したまま様々な変形と変更を本発明に対して行ない得る。本発明の真の精神と範囲内において、これらとそのような他の変形及び変更をカバーすることが添付された請求項の目的である。
【図面の簡単な説明】
【００３２】
【図１】本発明にしたがって構成された例示的なコンピュータグラフィックスシステムを示す。
【図２】本発明を理解するのに役立つ例示的なレイの追跡を示す。
【図１】
2005505810.tif 000013
【図２】
2005505810.tif 000014
【国際公開パンフレット】
2005505810.tif 000015
2005505810.tif 000016
2005505810.tif 000017
2005505810.tif 000018
2005505810.tif 000019
2005505810.tif 000020
2005505810.tif 000021
2005505810.tif 000022
2005505810.tif 000023
2005505810.tif 000024
2005505810.tif 000025
2005505810.tif 000026
2005505810.tif 000027
2005505810.tif 000028
2005505810.tif 000029
2005505810.tif 000030
2005505810.tif 000031
2005505810.tif 000032
2005505810.tif 000033
【国際調査報告】
2005505810.tif 000034
2005505810.tif 000035