(57)【要約】本発明は３次元世界を２次元表示するための方法及び装置に関し、レイトレーシングにおいて光線がパケットにまとめられ、光線のこのパケットが適当なステップにおいて処理される。
2005536813.tif 000002
【特許請求の範囲】
【請求項１】
３次元世界の２次元写像の決定のための方法であって、
２次元写像は少なくとも幾何学的な記述、３次元世界の空間的分割のためのツリー構造及びこの世界の全てのオブジェクトのマテリアル特性によって明細に指定されている、３次元世界の２次元写像の決定のための方法において、
レイトレーシング方法が使用され、複数の光線が離散光線のパケットにまとめられ、データ構造の離散光線の各パケットとの関連付けが実施され、各光線へのデータ構造の状態に適した割り当てが格納され、パケットに割り当てられたデータ構造において状態に適した割り当てが格納されている場合にはパケットに対して操作を実行する作業ステップにおいてこの操作がパケットの各光線に実施されることによって、以下に記述される複数の離散光線のこのパケット乃至はこれらのパケット全てが使用され、当該光線はこの操作に関与し、光線の個々のパケットに対して次々と処理される以下のような作業ステップにレイトレーシング方法が区分けされ、これらの作業ステップとはすなわち、
Ａ  カメラ光線発生：光線のパケットが発生され、これらの光線はヴァーチャルなカメラから出発して３次元世界のジオメトリと交差され、
Ｂ  ツリー縦断：光線の空間的配向に相応して３次元世界のジオメトリに対するツリーデータ構造が葉又はプレイスホルダに到達するまでたどられ、この途中でツリーノード及びプレイスホルダがメモリから読み出され、計算が実施され、プレイスホルダに到達した場合には、このプレイスホルダがオブジェクトによって代替されることよって代替オブジェクトの相応の指示シーケンスが行われ、このオブジェクトは複雑でもよく、プレイスホルダの存在する場合には２つの選択肢が使用でき、すなわち、
・まず最初に指示シーケンスが完全に実行され、次いでツリーの新しい構造に相応して前記方法が継続されるか、又は、
・指示シーケンスが非同期で実行され、前記方法が直接プレイスホルダの代理によって継続され、代替オブジェクトの指示シーケンスが完全に処理された場合にこの処理の結果によって代替され、
Ｃ  葉の読み込み：メモリからこの葉の中に存在するオブジェクト及びプレイスホルダの全てのリファレンスが読み込まれ、場合によっては実行され、
Ｄ  全てのオブジェクトとの交差：作業ステップＣで明細に指定された全てのオブジェクトが読み込まれ、光線のパケットと交差され、変換がオブジェクトに対して明細に指定されている場合にはこのオブジェクトとの交差の計算の前にこの変換が適用され、ジオメトリ変更指示シーケンスがオブジェクトに対して明細に指定されている場合にはこのオブジェクトとの交差の計算の前にジオメトリ変更指示シーケンスが適用され、交差されるべきオブジェクトが縦断されなければならない独自のツリー構造を有する複雑なオブジェクトである場合には作業ステップＢ〜Ｆがこの複雑なオブジェクトに適応されて実行されることによってこの交差されるべきオブジェクトと交差され、
Ｅ  交差評価：光線のパケットに対して有効な交点が存在するかどうかが検査され、まだ十分な量の有効な交点がもとめられなかった場合には、以前の結果を使用して作業ステップＢを継続することによって光線交差において問題となるツリーのまだ検査されていないエレメントに対して可能な光線交差がもとめられ、十分な量の光線交差がもとめられた場合にはステップＦの実行に移り、
Ｆ  オブジェクト特性の決定：前の作業ステップの結果の評価において、有効な交点がある場合にはこれらの有効な交点を計算するために使用したオブジェクトのデータがメモリから読み出され、計算の結果がステップＧに流れ込み、相応の結果において値がメモリに新たに計算され、光線と交差した１つ又は複数のオブジェクトに対してマテリアル変更指示シーケンスが明細に指定されており、このオブジェクトのマテリアル特性が作業ステップＦ又はＧにおいて重要である場合には、これらの指示シーケンスが作業ステップＦの計算の前に実行され、
Ｇ  後続光線発生：ステップＦにおいて１つ又は複数の更なる光線が３次元世界のジオメトリと交差されなければならないことが計算されたならば、このステップにおいて光線の相応のパケットがもとめられ、前記方法の経過が作業ステップＢにおいて改めて開始され、さもなければ、２次元写像の形成のためにさらに別のカメラ光線が発生されなければならない場合には再びステップＡから開始される
ことを特徴とする、３次元世界の２次元写像の決定のための方法。
【請求項２】
作業ステップＧで発生される光線は更に別の作業ステップによって新たなパケットにまとめられ、全ての新しく発生された光線が集められ、ソートされ、離散光線の新しいパケットに統合されることを特徴とする、請求項１記載の方法。
【請求項３】
それぞれ光線のパケットがスレッドとして見なされることによって、マルチスレッディング方法が使用されることを特徴とする、請求項１又は２記載の方法。
【請求項４】
３次元世界のデータの量は、１つの時点にこれらのデータのうちの一部分だけがメモリに保持されるように管理されることを特徴とする請求項１〜３のうちの１項記載の方法。
【請求項５】
個々の作業ステップは独立した機能グループによって表されることを特徴とする、請求項１〜４のうちの１項記載の方法を実施するための装置。
【請求項６】
以下のような作業ステップが機能グループにまとめられる、すなわち、
・ＲＧＳ：作業ステップＡ，Ｆ及びＧのための複数の機能ユニットを含み、これらをサブユニットのマネジメントのためのユニットの分だけ拡張する、
マスタ：スレーブ機能ユニットの作業を調整する、
スレーブ：作業ステップＡ，Ｆ及びＧのためのユニットを含む、
ＭｅｍＩｎｔ：外部メモリへのスレーブユニットのアクセスを調整する、
・ＲＴＣ：作業ステップＢ、Ｃ、Ｄ及びＥのための複数の機能ユニットを含む、
トラヴァーサル：作業ステップＢ及びＥを含む機能ユニット、
リスト：作業ステップＣのための機能ユニット、
インターセクション：作業ステップＤのための機能ユニット、
・ＲＴＣ−ＭＩ：外部メモリユニットへのＲＴＣユニットの全てのアクセスを調整及び制御する、
Ｔ−ＳＲ：Ｔキャッシュへのトラヴァーサルユニットのアクセスを調整する、
Ｔキャッシュ：前のトラヴァーサルアクセスに関して記録をつくり、前の結果を再利用することによって、新たなアクセスを回避しようとする、
Ｌ−ＳＲ：Ｌキャッシュへのリストユニットのアクセスを調整する、
Ｌキャッシュ：リストアクセスにおけるＴキャッシュと類似のもの、
Ｉ−ＳＲ：Ｉキャッシュへのインターセクションユニットのアクセスを調整する、
Ｉキャッシュ：インターセクションアクセスにおけるＴキャッシュと類似のもの、
Ｍ−ＳＲ：外部メモリへのキャッシュユニットのアクセスを調整する、
ＭｅｍＣｔｒｌ：アクセス権限のある外部メモリへのアクセスを転送する
ことを特徴とする請求項１〜４のうちの１項記載の方法を実施するための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
このような方法及びこのような装置は３次元世界の２次元像の発生のための方法及び装置に関する。本発明はとりわけ専門家の世界で「レイトレーシング」と日常的に呼ばれている光線追跡の方法によって画像を発生することに関する。
【０００２】
コンピュータ技術では、３次元物体、構成部分、機器、ハウス、さらには世界までが幾何学的な記述によって明細に指定される。これらの記述は純粋なジオメトリの他に大抵の場合マテリアル及び光源に関する情報も含む。幾何学的記述との関連において最も頻繁に行われる適用事例のうちの一つはこのような３次元記述の２次元像の発生である。この場合、次のような問題が明らかになる。すなわち、
「このヴァーチャルな３次元世界にヴァーチャルなカメラを設置し、この世界が写真撮影される場合に、この写真はどう見えるのか？」
この問題の解決のためには多数の方法が既に公知である。最も公知の方法のうちの一つは光線追跡方法（英語ではレイトレーシング Ray Tracing）である。これは発明者の知識によれば最初１９６８年にArthur Appel: " Some Techniques for Shading Maschine Renderings of Solids", Proceedings of "AFIPS 1968 Spring Joint Computer Conference", Volume 32, Page 37-45によって発表され、それ以来多数の研究者によって発展してきた。
【０００３】
レイトレーシングというテーマに対する十分な叙述は、例えばAndrew S. Glassner(Editor): " An Introduction to Ray Tracing ", Academic Press, ISBN 0-12-286160-4 に見いだされる。更に別の説明は図１との関連において図面の記述において行う。
【０００４】
本発明の課題は、３次元世界の２次元写像の発生を簡単にするための方法ならびにこの方法を実施するための装置を提案することである。この場合、コンピュータのリソースは従来の公知の方法よりも効率的に利用されなければならない。
【０００５】
理解しやすくするために、この特許出願との関連において以下の定義を説明しておく。ヴァーチャルな３次元世界の幾何学的記述は少なくとも次のような構成部分を含む：
・１つ又は複数のオブジェクト、この又はこれらのオブジェクトのジオメトリは様々なやり方で明細に指定することができる
１．例えば三角形、球体又は平行６面体のような単純な幾何学的基本物体
２．数学的関数（例えば統合又は共通分（intersection））により合成される基本          物体
３．数学的関数により記述される物体、例えばスプライン面
４．データセットによって記述される物体、例えば核スピントモグラフからのデー          タ
・例えば、「オブジェクトは青い」、「オブジェクトはガラス製である」、「オブジェクトは鏡面を有する」のようなオブジェクトのマテリアル特性の記述。この場合、マテリアル特性の記述は数値パラメータ又は定義された計算ルールによっても行われる。
【０００６】
・ヴァーチャル世界のオブジェクトをその空間的位置に応じて分類するために使用されるツリー状データ構造。この場合ツリー構造も非循環有向グラフもツリー状データ構造と呼ばれる。
【０００７】
複雑なオブジェクトは、この場合、この複雑なオブジェクトを空間的に分割するか又は例えばより単純な部分オブジェクトに空間的に又は論理的に分割するツリー状データ構造も有しうる。この特許出願の文脈では、以下において、単純な基本オブジェクトと例えば合成された複雑なオブジェクト又はツリー状構造を有する複雑なオブジェクトのような複雑なオブジェクトとを区別しない。両方とも「オブジェクト」と呼ぶ。
【０００８】
上述の特性に加えて、オブジェクトは変換も有しうる。この変換は例えば変換マトリクスによって３次元世界における相応のオブジェクトのアフィン変換を記述し、これによってオブジェクトの座標を変更することができる。
【０００９】
これらの変換には無関係に、オブジェクトに対してはさらに指示シーケンスも明細に指定される。この指示シーケンスはオブジェクトの特性を変化させる。これには幾何学的特性（球体の場合には例えばその半径）及びマテリアル特性（例えばその色）も含まれる。
【００１０】
さらに、ヴァーチャルな世界における照明状況も明細に指定されうる。
【００１１】
ツリー状データ構造は以下のコンポーネントから構成されている：
・ツリーノード：ツリーにおける各ノードは３次元空間における軸平行な分岐レベルの位置を記述する。
【００１２】
・葉：ツリーの各々の葉は空間ボリュームの内容を記述する。空間ボリュームはこの場合１つ又は複数のオブジェクトを含むか又は空である。
【００１３】
・プレイスホルダ：プレイスホルダはツリーノード、葉又はオブジェクトの代わりに存在しうる。プレイスホルダは２つの部分から成る：オブジェクトを含む代理及び代替オブジェクトである。代替オブジェクトは一連の指示によって明細に指定され、しかし付加的にオブジェクト及びツリー状構造ならびに更なるプレイスホルダをも含みうる。指示が実行されると、この場合新しいツリーノード、葉、辺、オブジェクト及びプレイスホルダが生じ、これらは指示の完全な実施の後で代理を代替する。
【００１４】
・辺：これらの辺はコンポーネントの間の結合を表す。
【００１５】
このようなツリー状データ構造はコンピュータ技術では公知であるが、そこでは単にツリーノード、葉及び辺からのみ構成される。以下の本発明はこの場合それ自体はＢＳＰツリーに類似したＫＤツリーである。とりわけレイトレーシング方法との関連でのプレイスホルダによる拡張が本発明の枠内で行われる。同様に本発明の構成部分はオブジェクトの定義の組み合わせである。あらゆる可能な特性を同じようにサポートし統一する全体として、この定義は新しい。
【００１６】
定義はより理解しやすいようにさらに図３との関連において説明する。
【００１７】
上記課題は本発明によれば請求項１によって解決され、請求項１によればレイトレーシング方法が使用される。このレイトレーシング方法は、その実施において世界の幾何学的記述の少なくとも一部分が光線と交差され、光線と世界のオブジェクトの交点から２次元写像が合成されることを意味する。さらに、複数の光線が離散光線のパケットにまとめられる。この場合、次に離散光線の各パケットとデータ構造との関連付けが行われる。このデータ構造において各光線への状態に適した割り当てが格納される。この状態は、少なくとも、当該光線がこの時点にパケットに適用される操作に関与するかどうかを示す。さらに複数の離散光線のパケットへの本発明の方法の全ての作業ステップの適用が行われる。この場合、データ構造への光線の格納された状態に適した割り当てから当該光線が操作に関与することが判明する場合には、パケットに操作を実行する作業ステップにおいてこの操作がパケットの各光線に対して実行される。この場合、レイトレーシング方法の区分けが、光線のパケットに対してそれぞれ順次処理される以下の作業ステップにおいて行われる。これらの作業ステップとはすなわち、
Ａ  カメラ光線発生：光線のパケットが発生され、これらの光線はヴァーチャルなカメラから出発して３次元世界のジオメトリと交差される。
Ｂ  ツリー縦断：光線の空間的配向に応じて３次元世界のジオメトリに対するツリーデータ構造が葉又はプレイスホルダに到達するまでたどられる。このためにツリーノード及びプレイスホルダがメモリから読み出され、計算が実施される。プレイスホルダに到達した場合には、代替オブジェクトの相応の指示シーケンスが実行される。この場合、プレイスホルダはオブジェクトによって代替される。このオブジェクトは複雑でもよい。この場合には２つの選択肢が使用できる。まず最初に指示シーケンスが完全に実行され、次いでツリーの新しい構造に相応して本発明の方法が継続されるか、又は、指示シーケンスが非同期で実行され、本発明の方法が直接プレイスホルダの代理によって継続され、代替オブジェクトの指示シーケンスが完全に処理された場合にこの処理の結果によって代替される。
【００１８】
Ｃ  葉の読み込み：メモリからこの葉の中に存在するオブジェクト及びプレイスホルダの全てのリファレンスが読み込まれる。この場合、プレイスホルダが読み込まれると、相応の指示シーケンスが実行される。
【００１９】
Ｄ  全てのオブジェクトとの交差：作業ステップＣで明細に指定された全てのオブジェクトが読み込まれ、光線のパケットと交差される。オブジェクトに対して変換が明細に指定されている場合にはオブジェクトとの交差が計算される前にこの変換が適用される。オブジェクトに対してジオメトリ変更指示シーケンスが明細に指定されている場合にはオブジェクトとの交差が計算される前にこのジオメトリ変更指示シーケンスが実行される。交差されるべきオブジェクトが縦断されなければならない独自のツリー構造を有する複雑なオブジェクトである場合には、作業ステップＢ〜Ｆがこの複雑なオブジェクトに適応されて実行されることによってこのオブジェクトが交差される。
【００２０】
Ｅ  交差評価：光線のパケットに対して有効な交点が存在するかどうかを評価する。光線交差において問題となるまだ検査されていないツリーのエレメントがまだ存在し、かつ、前の作業ステップが十分な量の有効な交点をもたらさなかった場合には、以前の結果を含めて改めて作業ステップＢを開始し、さもなければ、ステップＦを続行する。この場合、場合によってはパケットの状態が変化される。
【００２１】
Ｆ  オブジェクト特性の決定：前の作業ステップの結果が評価される。この場合、オブジェクトが複数の光線のうちの１つの光線との有効な交点を有する場合にはこれらのオブジェクトのデータがメモリから読み出される。計算の結果がステップＧに流れ込み、相応の結果において値がメモリに新たに計算される。光線と交差した複数のオブジェクトのうちの１つのオブジェクトに対してマテリアル変更指示シーケンスが明細に指定されており、このオブジェクトのマテリアル特性が作業ステップＦ又はＧにおいて重要であるならば、この指示シーケンスが作業ステップＦの計算の前に実行される。
【００２２】
Ｇ  後続光線発生：ステップＦにおいて１つ又は複数の更なる光線が３次元世界のジオメトリと交差されなければならないことが計算される場合、このステップにおいて光線の相応のパケットが計算され、本発明の方法がこれらの光線に対して作業ステップＢにおいて改めて開始される。さもなければ、２次元写像の形成のためにさらに別のカメラ光線が発生されなければならない場合には再びステップＡから開始される。
【００２３】
これによって、ヴァーチャルな３次元世界の２次元写像の形成のための方法が記述される。この場合、３次元世界は上記の定義によって明細に指定されている。本発明のこの方法は不必要な計算を行うことなしにデータ低減のための新しい技術によって際立っている。この技術では、既にIngo Wald, Carsten Benthin, Markus Wagner, Phillipp Slusallek: "Interactive Rendering with Coherent Ray-Tracing", Computer Graphics Forum/Proceedings of the EUROGRAPHICS 2001, Manchester, United Kingdom, September3-7, 2001,
http://graphics.cs.uni-
sb.de/Publications/2001/InteractiveRenderingWithCoherentRayTracing.pdf に記述されているように、個々の光線が光線のパケットにまとめられる。
【００２４】
上記の刊行物に記述された方法に対する新しい本発明の拡張は、データ構造をこれらのパケットの各々と関連付けることによって構成される。このデータ構造はこの場合パケットの各光線の状態を含む。さらに、レイトレーシング方法の個々の作業ステップが、この新しい技術を最適にサポートし同時にとりわけ機器技術的に置き換えられることに適するように区分けされる。
【００２５】
明確に説明するために、図３の関連において以下の実施形態を参照してもらいたい。この図３では光線Ｒ１及びＲ２が１つのパケットにまとめられる場合にどのように計算が経過するかが説明される。
【００２６】
本発明の方法の処理においては構造化された経過を実現するためにパケットを精確に作業ステップに割り当てる可能性が提示される。
【００２７】
パケットを複数の作業ステップに同時に割り当て、これによってより良好なデータ処理装置の利用を実現することもできる。例えば、既にステップＥにおいて有効な交点が計算された光線の処理がステップＦによって継続され、他方で別の光線に対してステップＢによる計算が続行される。その後、このパケットの全ての光線がステップＦでの計算を実行し終わるやいなや、このパケットは再び一括してステップＧの処理を継続する。
【００２８】
請求項２記載の方法の実施形態では、作業ステップＧで発生される光線は更に別の作業ステップによって新たなパケットにまとめられる。この場合、全ての新しく発生された光線が集められ、ソートされ、離散光線の新しいパケットに統合される。
【００２９】
この場合、新しいパケットはちょうど直ぐ前の光線パケットの計算結果に基づいて発生された光線だけを無条件に含むのではない。むしろ収集及びソートの作業ステップは論理的に関連している複数の以前の光線パケットからの新しく発生された光線を新しいパケットに結合することができる。
【００３０】
請求項１との関連において、とりわけ図３の実施形態においても、パケットの縦断におけるデータ低減の効果がどのような結果をもたらすのか及びこれによってステップＣ（葉の読み込み）、Ｄ（全オブジェクトとの交差）及びＥ（交差評価）に対するデータ低減が結果的に生じることが記述された。この効果は、パケットが不利に光線から統合される場合には発生しない。
【００３１】
例えば光線Ｒ１がツリーコンポーネント｛Ｎ１、Ｎ２、Ｖ１｝を訪問し、光線Ｒ２がツリーコンポーネント｛Ｎ３、Ｖ２｝を訪問する場合、パケットの縦断によって個々の光線の縦断に比べてデータ低減は達成されない。
【００３２】
請求項２は、ここでは有利には請求項１に記述された方法を拡張し、パケットの縦断において個々の光線の縦断に比べてデータ低減が達成されるように新たに発生される光線をパケットにまとめる作業ステップを記述する。
【００３３】
請求項３記載の方法の実施形態では、マルチスレッディング方法が使用され、それぞれ光線のパケットがスレッドとして見なされる。
【００３４】
マルチスレッディング方法は作業ステップ内で使用され、この結果、機能ユニットが別の機能ユニットの結果を待っている間にこの機能ユニットに有意義な作業を行わせることができる。この場合、各作業ステップは、作業ステップの機能ユニットが交互に処理するパケットのストックを保持している。
【００３５】
いくつかの作業ステップではデータがメモリからロードされる。通常はメモリからのデータのロードはいくらかの時間単位はかかる。計算を実行する前にロードすべきデータを待たなくてはならないので、この待機時間は有意義な計算を実行することなしに過ぎ去ってしまう。１つの作業ステップに複数のパケットが同時に割り当てられている場合、計算の経過は以下の通りである。
【００３６】
パケット１に対してどのデータがメモリからロードされるべきかが計算される。その後で、パケット１に対してデータがメモリからロードされ、同時にパケット２に対してどのデータがパケット２のためにメモリからロードされるべきかが計算される。次いでパケット１に対するメモリからのデータがロードされたら、パケット１に対する計算が実行される。同時にパケット２に対して相応のデータがメモリからロードされ、さらにパケット３に対してどのデータをパケット３はメモリからロードするのかが計算される、等々。
【００３７】
よって、有利には上記の方法との関連において１つのパケットが１つのスレッドとして分類される。
【００３８】
請求項４によれば、本発明の方法では、３次元世界のデータの量は、１つの時点にこれらのデータのうちの一部分だけがメモリに保持されるように管理される。
【００３９】
この場合、有利には、常にオブジェクト全体乃至は部分オブジェクト全体のデータがメモリにロードされ乃至はメモリから除去され、この結果、新たに必要とされる（部分）オブジェクトのためのスペースが作り出される。この場合、本発明の方法は、このために独立した作業ステップが実現されるように構成され、この作業ステップではどの（部分）オブジェクトにいつ及び何回アクセスしたかが記録される。さらに、この作業ステップにおいては自律的にメモリを管理するためにかつ必要ならば３次元世界の新しい部分をメモリにロード及びメモリから除去するために収集された情報が使用される。
【００４０】
すなわち、ヴァーチャル世界は多数のオブジェクトから構成されうる。この場合、ヴァーチャル世界の記述は多くのデータを有し、これらのデータは非常に多くのメモリを必要とする。例えば、データ処理装置において異なるサイズ及び速度の複数のメモリが存在する。大きなメモリは大抵の場合比較的小さいメモリよりもはるかに遅いが、本発明の方法の処理のために必要とされる時間に対するメモリの速度は重要な意味を持つので、本発明の方法にとって重要な全てのデータを高速メモリに保持することが望ましい。
【００４１】
従って、請求項４記載の方法によって、異なるメモリのマネジメントがオーガナイズされ、これによってできるだけ常に全ての瞬時に必要とされるデータが高速メモリに保存されることが実現される。このために本発明の方法はどのオブジェクト又は部分オブジェクトがいつ及び何回読み出されたかを記録し、必要ならば新しい（部分）オブジェクトを遅いメモリから速いメモリへとロードする。高速メモリが満杯の場合には、本発明の方法は記録に基づいてもはや必要ではない（部分）オブジェクトを見つけだし、必要なデータのためのスペースを作り出すために高速メモリから消去する。この場合、重要なことは、請求項１、２又は３のうちの１項記載の本発明の方法はただ読み出しにおいてのみヴァーチャル世界のデータにアクセスし、これによってデータが高速メモリにおいて変更されるというケースが決して発生せず、これらのデータが消去される前に遅いメモリに再書き込みされなければならないことである。
【００４２】
この場合、新たに必要とされるデータのためのスペースを作り出すために、常にデータの複数のブロックがメモリにロード乃至はメモリから除去されるようにデータ及びメモリ管理をオーガナイズすることも可能である。この場合でも、独立した作業ステップが実現され、この作業ステップにおいてどのブロックがいつ及び何回アクセスされたかが記録される。さらに、この作業ステップにおいて、自律的にメモリを管理しかつ必要ならば３次元世界の新たな部分をメモリにロード及びメモリから除去するために、収集された情報が使用されうる。
【００４３】
この代替案では、前に請求項４との関連において説明した変形実施形態とは以下の点で相違点が存在する。すなわち、オブジェクト全体又は部分オブジェクト全体が遅いメモリから読み出されるか又は高速メモリにおいて消去されるのではなく、ヴァーチャル世界のデータがブロックに分割されてこれらのブロックが必要に応じて高速メモリに読み込まれるか又はそこから消去されるのである。とりわけこの分割によって１つのオブジェクトが複数のブロックに分割されうる。この場合の利点は、一定のサイズのブロックにおいて常に同じ個数のデータエレメントがメモリから読み出されるか又は消去されることである。請求項４記載の方法では、読み出される又は消去されるデータエレメントの個数は非常に大きくそれぞれのオブジェクトによって変化する。
【００４４】
請求項５は上記方法のうちの１つを実施するための装置に関し、個々の作業ステップは独立した機能グループによって表される。
【００４５】
すなわち、これらの機能グループは有利には閉じたユニットを形成し、これらの閉じたユニットは、更に別の同様なユニットがシステムに付加され、これによってシステムの性能の向上が達成されるようなマネジメント機能によって拡張される。
【００４６】
この場合、機能グループは付加的にマネジメントのための機能を付与され、この結果、複数の同様な機能グループが１つの機器において統一され、これによってこの機器のパフォーマンスが向上する。同様な機能グループを付加することによって機器のパフォーマンスの向上が実現されるようにするために、必要な計算ステップが一様に全ての使用可能なユニットに分配されるようにこれらの機能グループは適切に配置されなければならない。
【００４７】
この他に、機能グループは付加的にパイプライン処理（pipelining）方法を使用することができ、このパイプライン処理方法では同時に複数のパケットがこの方法に存在する。このパイプライン処理方法において個々のパケットが順次計算されるのではなく、複数のパケットが同時に方法経過に及び異なる作業ステップに存在しうる。例えば、パケット１が作業ステップＡにおいて発生される。その後でパケット１に対する計算が作業ステップＢにおいて実行される間に、ステップＡにおいてパケット２が発生される。パケット１の計算がステップＢで完了すると、パケット１は作業ステップＣに到達し、パケット２はステップＢで処理され、他方でステップＡにおいてパケット３が発生される、等々。
【００４８】
パイプライン処理方法は直接的にマルチスレッディング方法との結合においても使用されうる。この場合、交互に作業ステップによって処理される大量のスレッドを各作業ステップは受け取る。１つの作業ステップにおいて１つのスレッドの処理が終了した後で、このスレッドが次の作業ステップに転送され、次いでこの作業ステップがこのスレッドをこの作業ステップに既に割り当てられていたスレッドと一緒に順次実行する。これら２つの方法は共に機器の機能ユニットの非常に高い利用を可能にする。
【００４９】
請求項６は上記の方法のうちの１つを実施するための装置に関し、個々の作業ステップが以下のように機能グループにまとめられる、すなわち、
・ＲＧＳ：作業ステップＡ，Ｆ及びＧのための複数の機能ユニットを含み、これらをサブユニットのマネジメントのためのユニットの分だけ拡張する、
マスタ：スレーブ機能ユニットの作業を調整する、
スレーブ：作業ステップＡ，Ｆ及びＧのためのユニットを含む、
ＭｅｍＩｎｔ：外部メモリへのスレーブユニットのアクセスを調整する、
・ＲＴＣ：作業ステップＢ、Ｃ、Ｄ及びＥのための複数の機能ユニットを含む、
トラヴァーサル（traversal）：作業ステップＢ及びＥを含む機能ユニット、
リスト：作業ステップＣのための機能ユニット、
インターセクション：作業ステップＤのための機能ユニット、
・ＲＴＣ−ＭＩ：外部メモリユニットへのＲＴＣユニットの全てのアクセスを調整及び制御する、
Ｔ−ＳＲ：Ｔキャッシュへのトラヴァーサルユニットのアクセスを調整する、
Ｔキャッシュ：前のトラヴァーサルアクセスに関して記録をつくり、前の結果を再利用することによって、新たなアクセスを回避しようとする、
Ｌ−ＳＲ：Ｌキャッシュへのリストユニットのアクセスを調整する、
Ｌキャッシュ：リストアクセスにおけるＴキャッシュと類似のもの、
Ｉ−ＳＲ：Ｉキャッシュへのインターセクションユニットのアクセスを調整する、
Ｉキャッシュ：インターセクションアクセスにおけるＴキャッシュと類似のもの、
Ｍ−ＳＲ：外部メモリへのキャッシュユニットのアクセスを調整する、
ＭｅｍＣｔｒｌ：アクセス権限のある外部メモリへのアクセスを転送する。
【００５０】
これらの機能グループは図７に図示されている。
【００５１】
この場合、有利には、機能グループスレーブ、トラヴァーサル及びインターセクションは複数のサブユニットを含むように構成されており、これらの複数のサブユニットは同時に計算を実施し、この場合、自律的にパケットのストックを保持し、これらのパケットにマルチスレッディング方法を適用する。
【００５２】
機能グループは、更に別の同様のグループの付加によって機器のパフォーマンスが向上されるように構成されている。常に（トラヴァーサル、リスト及びインターセクション機能ユニットから成る）ＲＴＣ機能グループと同数のスレーブ機能ユニットが使用される。機能ユニットＴ−ＳＲ、Ｌ−ＳＲ及びＩ−ＳＲは、これらの機能ユニットが全てのＲＴＣ機能グループとメモリとの間のコネクションを形成することができるように構成されている。
【００５３】
機能ユニットマスタは機器の最上位コントロールエンティティである。マスタは入力としてヴァーチャルカメラに対するパラメータ（図ではＵＩで示されている）を受け取り、これに基づいて１つ又は複数のスレーブユニットにパケットの記述を与える。スレーブユニットはこれらの記述によってカメラ光線発生を実施し、計算されたパケットを関連付けられたＲＴＣユニットに送る。
【００５４】
スレーブユニットは応答として（数時刻後に）光線・オブジェクト交差のデータを受け取り、次いで作業ステップＦ及びＧにおける計算を実施する。後続光線が計算される場合には、これらはまた関連付けられたＲＴＣユニットに送信される。スレーブユニットはその計算においてデータをメモリから読み出し、場合によっては再書き込みしなければならない。全てのスレーブユニットのメモリアクセスはＭｅｍＩｎｔユニットによって調整され、このＭｅｍＩｎｔユニットは１つ又は複数のメモリモジュール（図ではＲＡＭと記されている）と接続されている。
【００５５】
作業ステップＦにおいて画素又はオブジェクト値が計算されると、スレーブユニットはＭｅｍＩｎｔユニットによって固有メモリ（図ではＦＢと記されている）に書き込み、この固有メモリからこのＭｅｍＩｎｔユニットはデータを再び読み出すことができる。この固有メモリは付加的に計算された２次元写像をディスプレイするためにモニタに接続された機能グループと接続されうる。
【００５６】
ＲＴＣ機能グループは作業ステップツリー縦断、葉の読み込み、全オブジェクトとの交差及び交差評価を置換する。ＲＴＣグループのユニットがデータをメモリからロードしようとする場合には、このユニットは相応の問い合わせをそれに割り当てられたユニット、すなわちＴ−ＳＲ、Ｌ−ＳＲ及びＩ−ＳＲユニットに送る。
【００５７】
全てのＲＴＣグループからの全てのメモリ問い合わせはユニットＴキャッシュ、Ｌキャッシュ及びＩキャッシュに集まる。これらのユニットはデータ構造を有し、このデータ構造においてそれ以前のメモリ問い合わせのデータが書き留められる。既にメモリからの応答が書き留められている問い合わせが送られてくると、この問い合わせはこのデータ構造からのデータによって応答される。この場合、有利には、全ての問い合わせはメモリからデータだけを読もうとする。これによって、データ構造の内容は必要ならばこのデータ構造をメモリに再書き込みする必要なしに簡単に棄却される。これは新しい画像に対する計算が開始され、この際オブジェクトが変更された場合にとりわけ有利である。この場合、信号がユニットＴキャッシュ、Ｌキャッシュ及びＩキャッシュに送信され、このユニットＴキャッシュ、Ｌキャッシュ及びＩキャッシュがそのデータ構造の内容を棄却し、この結果、新しい問い合わせにおいて瞬時のオブジェクトがメモリから読み出される。データ構造に書き留められていた（古い）オブジェクトが誤って新しい計算に入り込むことはない。
【００５８】
機能ユニットＭ−ＳＲはＴキャッシュ、Ｌキャッシュ及びＩキャッシュからの全ての問い合わせをユニットＭｅｍＣｔｒｌに転送する。ＭｅｍＣｔｒｌは直接１つ又は複数のメモリモジュール（図ではＲＡＭ）に接続されている機能グループである。この場合、機能グループＭｅｍＣｔｒｌは、メモリモジュールへのアクセスの際に生じる場合によってはありうる待機時間を回避するための複数のメカニズムを含んでいる。これらのメカニズムには次のものが数えられる。すなわち、問い合わせを一様に全てのメモリモジュールに分配するためのアドレスのハッシュ及び問い合わせのソートし直しである。この結果、メモリモジュールの内部構造に起因する待機時間が回避される。
【００５９】
機器コンポーネントにおける本発明の方法のここで記述される区分けは、機能グループが他のユニットに格納されているデータにアクセスする必要がないという利点を有する。これによってデータは主にローカルに格納され、比較的大きなデータ量をユニット間で移す必要がなく、これによって機器技術的な置換が大きく簡略化される。
【００６０】
ジオメトリ変更指示シーケンスの実行のための機能グループを機能グループインターセクションに統合する代わりに、これをユニットＭ−ＳＲとＴキャッシュとの間に接続することもできる。これは、これらの指示シーケンスが場合によってはより少ない回数で実行されるという利点を提供する。なぜなら、これらの指示シーケンスの結果のうちの幾つかはユニットＴキャッシュのデータ構造に書き留められるからである。
【００６１】
機能グループＴ−ＳＲ、Ｌ−ＳＲ、Ｉ−ＳＲに対する有意義な拡張は、同時に異なるユニットから送られた同様の問い合わせを１つのメモリ問い合わせにまとめて、メモリの応答を全ての問い合わせ元に返送するメカニズムをこれらの機能グループにもうけることである。この場合、「同時に」を「短い期間内で」とも解釈できる。このメカニズムはメモリ問い合わせの数をさらに低減することができる。
【００６２】
機能グループＴキャッシュ、Ｌキャッシュ及びＩキャッシュに対する有意義な拡張は、これらの機能グループにリストを設けることであり、これらのリストには、なるほど既にメモリに転送されはしたが、まだその結果がわかっていないようなあらゆる問い合わせが書き留められる。今や既にこのリストに書き留められている問い合わせが送られてきた場合、このリストに単に更なるメモが付加され、メモリには問い合わせが送られない。次いで、応答がメモリによって行われると、リストのエントリに相応するデータが全ての問い合わせへの応答として伝えられる。この技術はメモリ問い合わせの数をさらに低減することができる。
【００６３】
上述のような装置にはさらにたくさんのオブジェクトに対して自律的にツリー状のデータ構造を計算する機能グループが設けられる。これによってこの機器は例えば運動オブジェクトに自律的に反応することができるだろう。
【００６４】
本発明の実施例は図面において詳しく図示されている。この場合、詳しくは、
図１はレイトレーシング方法の基礎を明確に示すための例であり、
図２はレイトレーシング方法の実施のための例であり、
図３は概念的定義を明確に示すための図示であり、
図４はプレイスホルダの使用を説明するための図示であり、
図５はジオメトリ変更指示シーケンスの例であり、
図６は四角形、三角形及び円から成る簡単な世界のツリー構造であり、
図７は装置における機能グループの図示である。
【００６５】
図１との関連において以下においてレイトレーシング方法を説明する。これは例えば次のように２次元像をつくるために使用される：計算のための升目によって分割された紙がヴァーチャルカメラの前に保持され、次いでカメラから光線が升目の各々を通過するように送信される。光線がオブジェクトにあたる場合には、相応の計算のための升目がオブジェクトの色によって着色される。これが全ての升目に対して行われた場合には、この一枚の紙はヴァーチャルカメラから見えるものの２次元写像を含んでいる。この計算のための升目が十分に小さいならば、像はそのブロック状の特性を失い、高分解能画像となる。計算のための升目へのこの分割はプリンタ及びモニタにおいても同じように使用され、このプリンタ及びモニタでは画像は個別ブロック、いわゆる画素（英語ではピクセル）から構成される。数学的な意味では、この「世界への光線の送信」は、この世界の全ての又は個々の選択されたオブジェクトと光線との交差によって行われる。この場合、オブジェクトと光線の交差はオブジェクトの表面における交点を供給するか否かである。
【００６６】
図２は、ヴァーチャルカメラ（ＣＡＭ）によってヴァーチャル世界に送信される光線Ｒ１に対する計算を示す。
【００６７】
光線Ｒ１がオブジェクトＯ１（球）と地点Ｐ１において交差する。レイトレーシング方法の簡単な変形例では例えばどの色をオブジェクトＯ１が地点Ｐ１において有しているかだけが調べられ、次いで相応の画素がこの色に着色される。
【００６８】
この方法の可能な拡張としては地点Ｐ１における照明状況が検査される。このために簡単な例において更に別の光線Ｌ１が光源ＬＳから地点Ｐ１に送信される。光線Ｌ１がＬＳとＰ１との間でオブジェクトと交差しない場合、この光源を地点Ｐ１から見て覆い隠すオブジェクトは存在せず、この結果、ＬＳからの光は地点Ｐ１に到達し、これを照明する。光線Ｌ３が光源ＬＳから地点Ｐ３に送信される別のケースでは、オブジェクトＯ４がヴァーチャル空間に存在し、この結果、地点Ｐ３は影の中にある。
【００６９】
もう一つの可能な拡張では、交差するオブジェクトの数学的特性が詳しく考察される。オブジェクトＯ１が鏡面を有していると仮定して、地点Ｐ１におけるこのオブジェクトＯ１の色を決定するために、どのオブジェクトが地点Ｐ１において映されるかが検査される。この場合にも更に別の光線Ｒ２が今や地点Ｐ１からヴァーチャル世界に送信される。
【００７０】
図２の我々の例ではＲ２がオブジェクトＯ２と地点Ｐ２で交差する。Ｐ２における色の決定のためには、光線Ｌ２が計算される。この例ではオブジェクトＯ２は板ガラスであり、この結果、地点Ｐ２の色の決定のためには、どのオブジェクトが板ガラスＯ２を通して見えるかをがもとめられなければならない。このために光線Ｒ３が地点Ｐ２からヴァーチャル世界に送信される。交点として地点Ｐ３がオブジェクトＯ３に得られる。このＰ３の色を決定するためにＰ３に対しても照明状況が計算される。光線Ｒ１に所属する画素の色はこの場合地点Ｐ１、Ｐ２及びＰ３における重み付けされた色から合成される。
【００７１】
この例では唯一の画素の色の決定のために６個の光線が計算されなければならなかった。通常は高分解能２次元写像は数百万の画素を有し、相応してこの場合計算コストが比較的高い。
【００７２】
３次元ヴァーチャル世界の２次元写像の作成における更に別の問題としては、この世界の複雑性が挙げられる。図２では世界はオブジェクトＯ１、Ｏ２、Ｏ３及びＯ４、ならびに光源（ＬＳ）及びヴァーチャルカメラ（ＣＡＭ）から成る。光線Ｒ１の考察の際にはこの光線が、もし交差するなら、オブジェクトＯ１と交差することが見て取れる。オートマトンにとっては、交差に対してただオブジェクトＯ１だけが考察されることは明白ではない。オートマトンに対する方法は、従って、どのオブジェクトに光線Ｒ１が当たるかを見出すために、ヴァーチャル世界の全てのオブジェクトを光線Ｒ１と交差させなければならない。とりわけヴァーチャル世界が多数のオブジェクトから成る場合には、非常に多くの計算が２次元像の生成のために実施されなければならない。この問題の解決のために、交差されるべきオブジェクトの量を論理的な判定によって限定するための幾つかの方法が公知である。
【００７３】
図３は左側に本願明細書の冒頭の定義に相応するデータ構造の例を示す。図示を簡略化するために、この例においては簡単に３次元世界の平面図として想像できる２次元世界が選択された。この世界は図３の中央に見える。
【００７４】
この例では、ノードＮ１はツリーの根を形成する。ノードＮ１により記述される分岐レベル（ここでは同様にＮ１により示される）は世界の平面図においても識別可能である。簡単に表現すれば、Ｎ１により記述されるレベルは世界を三角形、球形及びプレイスホルダ（Ｐ１）を含む左半分とスターを含む右半分に分割する。同様にＮ２及びＮ３は世界を更なる半分に分割する。
【００７５】
図３の右側には２つの光線Ｒ１及びＲ２が図示されており、これらの２つの光線Ｒ１及びＲ２はヴァーチャルカメラから出て世界と交差するべきものである。光線Ｒ１に対する計算はこの例では次のように行われる：
光線Ｒ１は分岐レベルＮ１と比較される。この場合、この光線が分岐レベルを左から右へと横切ることが検出され、すなわちまず最初に左半分、そしてその後で世界の右半分を検査する。右半分も場合によっては重要でありうることは記憶されているが、もちろん左半分における評価から開始して辺Ｅ１を介してそこでノードＮ２による計算が続行される。この場合、光線に対して２つのオブジェクト、すなわち三角形及び円を含む葉Ｖ１を有する半分だけが重要であることが検出される。今や、光線Ｒ１はこれらのオブジェクトと交差され、この場合この光線がこれらのオブジェクトのどちらにも当たらないことが検出される。それゆえ、上記の記憶に従って、予め書き留められたＮ１の右半分が継続される。辺Ｅ２を介してノードＮ３による評価が続行される。光線Ｒ１はまず最初に左半分に入り、次に右半分に入る。左半分では葉Ｖ２はオブジェクトを含まず、この結果、光線Ｒ１はオブジェクトとは交差される必要はない。その代わりに、予め書き留められた右半分による評価が行われる。ここには葉Ｖ３が存在し、この葉Ｖ３はスターを含む。Ｒ１とスターとの交差は交点を供給し、これによってＲ１に対する計算が終了される。
【００７６】
光線Ｒ２に対する計算もノードＮ１から始まる。そこでこの光線に対しては右半分だけが重要であると判定される。右半分にはノードＮ３が存在する。Ｒ２とレベルＮ３との間の比較の結果、この光線にとっては左半分だけが重要であることがわかる。しかし、この半分は空の葉Ｖ２だけを含んでいるので、光線Ｒ２に対する計算はこの光線がオブジェクトと交差されることなしに、これにより終了する。
【００７７】
これはそれゆえとりわけ重要である。というのも、光線とオブジェクトとの間の交差だけを計算することなしに、我々は正しい結果（「光線Ｒ２はヴァーチャル世界のオブジェクトと交差しない」）を計算したからである。
【００７８】
ツリー状データ構造をたどる上記の方法は、縦断（英語ではトラヴァーサル（traversal））とも呼ばれる。オブジェクトと光線との交差は英語ではインターセクションと呼ばれる。
【００７９】
上記の例は、まだ、どのように計算がプレイスホルダに到達する際に続行されるか、という問題を解明していない。なぜなら、このケースが生じなかったからである。光線がノードＮ２で辺Ｅ４を介してプレイスホルダＰ１へと分岐する場合、Ｐ１に所属する指示（これはヴァーチャル世界の明細書に所属する）が実施される。簡単な例では、これらの指示はオブジェクトを含む葉を発生させる。この葉は次いでプレイスホルダを代替し、従って、葉に対する計算が通常のように続行される。しかし、プレイスホルダの指示は、またこのプレイスホルダが複雑なツリー構造によって代替されることをもたらすかもしれない。この複雑なツリー構造もオブジェクトを有する葉を、いやそれ以上に新しいプレイスホルダをも含むうる。
【００８０】
これの代わりに、ここで、本発明によればパケットに光線をまとめることを顧慮しつつどのように計算が経過するかを説明する。
【００８１】
第１のステップではツリーノードＮ１がメモリからロードされ、パケットの全ての光線に対して分岐レベルＮ１が横切られるかどうか及びこれがイエスの場合にはどのように横切られるかが計算される。この場合、光線Ｒ１がまず最初に世界の左半分へ、そしてその後で右半分へと入ることが検出される。光線Ｒ２はこれに対して右半分だけに入る。この作業ステップからパケットに対する判定は次のようなものである：光線の状態には、光線Ｒ１は両方の半分へ入り、Ｒ２は右半分だけに入るとマーキングされる。このパケットはこれに基づいて左半分に行く。状態に従って、光線Ｒ２は左半分に所属する計算には関与しない。これらの計算は上述の例と同じように行われる。左半分に対する計算が終了した場合に、まだ光線Ｒ１及びＲ２に対する有効な交点が見つからない。それゆえ、パケットはその計算を右半分によって継続する。これらの計算には、状態に従って、これら２つの光線が関与する。分岐レベルＮ３に対する計算において光線Ｒ１がまず最初に葉Ｖ２を有するこの半分に入り、次いで葉Ｖ３を有する半分に入ることが検出される。光線Ｒ２はこれに対して葉Ｖ２にしか入らない。この結果は状態において書き留められ、計算が葉Ｖ２で継続される。この葉は空なので、オブジェクトと光線との交差は実施されない。光線Ｒ２の状態は、この光線が更なる半分に入らないことを指示するので、光線Ｒ２に対する計算は終了され、Ｒ２の状態は「計算終了」とマーキングされる。パケットに対する計算はＶ３によって継続される。これらの計算にはＲ１だけがまだ関与し、このＲ１はスターオブジェクトと交差される。この交差は有効な交点を供給し、Ｒ１の状態も「計算終了」とマーキングされる。これによってこのパケットの光線の全ての状態が「計算終了」とマーキングされ、この結果、これによってこのパケットに対する計算が終了される。
【００８２】
この例ではデータ低減の効果も明白である。個々の光線に対する計算が行われるならば、各光線毎に考察対象となるノードの各々がメモリからロードされなければならない。もちろん光線の全パケットが縦断されるならば、光線のうちの一つによって考察される各ノードは全パケットに対してただ一度だけメモリからロードされる。この例では光線Ｒ１はノード及び葉｛Ｎ１、Ｎ２、Ｖ１、Ｎ３、Ｖ２、Ｖ３｝を考察し、光線Ｒ２はノード及び葉｛Ｎ１、Ｎ３、Ｖ２｝を考察する。光線が個別に縦断されるならば、９回もデータがメモリからロードされる。複数の光線が１つのパケットにまとめられるならば、このパケットはノード及び葉｛Ｎ１、Ｎ２、Ｖ１、Ｎ３、Ｖ２、Ｖ３｝だけを訪れ、データはメモリから６回だけしかロードされない。
【００８３】
公知の方法のデータ構造に比べて新しいこのデータ構造は不必要な計算を回避する目的を果たしている。このデータ構造なしでは、上記の例では葉Ｖ１のオブジェクト三角形及び円も光線Ｒ２と交差させられる。というのも、１つのパケットに対してこのパケットの光線のうちのどの光線が瞬時の計算ステップに関与するのかに関する情報が存在しないからである。これによって各光線が全ての計算に関与しなくてはならないだろう。確かにこれはこれによってエラーをもたらしはしない。というのも、このような不必要な交差は有効な交点を供給しないからである。しかし、当然のことながら不必要な計算ステップをもたらす。
【００８４】
レイトレーシング方法の個々の作業ステップに対する例は既に与えられているが、ここでもう一度個々のステップに立ち入り、どの程度この分割が新しく、どのような利点を提供するかを明白にさせよう。
【００８５】
Ａ  カメラ光線発生：光線のパケットが発生され、これらの光線はヴァーチャルなカメラから出発して３次元世界のジオメトリと交差される。例えば計算プレート上の升目の矩形領域をヴァーチャルカメラの前で１つのグループに統一し、これらの計算用の升目を通過する全ての光線を１つのパケットにまとめる。
【００８６】
Ｂ  ツリー縦断：光線の空間的配向に従って３次元世界のジオメトリに対するツリーデータ構造が葉又はプレイスホルダに到達するまでたどられる。このためにツリーノード及びプレイスホルダがメモリから読み出され、計算が実施される。プレイスホルダに到達した場合には、代替オブジェクトの相応の指示シーケンスが実行される。この場合、複雑でもよいオブジェクトによってプレイスホルダが代替される。この場合には２つの選択肢が使用できる。まず最初に指示シーケンスが完全に実行され、次いでツリーの新しい構造に相応して本発明の方法が継続されるか、又は、指示シーケンスが非同期で実行され、本発明の方法が直接プレイスホルダの代理によって継続され、代替オブジェクトの指示シーケンスが完全に処理された場合にこの処理の結果によって代替される。
【００８７】
プレイスホルダの使用、とりわけ必要な場合のプレイスホルダの評価のここで示される技術は、レイトレーシングの分野では新しい。この場合、必要な場合におけるプレイスホルダの評価は、数百万のオブジェクトを有するヴァーチャル世界を暗黙のうちにプレイスホルダによって明細に指定し、この場合、それにもかかわらず、画像の計算のために僅かなメモリすなわち僅かな計算コストを必要とする方法を提供する。なぜなら、本発明の方法が画像の計算において重要であると見出したヴァーチャル世界の部分だけが計算に使用されるからである。
【００８８】
Ｃ  葉の読み込み：葉ではオブジェクト及びプレイスホルダだけではなく、これらに関するリファレンスが格納されている。例を挙げて、これの利点を明らかにしよう：
図６には四角形、円及び三角形を有する簡単な世界が図示されている。必要な光線・オブジェクト交差の量を限定するためにここでもツリー構造が発生されるべきである。この場合、１つのオブジェクトを２つの半分に分割しないようなこの世界を左半分及び右半分に分割する分岐レベルが決定できないことは明白である。この例ではレベルは世界を四角形を有する半分と円を有する半分に分割し、この場合、三角形が２つの半分に分割される。別の側面からみれば、ここではこの分割を遂行したほうがよいことも明白となる。すなわち、この世界の左半分だけ又は右半分だけを縦断する光線は４つのオブジェクトだけと交差し、これに対してこの世界が分割されない場合には７個のオブジェクト・光線交差を計算しなくてはならない。葉にオブジェクト自体が格納されるならば、左側の葉に全ての四角形及び三角形が、右側の葉には全ての円と三角形が格納されなければならない。よって、三角形を２回格納しなければならない。これに対して葉におけるオブジェクトに対するリファレンスのみを格納する場合には、単純に左及び右の葉がこの三角形をリファレンシングし、この三角形のデータが一度だけメモリに格納される。
【００８９】
本発明の拡張は、例えば、各パケットに対して既にこのパケットと交差されたオブジェクトのリストを作成することから成る。オブジェクトに対するリファレンスを葉からロードする場合、オブジェクトが既に交差しているかどうか照合され、これがイエスの場合には、同じオブジェクトとの交差をもう一度実行しない。この場合、場合によっては、瞬時のオブジェクト・光線交差には関与している幾つかの光線が、リストに記入されたオブジェクト・光線交差には関与しておらず、それゆえまさにこれらの光線に対して交差が今や実行されなければならないことに注意すべきである。このリファレンシングの更に別の利点をここで示す：１つのオブジェクト、例えば自動車が明細に指定され、メモリに格納される。次いで、２つの更に別のオブジェクトが定義され、これらのオブジェクトがそれぞれコンテナとして機能し、自動車オブジェクトへのリファレンス及び付加的に変換マトリクス及びマテリアル変更指示シーケンスを有する。このようにして、世界において異なる色を有しかつ異なる位置にある同じタイプの２つの自動車を表示することが可能であり、しかもこの場合自動車のデータを多重にメモリに格納する必要はない。
【００９０】
Ｄ  全てのオブジェクトとの交差：作業ステップＣでオブジェクトに対する大量のリファレンスが葉から読み出される。この作業ステップではリファレンシングされたオブジェクトのデータが読み出され、瞬時の操作に関与しているパケットの光線がこれらのオブジェクトと交差される。
【００９１】
これらのオブジェクトのうちの１つに対して変換が明細に指定されていた場合には、交差が計算される前にこの変換が適用される。オブジェクトが独自のツリー構造なしの単純なオブジェクトである場合、このオブジェクトは変換され、交差が計算される。別のケースでは、作業ステップＢでこのオブジェクトのツリーの縦断が開始される前に、光線が変換され、これによってオブジェクトの相対座標系に適合される。光線とオブジェクトとの間に交点があるかどうか及びこれがイエスの場合にはどのような交点があるかが計算されると、この結果及び光線が再び世界の絶対座標系に逆変換される。
【００９２】
ジオメトリ変換指示シーケンスがオブジェクトに対して明細に指定されている場合には、このオブジェクトとの交差が計算される前にこのジオメトリ変更指示シーケンスが実行される。このジオメトリ変更指示シーケンスは、例えば水面をモデル化するために使用されうる。この場合、水面を所定の時点において表示するオブジェクトが明細に指定され、さらに例えば波の動きを表すために時刻に従ってこのオブジェクトを変形する指示シーケンスが明細に指定される。
【００９３】
ジオメトリ変更指示シーケンスを有するオブジェクトを含むツリー構造はこの指示シーケンスの可能な作用効果に注意を払わなれければならない。なぜなら、さもなければ表示エラーが生じうるからである。例が図５に図示されている。ここでは三角形に対してジオメトリ変更指示シーケンスが明細に指定され、このジオメトリ変更指示シーケンスは頂点Ｐを時刻に従って地点Ｐ’及びＰ”にシフトさせる。このオブジェクトが全ての葉においてリファレンシングされ、これらの全ての葉においてこのオブジェクトが最大であるように、ツリー構造は作成される。よって、ここで左の葉においてこの三角形が、右の葉において球、矩形及び三角形がリファレンシングされるべきである。光線Ｒが右半分とだけ交差されて、三角形がそこにリファレンシングされていない場合には、この光線に対して所与の時刻に間違った交点が、すなわち三角形との交点の代わりに矩形との交点が計算されてしまう。
【００９４】
変換マトリクスの使用は、Ingo Wald, Carsten Benthin and Phillip Slusallek:" A Simple and Practical Method for Interactive Ray Tracing of Dynamic Scenes", Technical Report 2002-04, submitted for publication, http://graphics.cs.uni-sb.de/Publications/TR/2002/Dyn/DynamicRayTracing.pdfにおいて既に提案されている。ジオメトリ変更指示シーケンスの使用は新たにここで提示されるレイトレーシング方法と関連する。
【００９５】
Ｅ  交差評価：この作業ステップでは、光線のパケットに対して有効な交点が存在するかどうかが評価される。例えば、前の作業ステップＤにおいて光線が複数のオブジェクトと交差され、これらの交差が複数の交点を結果として有しうる。この場合、有効な交点は光線のソースに最も近い交点であろう。光線交差において問題となるまだ検査されていないツリーのエレメントがまだあり、かつ、前の作業ステップが十分な量の有効な交点をもたらさなかった場合には、以前の結果を含めて改めて作業ステップＢを開始し、さもなければ、ステップＦを続行する。
【００９６】
Ｆ  オブジェクト特性の決定：これまでの作業ステップの結果が評価される。とりわけ、この場合、複数の光線のうちの１つの光線との有効な交点が計算されたオブジェクトのマテリアル特性が検査される。この場合、例えばオブジェクトが鏡面を有し、それゆえ交点の色の決定のために後続光線が計算されなければならないことが検出される。同様に、オブジェクトが我々の地球である場合、地図が読み込まれて、どの土地又は海と光線が交差したかが計算され、この結果、ここから交点の色が決定される。
【００９７】
マテリアル変更指示シーケンスが交差されたオブジェクトに対して明細に指定されていた場合、このマテリアル変更指示シーケンスが実行される。この場合、マテリアル変更指示シーケンスは、無色のオブジェクトから例えば大理石様のオブジェクトを作成するためにも使用される。とりわけこの場合、大理石のパターンがこのオブジェクトに対して明細に指定された指示シーケンスによって計算され、この結果、このパターンがただ含意的にのみ数学的な式によって示され、光線がこのオブジェクトに当たる場合にだけ計算される。ジオメトリ変更指示シーケンスが交差されたオブジェクトに対して明細に指定され、この指示シーケンスがこの作業ステップへの作用も有する場合には、これも同様に実行される。
【００９８】
Ｇ  後続光線発生：ステップＦにおいて１つ又は複数の更なる光線が３次元世界のジオメトリと交差されなければならないことが計算される場合、このステップにおいて光線の相応のパケットが計算され、本発明の方法が作業ステップＢにおいて改めて開始される。さもなければ、２次元像の形成のためにさらに別のカメラ光線を発生しなければならない場合には再びステップＡから開始される。
【００９９】
プレイスホルダの使用における更に別の例が図４に図示されている。ここでは左から右へと時間経過において所属のツリー構造を有する世界がどのようにプレイスホルダＰ１乃至はＰ２の実施例において拡張又は変更されるかが見て取れる。
【０１００】
プレイスホルダの使用に対する例は次のように説明される：ヴァーチャル世界は建物Ａ及びＢを有する。発生すべき第１の画像に対してカメラが建物Ａ内に存在し、建物Ｂはこのカメラからは見えない。よって、建物Ｂを単純なプレイスホルダによってのみ明細に指定しさえすれば十分である。ヴァーチャルカメラが建物Ａから離れ、建物Ｂに近づくと、縦断の際に建物Ｂのためのプレイスホルダにたどり着く第１の光線においてプレイスホルダＢに対する指示シーケンスが実行される。この指示シーケンスは、建物Ｂがメモリ媒体からロードされて建物Ｂに対するプレイスホルダと交換されるべきであることを明細に指示すればよい。
【０１０１】
ヴァーチャル世界の複数のプレイスホルダへの分割が有利に選択されれば、画像発生において検査されなければならないデータ量は大きく限定される。
【０１０２】
逆に、部分ツリー及びオブジェクトをプレイスホルダによって代替することによってデータ低減のための非常に強力なメカニズムが実現されうる。
【図面の簡単な説明】
【０１０３】
【図１】レイトレーシング方法の基礎を明確に示すための例である。
【図２】レイトレーシング方法の実施のための例である。
【図３】概念的定義を明確に示すための図示である。
【図４】プレイスホルダの使用を説明するための図示である。
【図５】ジオメトリ変更指示シーケンスの例である。
【図６】四角形、三角形及び円から成る簡単な世界のツリー構造である。
【図７】装置における機能グループの図示である。
【符号の説明】
【０１０４】
Ｒ１及びＲ２  光線
Ｎ１〜Ｎ３  ノード
Ｖ１〜Ｖ３  葉
Ｅ１〜Ｅ６  辺
ＵＩ  ヴァーチャルカメラに対するパラメータ
ＲＡＭ  メモリモジュール
ＦＢ  固有メモリ
ＣＡＭ  ヴァーチャルカメラ
Ｏ１〜Ｏ４  オブジェクト
Ｐ１〜Ｐ３  地点
ＬＳ  光源
Ｌ１〜Ｌ３  光線
Ｐ１  プレイスホルダ
Ｐ、Ｐ’、Ｐ”  頂点
Ａ  建物
Ｂ  プレイスホルダ、建物
【図１】
2005536813.tif 000003
【図２】
2005536813.tif 000004
【図３】
2005536813.tif 000005
【図４】
2005536813.tif 000006
【図５】
2005536813.tif 000007
【図６】
2005536813.tif 000008
【図７】
2005536813.tif 000009
【国際調査報告】
2005536813.tif 000010
2005536813.tif 000011
2005536813.tif 000012
2005536813.tif 000013