JP4348728B2 - 3次元構造体の2次元写像を作成するための方法及び装置 - Google Patents

3次元構造体の2次元写像を作成するための方法及び装置 Download PDF

Info

Publication number
JP4348728B2
JP4348728B2 JP2004531696A JP2004531696A JP4348728B2 JP 4348728 B2 JP4348728 B2 JP 4348728B2 JP 2004531696 A JP2004531696 A JP 2004531696A JP 2004531696 A JP2004531696 A JP 2004531696A JP 4348728 B2 JP4348728 B2 JP 4348728B2
Authority
JP
Japan
Prior art keywords
ray
rays
packet
world
memory
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.)
Expired - Fee Related
Application number
JP2004531696A
Other languages
English (en)
Other versions
JP2005536813A (ja
Inventor
シュミットラー イェルク
ヴァルト インゴ
ズルザッレク フィリップ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OL Security LLC
Original Assignee
Jordaan Consulting Ltd V LLC
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
Application filed by Jordaan Consulting Ltd V LLC filed Critical Jordaan Consulting Ltd V LLC
Publication of JP2005536813A publication Critical patent/JP2005536813A/ja
Application granted granted Critical
Publication of JP4348728B2 publication Critical patent/JP4348728B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)

Description

このような方法及びこのような装置は3次元世界の2次元像の発生のための方法及び装置に関する。本発明はとりわけ専門家の世界で「レイトレーシング」と日常的に呼ばれている光線追跡の方法によって画像を発生することに関する。
コンピュータ技術では、3次元物体、構成部分、機器、ハウス、さらには世界までが幾何学的な記述によって明細に指定される。これらの記述は純粋なジオメトリの他に大抵の場合マテリアル及び光源に関する情報も含む。幾何学的記述との関連において最も頻繁に行われる適用事例のうちの一つはこのような3次元記述の2次元像の発生である。この場合、次のような問題が明らかになる。すなわち、
「このヴァーチャルな3次元世界にヴァーチャルなカメラを設置し、この世界が写真撮影される場合に、この写真はどう見えるのか?」
この問題の解決のためには多数の方法が既に公知である。最も公知の方法のうちの一つは光線追跡方法(英語ではレイトレーシング Ray Tracing)である。これは発明者の知識によれば最初1968年に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 に見いだされる。更に別の説明は図1との関連において図面の記述において行う。
本発明の課題は、3次元世界の2次元写像の発生を簡単にするための方法ならびにこの方法を実施するための装置を提案することである。この場合、コンピュータのリソースは従来の公知の方法よりも効率的に利用されなければならない。
理解しやすくするために、この特許出願との関連において以下の定義を説明しておく。ヴァーチャルな3次元世界の幾何学的記述は少なくとも次のような構成部分を含む:
・1つ又は複数のオブジェクト、この又はこれらのオブジェクトのジオメトリは様々なやり方で明細に指定することができる
1.例えば三角形、球体又は平行6面体のような単純な幾何学的基本物体
2.数学的関数(例えば統合又は共通分(intersection))により合成される基本 物体
3.数学的関数により記述される物体、例えばスプライン面
4.データセットによって記述される物体、例えば核スピントモグラフからのデー タ
・例えば、「オブジェクトは青い」、「オブジェクトはガラス製である」、「オブジェクトは鏡面を有する」のようなオブジェクトのマテリアル特性の記述。この場合、マテリアル特性の記述は数値パラメータ又は定義された計算ルールによっても行われる。
・ヴァーチャル世界のオブジェクトをその空間的位置に応じて分類するために使用されるツリー状データ構造。この場合ツリー構造も非循環有向グラフもツリー状データ構造と呼ばれる。
複雑なオブジェクトは、この場合、この複雑なオブジェクトを空間的に分割するか又は例えばより単純な部分オブジェクトに空間的に又は論理的に分割するツリー状データ構造も有しうる。この特許出願の文脈では、以下において、単純な基本オブジェクトと例えば合成された複雑なオブジェクト又はツリー状構造を有する複雑なオブジェクトのような複雑なオブジェクトとを区別しない。両方とも「オブジェクト」と呼ぶ。
上述の特性に加えて、オブジェクトは変換も有しうる。この変換は例えば変換マトリクスによって3次元世界における相応のオブジェクトのアフィン変換を記述し、これによってオブジェクトの座標を変更することができる。
これらの変換には無関係に、オブジェクトに対してはさらに指示シーケンスも明細に指定される。この指示シーケンスはオブジェクトの特性を変化させる。これには幾何学的特性(球体の場合には例えばその半径)及びマテリアル特性(例えばその色)も含まれる。
さらに、ヴァーチャルな世界における照明状況も明細に指定されうる。
ツリー状データ構造は以下のコンポーネントから構成されている:
・ツリーノード:ツリーにおける各ノードは3次元空間における軸平行な分岐レベルの位置を記述する。
・葉:ツリーの各々の葉は空間ボリュームの内容を記述する。空間ボリュームはこの場合1つ又は複数のオブジェクトを含むか又は空である。
・プレイスホルダ:プレイスホルダはツリーノード、葉又はオブジェクトの代わりに存在しうる。プレイスホルダは2つの部分から成る:オブジェクトを含む代理及び代替オブジェクトである。代替オブジェクトは一連の指示によって明細に指定され、しかし付加的にオブジェクト及びツリー状構造ならびに更なるプレイスホルダをも含みうる。指示が実行されると、この場合新しいツリーノード、葉、辺、オブジェクト及びプレイスホルダが生じ、これらは指示の完全な実施の後で代理を代替する。
・辺:これらの辺はコンポーネントの間の結合を表す。
このようなツリー状データ構造はコンピュータ技術では公知であるが、そこでは単にツリーノード、葉及び辺からのみ構成される。以下の本発明はこの場合それ自体はBSPツリーに類似したKDツリーである。とりわけレイトレーシング方法との関連でのプレイスホルダによる拡張が本発明の枠内で行われる。同様に本発明の構成部分はオブジェクトの定義の組み合わせである。あらゆる可能な特性を同じようにサポートし統一する全体として、この定義は新しい。
定義はより理解しやすいようにさらに図3との関連において説明する。
上記課題は本発明によれば請求項1によって解決され、請求項1によればレイトレーシング方法が使用される。このレイトレーシング方法は、その実施において世界の幾何学的記述の少なくとも一部分が光線と交差され、光線と世界のオブジェクトの交点から2次元写像が合成されることを意味する。さらに、複数の光線が離散光線のパケットにまとめられる。この場合、次に離散光線の各パケットとデータ構造との関連付けが行われる。このデータ構造において各光線への状態に適した割り当てが格納される。この状態は、少なくとも、当該光線がこの時点にパケットに適用される操作に関与するかどうかを示す。さらに複数の離散光線のパケットへの本発明の方法の全ての作業ステップの適用が行われる。この場合、データ構造への光線の格納された状態に適した割り当てから当該光線が操作に関与することが判明する場合には、パケットに操作を実行する作業ステップにおいてこの操作がパケットの各光線に対して実行される。この場合、レイトレーシング方法の区分けが、光線のパケットに対してそれぞれ順次処理される以下の作業ステップにおいて行われる。これらの作業ステップとはすなわち、
A カメラ光線発生:光線のパケットが発生され、これらの光線はヴァーチャルなカメラから出発して3次元世界のジオメトリと交差される。
B ツリー縦断:光線の空間的配向に応じて3次元世界のジオメトリに対するツリーデータ構造が葉又はプレイスホルダに到達するまでたどられる。このためにツリーノード及びプレイスホルダがメモリから読み出され、計算が実施される。プレイスホルダに到達した場合には、代替オブジェクトの相応の指示シーケンスが実行される。この場合、プレイスホルダはオブジェクトによって代替される。このオブジェクトは複雑でもよい。この場合には2つの選択肢が使用できる。まず最初に指示シーケンスが完全に実行され、次いでツリーの新しい構造に相応して本発明の方法が継続されるか、又は、指示シーケンスが非同期で実行され、本発明の方法が直接プレイスホルダの代理によって継続され、代替オブジェクトの指示シーケンスが完全に処理された場合にこの処理の結果によって代替される。
C 葉の読み込み:メモリからこの葉の中に存在するオブジェクト及びプレイスホルダの全てのリファレンスが読み込まれる。この場合、プレイスホルダが読み込まれると、相応の指示シーケンスが実行される。
D 全てのオブジェクトとの交差:作業ステップCで明細に指定された全てのオブジェクトが読み込まれ、光線のパケットと交差される。オブジェクトに対して変換が明細に指定されている場合にはオブジェクトとの交差が計算される前にこの変換が適用される。オブジェクトに対してジオメトリ変更指示シーケンスが明細に指定されている場合にはオブジェクトとの交差が計算される前にこのジオメトリ変更指示シーケンスが実行される。交差されるべきオブジェクトが縦断されなければならない独自のツリー構造を有する複雑なオブジェクトである場合には、作業ステップB〜Fがこの複雑なオブジェクトに適応されて実行されることによってこのオブジェクトが交差される。
E 交差評価:光線のパケットに対して有効な交点が存在するかどうかを評価する。光線交差において問題となるまだ検査されていないツリーのエレメントがまだ存在し、かつ、前の作業ステップが十分な量の有効な交点をもたらさなかった場合には、以前の結果を含めて改めて作業ステップBを開始し、さもなければ、ステップFを続行する。この場合、場合によってはパケットの状態が変化される。
F オブジェクト特性の決定:前の作業ステップの結果が評価される。この場合、オブジェクトが複数の光線のうちの1つの光線との有効な交点を有する場合にはこれらのオブジェクトのデータがメモリから読み出される。計算の結果がステップGに流れ込み、相応の結果において値がメモリに新たに計算される。光線と交差した複数のオブジェクトのうちの1つのオブジェクトに対してマテリアル変更指示シーケンスが明細に指定されており、このオブジェクトのマテリアル特性が作業ステップF又はGにおいて重要であるならば、この指示シーケンスが作業ステップFの計算の前に実行される。
G 後続光線発生:ステップFにおいて1つ又は複数の更なる光線が3次元世界のジオメトリと交差されなければならないことが計算される場合、このステップにおいて光線の相応のパケットが計算され、本発明の方法がこれらの光線に対して作業ステップBにおいて改めて開始される。さもなければ、2次元写像の形成のためにさらに別のカメラ光線が発生されなければならない場合には再びステップAから開始される。
これによって、ヴァーチャルな3次元世界の2次元写像の形成のための方法が記述される。この場合、3次元世界は上記の定義によって明細に指定されている。本発明のこの方法は不必要な計算を行うことなしにデータ低減のための新しい技術によって際立っている。この技術では、既に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 に記述されているように、個々の光線が光線のパケットにまとめられる。
上記の刊行物に記述された方法に対する新しい本発明の拡張は、データ構造をこれらのパケットの各々と関連付けることによって構成される。このデータ構造はこの場合パケットの各光線の状態を含む。さらに、レイトレーシング方法の個々の作業ステップが、この新しい技術を最適にサポートし同時にとりわけ機器技術的に置き換えられることに適するように区分けされる。
明確に説明するために、図3の関連において以下の実施形態を参照してもらいたい。この図3では光線R1及びR2が1つのパケットにまとめられる場合にどのように計算が経過するかが説明される。
本発明の方法の処理においては構造化された経過を実現するためにパケットを精確に作業ステップに割り当てる可能性が提示される。
パケットを複数の作業ステップに同時に割り当て、これによってより良好なデータ処理装置の利用を実現することもできる。例えば、既にステップEにおいて有効な交点が計算された光線の処理がステップFによって継続され、他方で別の光線に対してステップBによる計算が続行される。その後、このパケットの全ての光線がステップFでの計算を実行し終わるやいなや、このパケットは再び一括してステップGの処理を継続する。
請求項2記載の方法の実施形態では、作業ステップGで発生される光線は更に別の作業ステップによって新たなパケットにまとめられる。この場合、全ての新しく発生された光線が集められ、ソートされ、離散光線の新しいパケットに統合される。
この場合、新しいパケットはちょうど直ぐ前の光線パケットの計算結果に基づいて発生された光線だけを無条件に含むのではない。むしろ収集及びソートの作業ステップは論理的に関連している複数の以前の光線パケットからの新しく発生された光線を新しいパケットに結合することができる。
請求項1との関連において、とりわけ図3の実施形態においても、パケットの縦断におけるデータ低減の効果がどのような結果をもたらすのか及びこれによってステップC(葉の読み込み)、D(全オブジェクトとの交差)及びE(交差評価)に対するデータ低減が結果的に生じることが記述された。この効果は、パケットが不利に光線から統合される場合には発生しない。
例えば光線R1がツリーコンポーネント{N1、N2、V1}を訪問し、光線R2がツリーコンポーネント{N3、V2}を訪問する場合、パケットの縦断によって個々の光線の縦断に比べてデータ低減は達成されない。
請求項2は、ここでは有利には請求項1に記述された方法を拡張し、パケットの縦断において個々の光線の縦断に比べてデータ低減が達成されるように新たに発生される光線をパケットにまとめる作業ステップを記述する。
請求項3記載の方法の実施形態では、マルチスレッディング方法が使用され、それぞれ光線のパケットがスレッドとして見なされる。
マルチスレッディング方法は作業ステップ内で使用され、この結果、機能ユニットが別の機能ユニットの結果を待っている間にこの機能ユニットに有意義な作業を行わせることができる。この場合、各作業ステップは、作業ステップの機能ユニットが交互に処理するパケットのストックを保持している。
いくつかの作業ステップではデータがメモリからロードされる。通常はメモリからのデータのロードはいくらかの時間単位はかかる。計算を実行する前にロードすべきデータを待たなくてはならないので、この待機時間は有意義な計算を実行することなしに過ぎ去ってしまう。1つの作業ステップに複数のパケットが同時に割り当てられている場合、計算の経過は以下の通りである。
パケット1に対してどのデータがメモリからロードされるべきかが計算される。その後で、パケット1に対してデータがメモリからロードされ、同時にパケット2に対してどのデータがパケット2のためにメモリからロードされるべきかが計算される。次いでパケット1に対するメモリからのデータがロードされたら、パケット1に対する計算が実行される。同時にパケット2に対して相応のデータがメモリからロードされ、さらにパケット3に対してどのデータをパケット3はメモリからロードするのかが計算される、等々。
よって、有利には上記の方法との関連において1つのパケットが1つのスレッドとして分類される。
請求項4によれば、本発明の方法では、3次元世界のデータの量は、1つの時点にこれらのデータのうちの一部分だけがメモリに保持されるように管理される。
この場合、有利には、常にオブジェクト全体乃至は部分オブジェクト全体のデータがメモリにロードされ乃至はメモリから除去され、この結果、新たに必要とされる(部分)オブジェクトのためのスペースが作り出される。この場合、本発明の方法は、このために独立した作業ステップが実現されるように構成され、この作業ステップではどの(部分)オブジェクトにいつ及び何回アクセスしたかが記録される。さらに、この作業ステップにおいては自律的にメモリを管理するためにかつ必要ならば3次元世界の新しい部分をメモリにロード及びメモリから除去するために収集された情報が使用される。
すなわち、ヴァーチャル世界は多数のオブジェクトから構成されうる。この場合、ヴァーチャル世界の記述は多くのデータを有し、これらのデータは非常に多くのメモリを必要とする。例えば、データ処理装置において異なるサイズ及び速度の複数のメモリが存在する。大きなメモリは大抵の場合比較的小さいメモリよりもはるかに遅いが、本発明の方法の処理のために必要とされる時間に対するメモリの速度は重要な意味を持つので、本発明の方法にとって重要な全てのデータを高速メモリに保持することが望ましい。
従って、請求項4記載の方法によって、異なるメモリのマネジメントがオーガナイズされ、これによってできるだけ常に全ての瞬時に必要とされるデータが高速メモリに保存されることが実現される。このために本発明の方法はどのオブジェクト又は部分オブジェクトがいつ及び何回読み出されたかを記録し、必要ならば新しい(部分)オブジェクトを遅いメモリから速いメモリへとロードする。高速メモリが満杯の場合には、本発明の方法は記録に基づいてもはや必要ではない(部分)オブジェクトを見つけだし、必要なデータのためのスペースを作り出すために高速メモリから消去する。この場合、重要なことは、請求項1、2又は3のうちの1項記載の本発明の方法はただ読み出しにおいてのみヴァーチャル世界のデータにアクセスし、これによってデータが高速メモリにおいて変更されるというケースが決して発生せず、これらのデータが消去される前に遅いメモリに再書き込みされなければならないことである。
この場合、新たに必要とされるデータのためのスペースを作り出すために、常にデータの複数のブロックがメモリにロード乃至はメモリから除去されるようにデータ及びメモリ管理をオーガナイズすることも可能である。この場合でも、独立した作業ステップが実現され、この作業ステップにおいてどのブロックがいつ及び何回アクセスされたかが記録される。さらに、この作業ステップにおいて、自律的にメモリを管理しかつ必要ならば3次元世界の新たな部分をメモリにロード及びメモリから除去するために、収集された情報が使用されうる。
この代替案では、前に請求項4との関連において説明した変形実施形態とは以下の点で相違点が存在する。すなわち、オブジェクト全体又は部分オブジェクト全体が遅いメモリから読み出されるか又は高速メモリにおいて消去されるのではなく、ヴァーチャル世界のデータがブロックに分割されてこれらのブロックが必要に応じて高速メモリに読み込まれるか又はそこから消去されるのである。とりわけこの分割によって1つのオブジェクトが複数のブロックに分割されうる。この場合の利点は、一定のサイズのブロックにおいて常に同じ個数のデータエレメントがメモリから読み出されるか又は消去されることである。請求項4記載の方法では、読み出される又は消去されるデータエレメントの個数は非常に大きくそれぞれのオブジェクトによって変化する。
請求項5は上記方法のうちの1つを実施するための装置に関し、個々の作業ステップは独立した機能グループによって表される。
すなわち、これらの機能グループは有利には閉じたユニットを形成し、これらの閉じたユニットは、更に別の同様なユニットがシステムに付加され、これによってシステムの性能の向上が達成されるようなマネジメント機能によって拡張される。
この場合、機能グループは付加的にマネジメントのための機能を付与され、この結果、複数の同様な機能グループが1つの機器において統一され、これによってこの機器のパフォーマンスが向上する。同様な機能グループを付加することによって機器のパフォーマンスの向上が実現されるようにするために、必要な計算ステップが一様に全ての使用可能なユニットに分配されるようにこれらの機能グループは適切に配置されなければならない。
この他に、機能グループは付加的にパイプライン処理(pipelining)方法を使用することができ、このパイプライン処理方法では同時に複数のパケットがこの方法に存在する。このパイプライン処理方法において個々のパケットが順次計算されるのではなく、複数のパケットが同時に方法経過に及び異なる作業ステップに存在しうる。例えば、パケット1が作業ステップAにおいて発生される。その後でパケット1に対する計算が作業ステップBにおいて実行される間に、ステップAにおいてパケット2が発生される。パケット1の計算がステップBで完了すると、パケット1は作業ステップCに到達し、パケット2はステップBで処理され、他方でステップAにおいてパケット3が発生される、等々。
パイプライン処理方法は直接的にマルチスレッディング方法との結合においても使用されうる。この場合、交互に作業ステップによって処理される大量のスレッドを各作業ステップは受け取る。1つの作業ステップにおいて1つのスレッドの処理が終了した後で、このスレッドが次の作業ステップに転送され、次いでこの作業ステップがこのスレッドをこの作業ステップに既に割り当てられていたスレッドと一緒に順次実行する。これら2つの方法は共に機器の機能ユニットの非常に高い利用を可能にする。
請求項6は上記の方法のうちの1つを実施するための装置に関し、個々の作業ステップが以下のように機能グループにまとめられる、すなわち、
・RGS:作業ステップA,F及びGのための複数の機能ユニットを含み、これらをサブユニットのマネジメントのためのユニットの分だけ拡張する、
マスタ:スレーブ機能ユニットの作業を調整する、
スレーブ:作業ステップA,F及びGのためのユニットを含む、
MemInt:外部メモリへのスレーブユニットのアクセスを調整する、
・RTC:作業ステップB、C、D及びEのための複数の機能ユニットを含む、
トラヴァーサル(traversal):作業ステップB及びEを含む機能ユニット、
リスト:作業ステップCのための機能ユニット、
インターセクション:作業ステップDのための機能ユニット、
・RTC−MI:外部メモリユニットへのRTCユニットの全てのアクセスを調整及び制御する、
T−SR:Tキャッシュへのトラヴァーサルユニットのアクセスを調整する、
Tキャッシュ:前のトラヴァーサルアクセスに関して記録をつくり、前の結果を再利用することによって、新たなアクセスを回避しようとする、
L−SR:Lキャッシュへのリストユニットのアクセスを調整する、
Lキャッシュ:リストアクセスにおけるTキャッシュと類似のもの、
I−SR:Iキャッシュへのインターセクションユニットのアクセスを調整する、
Iキャッシュ:インターセクションアクセスにおけるTキャッシュと類似のもの、
M−SR:外部メモリへのキャッシュユニットのアクセスを調整する、
MemCtrl:アクセス権限のある外部メモリへのアクセスを転送する。
これらの機能グループは図7に図示されている。
この場合、有利には、機能グループスレーブ、トラヴァーサル及びインターセクションは複数のサブユニットを含むように構成されており、これらの複数のサブユニットは同時に計算を実施し、この場合、自律的にパケットのストックを保持し、これらのパケットにマルチスレッディング方法を適用する。
機能グループは、更に別の同様のグループの付加によって機器のパフォーマンスが向上されるように構成されている。常に(トラヴァーサル、リスト及びインターセクション機能ユニットから成る)RTC機能グループと同数のスレーブ機能ユニットが使用される。機能ユニットT−SR、L−SR及びI−SRは、これらの機能ユニットが全てのRTC機能グループとメモリとの間のコネクションを形成することができるように構成されている。
機能ユニットマスタは機器の最上位コントロールエンティティである。マスタは入力としてヴァーチャルカメラに対するパラメータ(図ではUIで示されている)を受け取り、これに基づいて1つ又は複数のスレーブユニットにパケットの記述を与える。スレーブユニットはこれらの記述によってカメラ光線発生を実施し、計算されたパケットを関連付けられたRTCユニットに送る。
スレーブユニットは応答として(数時刻後に)光線・オブジェクト交差のデータを受け取り、次いで作業ステップF及びGにおける計算を実施する。後続光線が計算される場合には、これらはまた関連付けられたRTCユニットに送信される。スレーブユニットはその計算においてデータをメモリから読み出し、場合によっては再書き込みしなければならない。全てのスレーブユニットのメモリアクセスはMemIntユニットによって調整され、このMemIntユニットは1つ又は複数のメモリモジュール(図ではRAMと記されている)と接続されている。
作業ステップFにおいて画素又はオブジェクト値が計算されると、スレーブユニットはMemIntユニットによって固有メモリ(図ではFBと記されている)に書き込み、この固有メモリからこのMemIntユニットはデータを再び読み出すことができる。この固有メモリは付加的に計算された2次元写像をディスプレイするためにモニタに接続された機能グループと接続されうる。
RTC機能グループは作業ステップツリー縦断、葉の読み込み、全オブジェクトとの交差及び交差評価を置換する。RTCグループのユニットがデータをメモリからロードしようとする場合には、このユニットは相応の問い合わせをそれに割り当てられたユニット、すなわちT−SR、L−SR及びI−SRユニットに送る。
全てのRTCグループからの全てのメモリ問い合わせはユニットTキャッシュ、Lキャッシュ及びIキャッシュに集まる。これらのユニットはデータ構造を有し、このデータ構造においてそれ以前のメモリ問い合わせのデータが書き留められる。既にメモリからの応答が書き留められている問い合わせが送られてくると、この問い合わせはこのデータ構造からのデータによって応答される。この場合、有利には、全ての問い合わせはメモリからデータだけを読もうとする。これによって、データ構造の内容は必要ならばこのデータ構造をメモリに再書き込みする必要なしに簡単に棄却される。これは新しい画像に対する計算が開始され、この際オブジェクトが変更された場合にとりわけ有利である。この場合、信号がユニットTキャッシュ、Lキャッシュ及びIキャッシュに送信され、このユニットTキャッシュ、Lキャッシュ及びIキャッシュがそのデータ構造の内容を棄却し、この結果、新しい問い合わせにおいて瞬時のオブジェクトがメモリから読み出される。データ構造に書き留められていた(古い)オブジェクトが誤って新しい計算に入り込むことはない。
機能ユニットM−SRはTキャッシュ、Lキャッシュ及びIキャッシュからの全ての問い合わせをユニットMemCtrlに転送する。MemCtrlは直接1つ又は複数のメモリモジュール(図ではRAM)に接続されている機能グループである。この場合、機能グループMemCtrlは、メモリモジュールへのアクセスの際に生じる場合によってはありうる待機時間を回避するための複数のメカニズムを含んでいる。これらのメカニズムには次のものが数えられる。すなわち、問い合わせを一様に全てのメモリモジュールに分配するためのアドレスのハッシュ及び問い合わせのソートし直しである。この結果、メモリモジュールの内部構造に起因する待機時間が回避される。
機器コンポーネントにおける本発明の方法のここで記述される区分けは、機能グループが他のユニットに格納されているデータにアクセスする必要がないという利点を有する。これによってデータは主にローカルに格納され、比較的大きなデータ量をユニット間で移す必要がなく、これによって機器技術的な置換が大きく簡略化される。
ジオメトリ変更指示シーケンスの実行のための機能グループを機能グループインターセクションに統合する代わりに、これをユニットM−SRとTキャッシュとの間に接続することもできる。これは、これらの指示シーケンスが場合によってはより少ない回数で実行されるという利点を提供する。なぜなら、これらの指示シーケンスの結果のうちの幾つかはユニットTキャッシュのデータ構造に書き留められるからである。
機能グループT−SR、L−SR、I−SRに対する有意義な拡張は、同時に異なるユニットから送られた同様の問い合わせを1つのメモリ問い合わせにまとめて、メモリの応答を全ての問い合わせ元に返送するメカニズムをこれらの機能グループにもうけることである。この場合、「同時に」を「短い期間内で」とも解釈できる。このメカニズムはメモリ問い合わせの数をさらに低減することができる。
機能グループTキャッシュ、Lキャッシュ及びIキャッシュに対する有意義な拡張は、これらの機能グループにリストを設けることであり、これらのリストには、なるほど既にメモリに転送されはしたが、まだその結果がわかっていないようなあらゆる問い合わせが書き留められる。今や既にこのリストに書き留められている問い合わせが送られてきた場合、このリストに単に更なるメモが付加され、メモリには問い合わせが送られない。次いで、応答がメモリによって行われると、リストのエントリに相応するデータが全ての問い合わせへの応答として伝えられる。この技術はメモリ問い合わせの数をさらに低減することができる。
上述のような装置にはさらにたくさんのオブジェクトに対して自律的にツリー状のデータ構造を計算する機能グループが設けられる。これによってこの機器は例えば運動オブジェクトに自律的に反応することができるだろう。
本発明の実施例は図面において詳しく図示されている。この場合、詳しくは、
図1はレイトレーシング方法の基礎を明確に示すための例であり、
図2はレイトレーシング方法の実施のための例であり、
図3は概念的定義を明確に示すための図示であり、
図4はプレイスホルダの使用を説明するための図示であり、
図5はジオメトリ変更指示シーケンスの例であり、
図6は四角形、三角形及び円から成る簡単な世界のツリー構造であり、
図7は装置における機能グループの図示である。
図1との関連において以下においてレイトレーシング方法を説明する。これは例えば次のように2次元像をつくるために使用される:計算のための升目によって分割された紙がヴァーチャルカメラの前に保持され、次いでカメラから光線が升目の各々を通過するように送信される。光線がオブジェクトにあたる場合には、相応の計算のための升目がオブジェクトの色によって着色される。これが全ての升目に対して行われた場合には、この一枚の紙はヴァーチャルカメラから見えるものの2次元写像を含んでいる。この計算のための升目が十分に小さいならば、像はそのブロック状の特性を失い、高分解能画像となる。計算のための升目へのこの分割はプリンタ及びモニタにおいても同じように使用され、このプリンタ及びモニタでは画像は個別ブロック、いわゆる画素(英語ではピクセル)から構成される。数学的な意味では、この「世界への光線の送信」は、この世界の全ての又は個々の選択されたオブジェクトと光線との交差によって行われる。この場合、オブジェクトと光線の交差はオブジェクトの表面における交点を供給するか否かである。
図2は、ヴァーチャルカメラ(CAM)によってヴァーチャル世界に送信される光線R1に対する計算を示す。
光線R1がオブジェクトO1(球)と地点P1において交差する。レイトレーシング方法の簡単な変形例では例えばどの色をオブジェクトO1が地点P1において有しているかだけが調べられ、次いで相応の画素がこの色に着色される。
この方法の可能な拡張としては地点P1における照明状況が検査される。このために簡単な例において更に別の光線L1が光源LSから地点P1に送信される。光線L1がLSとP1との間でオブジェクトと交差しない場合、この光源を地点P1から見て覆い隠すオブジェクトは存在せず、この結果、LSからの光は地点P1に到達し、これを照明する。光線L3が光源LSから地点P3に送信される別のケースでは、オブジェクトO4がヴァーチャル空間に存在し、この結果、地点P3は影の中にある。
もう一つの可能な拡張では、交差するオブジェクトの数学的特性が詳しく考察される。オブジェクトO1が鏡面を有していると仮定して、地点P1におけるこのオブジェクトO1の色を決定するために、どのオブジェクトが地点P1において映されるかが検査される。この場合にも更に別の光線R2が今や地点P1からヴァーチャル世界に送信される。
図2の我々の例ではR2がオブジェクトO2と地点P2で交差する。P2における色の決定のためには、光線L2が計算される。この例ではオブジェクトO2は板ガラスであり、この結果、地点P2の色の決定のためには、どのオブジェクトが板ガラスO2を通して見えるかをがもとめられなければならない。このために光線R3が地点P2からヴァーチャル世界に送信される。交点として地点P3がオブジェクトO3に得られる。このP3の色を決定するためにP3に対しても照明状況が計算される。光線R1に所属する画素の色はこの場合地点P1、P2及びP3における重み付けされた色から合成される。
この例では唯一の画素の色の決定のために6個の光線が計算されなければならなかった。通常は高分解能2次元写像は数百万の画素を有し、相応してこの場合計算コストが比較的高い。
3次元ヴァーチャル世界の2次元写像の作成における更に別の問題としては、この世界の複雑性が挙げられる。図2では世界はオブジェクトO1、O2、O3及びO4、ならびに光源(LS)及びヴァーチャルカメラ(CAM)から成る。光線R1の考察の際にはこの光線が、もし交差するなら、オブジェクトO1と交差することが見て取れる。オートマトンにとっては、交差に対してただオブジェクトO1だけが考察されることは明白ではない。オートマトンに対する方法は、従って、どのオブジェクトに光線R1が当たるかを見出すために、ヴァーチャル世界の全てのオブジェクトを光線R1と交差させなければならない。とりわけヴァーチャル世界が多数のオブジェクトから成る場合には、非常に多くの計算が2次元像の生成のために実施されなければならない。この問題の解決のために、交差されるべきオブジェクトの量を論理的な判定によって限定するための幾つかの方法が公知である。
図3は左側に本願明細書の冒頭の定義に相応するデータ構造の例を示す。図示を簡略化するために、この例においては簡単に3次元世界の平面図として想像できる2次元世界が選択された。この世界は図3の中央に見える。
この例では、ノードN1はツリーの根を形成する。ノードN1により記述される分岐レベル(ここでは同様にN1により示される)は世界の平面図においても識別可能である。簡単に表現すれば、N1により記述されるレベルは世界を三角形、球形及びプレイスホルダ(P1)を含む左半分とスターを含む右半分に分割する。同様にN2及びN3は世界を更なる半分に分割する。
図3の右側には2つの光線R1及びR2が図示されており、これらの2つの光線R1及びR2はヴァーチャルカメラから出て世界と交差するべきものである。光線R1に対する計算はこの例では次のように行われる:
光線R1は分岐レベルN1と比較される。この場合、この光線が分岐レベルを左から右へと横切ることが検出され、すなわちまず最初に左半分、そしてその後で世界の右半分を検査する。右半分も場合によっては重要でありうることは記憶されているが、もちろん左半分における評価から開始して辺E1を介してそこでノードN2による計算が続行される。この場合、光線に対して2つのオブジェクト、すなわち三角形及び円を含む葉V1を有する半分だけが重要であることが検出される。今や、光線R1はこれらのオブジェクトと交差され、この場合この光線がこれらのオブジェクトのどちらにも当たらないことが検出される。それゆえ、上記の記憶に従って、予め書き留められたN1の右半分が継続される。辺E2を介してノードN3による評価が続行される。光線R1はまず最初に左半分に入り、次に右半分に入る。左半分では葉V2はオブジェクトを含まず、この結果、光線R1はオブジェクトとは交差される必要はない。その代わりに、予め書き留められた右半分による評価が行われる。ここには葉V3が存在し、この葉V3はスターを含む。R1とスターとの交差は交点を供給し、これによってR1に対する計算が終了される。
光線R2に対する計算もノードN1から始まる。そこでこの光線に対しては右半分だけが重要であると判定される。右半分にはノードN3が存在する。R2とレベルN3との間の比較の結果、この光線にとっては左半分だけが重要であることがわかる。しかし、この半分は空の葉V2だけを含んでいるので、光線R2に対する計算はこの光線がオブジェクトと交差されることなしに、これにより終了する。
これはそれゆえとりわけ重要である。というのも、光線とオブジェクトとの間の交差だけを計算することなしに、我々は正しい結果(「光線R2はヴァーチャル世界のオブジェクトと交差しない」)を計算したからである。
ツリー状データ構造をたどる上記の方法は、縦断(英語ではトラヴァーサル(traversal))とも呼ばれる。オブジェクトと光線との交差は英語ではインターセクションと呼ばれる。
上記の例は、まだ、どのように計算がプレイスホルダに到達する際に続行されるか、という問題を解明していない。なぜなら、このケースが生じなかったからである。光線がノードN2で辺E4を介してプレイスホルダP1へと分岐する場合、P1に所属する指示(これはヴァーチャル世界の明細書に所属する)が実施される。簡単な例では、これらの指示はオブジェクトを含む葉を発生させる。この葉は次いでプレイスホルダを代替し、従って、葉に対する計算が通常のように続行される。しかし、プレイスホルダの指示は、またこのプレイスホルダが複雑なツリー構造によって代替されることをもたらすかもしれない。この複雑なツリー構造もオブジェクトを有する葉を、いやそれ以上に新しいプレイスホルダをも含むうる。
これの代わりに、ここで、本発明によればパケットに光線をまとめることを顧慮しつつどのように計算が経過するかを説明する。
第1のステップではツリーノードN1がメモリからロードされ、パケットの全ての光線に対して分岐レベルN1が横切られるかどうか及びこれがイエスの場合にはどのように横切られるかが計算される。この場合、光線R1がまず最初に世界の左半分へ、そしてその後で右半分へと入ることが検出される。光線R2はこれに対して右半分だけに入る。この作業ステップからパケットに対する判定は次のようなものである:光線の状態には、光線R1は両方の半分へ入り、R2は右半分だけに入るとマーキングされる。このパケットはこれに基づいて左半分に行く。状態に従って、光線R2は左半分に所属する計算には関与しない。これらの計算は上述の例と同じように行われる。左半分に対する計算が終了した場合に、まだ光線R1及びR2に対する有効な交点が見つからない。それゆえ、パケットはその計算を右半分によって継続する。これらの計算には、状態に従って、これら2つの光線が関与する。分岐レベルN3に対する計算において光線R1がまず最初に葉V2を有するこの半分に入り、次いで葉V3を有する半分に入ることが検出される。光線R2はこれに対して葉V2にしか入らない。この結果は状態において書き留められ、計算が葉V2で継続される。この葉は空なので、オブジェクトと光線との交差は実施されない。光線R2の状態は、この光線が更なる半分に入らないことを指示するので、光線R2に対する計算は終了され、R2の状態は「計算終了」とマーキングされる。パケットに対する計算はV3によって継続される。これらの計算にはR1だけがまだ関与し、このR1はスターオブジェクトと交差される。この交差は有効な交点を供給し、R1の状態も「計算終了」とマーキングされる。これによってこのパケットの光線の全ての状態が「計算終了」とマーキングされ、この結果、これによってこのパケットに対する計算が終了される。
この例ではデータ低減の効果も明白である。個々の光線に対する計算が行われるならば、各光線毎に考察対象となるノードの各々がメモリからロードされなければならない。もちろん光線の全パケットが縦断されるならば、光線のうちの一つによって考察される各ノードは全パケットに対してただ一度だけメモリからロードされる。この例では光線R1はノード及び葉{N1、N2、V1、N3、V2、V3}を考察し、光線R2はノード及び葉{N1、N3、V2}を考察する。光線が個別に縦断されるならば、9回もデータがメモリからロードされる。複数の光線が1つのパケットにまとめられるならば、このパケットはノード及び葉{N1、N2、V1、N3、V2、V3}だけを訪れ、データはメモリから6回だけしかロードされない。
公知の方法のデータ構造に比べて新しいこのデータ構造は不必要な計算を回避する目的を果たしている。このデータ構造なしでは、上記の例では葉V1のオブジェクト三角形及び円も光線R2と交差させられる。というのも、1つのパケットに対してこのパケットの光線のうちのどの光線が瞬時の計算ステップに関与するのかに関する情報が存在しないからである。これによって各光線が全ての計算に関与しなくてはならないだろう。確かにこれはこれによってエラーをもたらしはしない。というのも、このような不必要な交差は有効な交点を供給しないからである。しかし、当然のことながら不必要な計算ステップをもたらす。
レイトレーシング方法の個々の作業ステップに対する例は既に与えられているが、ここでもう一度個々のステップに立ち入り、どの程度この分割が新しく、どのような利点を提供するかを明白にさせよう。
A カメラ光線発生:光線のパケットが発生され、これらの光線はヴァーチャルなカメラから出発して3次元世界のジオメトリと交差される。例えば計算プレート上の升目の矩形領域をヴァーチャルカメラの前で1つのグループに統一し、これらの計算用の升目を通過する全ての光線を1つのパケットにまとめる。
B ツリー縦断:光線の空間的配向に従って3次元世界のジオメトリに対するツリーデータ構造が葉又はプレイスホルダに到達するまでたどられる。このためにツリーノード及びプレイスホルダがメモリから読み出され、計算が実施される。プレイスホルダに到達した場合には、代替オブジェクトの相応の指示シーケンスが実行される。この場合、複雑でもよいオブジェクトによってプレイスホルダが代替される。この場合には2つの選択肢が使用できる。まず最初に指示シーケンスが完全に実行され、次いでツリーの新しい構造に相応して本発明の方法が継続されるか、又は、指示シーケンスが非同期で実行され、本発明の方法が直接プレイスホルダの代理によって継続され、代替オブジェクトの指示シーケンスが完全に処理された場合にこの処理の結果によって代替される。
プレイスホルダの使用、とりわけ必要な場合のプレイスホルダの評価のここで示される技術は、レイトレーシングの分野では新しい。この場合、必要な場合におけるプレイスホルダの評価は、数百万のオブジェクトを有するヴァーチャル世界を暗黙のうちにプレイスホルダによって明細に指定し、この場合、それにもかかわらず、画像の計算のために僅かなメモリすなわち僅かな計算コストを必要とする方法を提供する。なぜなら、本発明の方法が画像の計算において重要であると見出したヴァーチャル世界の部分だけが計算に使用されるからである。
C 葉の読み込み:葉ではオブジェクト及びプレイスホルダだけではなく、これらに関するリファレンスが格納されている。例を挙げて、これの利点を明らかにしよう:
図6には四角形、円及び三角形を有する簡単な世界が図示されている。必要な光線・オブジェクト交差の量を限定するためにここでもツリー構造が発生されるべきである。この場合、1つのオブジェクトを2つの半分に分割しないようなこの世界を左半分及び右半分に分割する分岐レベルが決定できないことは明白である。この例ではレベルは世界を四角形を有する半分と円を有する半分に分割し、この場合、三角形が2つの半分に分割される。別の側面からみれば、ここではこの分割を遂行したほうがよいことも明白となる。すなわち、この世界の左半分だけ又は右半分だけを縦断する光線は4つのオブジェクトだけと交差し、これに対してこの世界が分割されない場合には7個のオブジェクト・光線交差を計算しなくてはならない。葉にオブジェクト自体が格納されるならば、左側の葉に全ての四角形及び三角形が、右側の葉には全ての円と三角形が格納されなければならない。よって、三角形を2回格納しなければならない。これに対して葉におけるオブジェクトに対するリファレンスのみを格納する場合には、単純に左及び右の葉がこの三角形をリファレンシングし、この三角形のデータが一度だけメモリに格納される。
本発明の拡張は、例えば、各パケットに対して既にこのパケットと交差されたオブジェクトのリストを作成することから成る。オブジェクトに対するリファレンスを葉からロードする場合、オブジェクトが既に交差しているかどうか照合され、これがイエスの場合には、同じオブジェクトとの交差をもう一度実行しない。この場合、場合によっては、瞬時のオブジェクト・光線交差には関与している幾つかの光線が、リストに記入されたオブジェクト・光線交差には関与しておらず、それゆえまさにこれらの光線に対して交差が今や実行されなければならないことに注意すべきである。このリファレンシングの更に別の利点をここで示す:1つのオブジェクト、例えば自動車が明細に指定され、メモリに格納される。次いで、2つの更に別のオブジェクトが定義され、これらのオブジェクトがそれぞれコンテナとして機能し、自動車オブジェクトへのリファレンス及び付加的に変換マトリクス及びマテリアル変更指示シーケンスを有する。このようにして、世界において異なる色を有しかつ異なる位置にある同じタイプの2つの自動車を表示することが可能であり、しかもこの場合自動車のデータを多重にメモリに格納する必要はない。
D 全てのオブジェクトとの交差:作業ステップCでオブジェクトに対する大量のリファレンスが葉から読み出される。この作業ステップではリファレンシングされたオブジェクトのデータが読み出され、瞬時の操作に関与しているパケットの光線がこれらのオブジェクトと交差される。
これらのオブジェクトのうちの1つに対して変換が明細に指定されていた場合には、交差が計算される前にこの変換が適用される。オブジェクトが独自のツリー構造なしの単純なオブジェクトである場合、このオブジェクトは変換され、交差が計算される。別のケースでは、作業ステップBでこのオブジェクトのツリーの縦断が開始される前に、光線が変換され、これによってオブジェクトの相対座標系に適合される。光線とオブジェクトとの間に交点があるかどうか及びこれがイエスの場合にはどのような交点があるかが計算されると、この結果及び光線が再び世界の絶対座標系に逆変換される。
ジオメトリ変換指示シーケンスがオブジェクトに対して明細に指定されている場合には、このオブジェクトとの交差が計算される前にこのジオメトリ変更指示シーケンスが実行される。このジオメトリ変更指示シーケンスは、例えば水面をモデル化するために使用されうる。この場合、水面を所定の時点において表示するオブジェクトが明細に指定され、さらに例えば波の動きを表すために時刻に従ってこのオブジェクトを変形する指示シーケンスが明細に指定される。
ジオメトリ変更指示シーケンスを有するオブジェクトを含むツリー構造はこの指示シーケンスの可能な作用効果に注意を払わなれければならない。なぜなら、さもなければ表示エラーが生じうるからである。例が図5に図示されている。ここでは三角形に対してジオメトリ変更指示シーケンスが明細に指定され、このジオメトリ変更指示シーケンスは頂点Pを時刻に従って地点P’及びP”にシフトさせる。このオブジェクトが全ての葉においてリファレンシングされ、これらの全ての葉においてこのオブジェクトが最大であるように、ツリー構造は作成される。よって、ここで左の葉においてこの三角形が、右の葉において球、矩形及び三角形がリファレンシングされるべきである。光線Rが右半分とだけ交差されて、三角形がそこにリファレンシングされていない場合には、この光線に対して所与の時刻に間違った交点が、すなわち三角形との交点の代わりに矩形との交点が計算されてしまう。
変換マトリクスの使用は、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において既に提案されている。ジオメトリ変更指示シーケンスの使用は新たにここで提示されるレイトレーシング方法と関連する。
E 交差評価:この作業ステップでは、光線のパケットに対して有効な交点が存在するかどうかが評価される。例えば、前の作業ステップDにおいて光線が複数のオブジェクトと交差され、これらの交差が複数の交点を結果として有しうる。この場合、有効な交点は光線のソースに最も近い交点であろう。光線交差において問題となるまだ検査されていないツリーのエレメントがまだあり、かつ、前の作業ステップが十分な量の有効な交点をもたらさなかった場合には、以前の結果を含めて改めて作業ステップBを開始し、さもなければ、ステップFを続行する。
F オブジェクト特性の決定:これまでの作業ステップの結果が評価される。とりわけ、この場合、複数の光線のうちの1つの光線との有効な交点が計算されたオブジェクトのマテリアル特性が検査される。この場合、例えばオブジェクトが鏡面を有し、それゆえ交点の色の決定のために後続光線が計算されなければならないことが検出される。同様に、オブジェクトが我々の地球である場合、地図が読み込まれて、どの土地又は海と光線が交差したかが計算され、この結果、ここから交点の色が決定される。
マテリアル変更指示シーケンスが交差されたオブジェクトに対して明細に指定されていた場合、このマテリアル変更指示シーケンスが実行される。この場合、マテリアル変更指示シーケンスは、無色のオブジェクトから例えば大理石様のオブジェクトを作成するためにも使用される。とりわけこの場合、大理石のパターンがこのオブジェクトに対して明細に指定された指示シーケンスによって計算され、この結果、このパターンがただ含意的にのみ数学的な式によって示され、光線がこのオブジェクトに当たる場合にだけ計算される。ジオメトリ変更指示シーケンスが交差されたオブジェクトに対して明細に指定され、この指示シーケンスがこの作業ステップへの作用も有する場合には、これも同様に実行される。
G 後続光線発生:ステップFにおいて1つ又は複数の更なる光線が3次元世界のジオメトリと交差されなければならないことが計算される場合、このステップにおいて光線の相応のパケットが計算され、本発明の方法が作業ステップBにおいて改めて開始される。さもなければ、2次元像の形成のためにさらに別のカメラ光線を発生しなければならない場合には再びステップAから開始される。
プレイスホルダの使用における更に別の例が図4に図示されている。ここでは左から右へと時間経過において所属のツリー構造を有する世界がどのようにプレイスホルダP1乃至はP2の実施例において拡張又は変更されるかが見て取れる。
プレイスホルダの使用に対する例は次のように説明される:ヴァーチャル世界は建物A及びBを有する。発生すべき第1の画像に対してカメラが建物A内に存在し、建物Bはこのカメラからは見えない。よって、建物Bを単純なプレイスホルダによってのみ明細に指定しさえすれば十分である。ヴァーチャルカメラが建物Aから離れ、建物Bに近づくと、縦断の際に建物Bのためのプレイスホルダにたどり着く第1の光線においてプレイスホルダBに対する指示シーケンスが実行される。この指示シーケンスは、建物Bがメモリ媒体からロードされて建物Bに対するプレイスホルダと交換されるべきであることを明細に指示すればよい。
ヴァーチャル世界の複数のプレイスホルダへの分割が有利に選択されれば、画像発生において検査されなければならないデータ量は大きく限定される。
逆に、部分ツリー及びオブジェクトをプレイスホルダによって代替することによってデータ低減のための非常に強力なメカニズムが実現されうる。
レイトレーシング方法の基礎を明確に示すための例である。 レイトレーシング方法の実施のための例である。 概念的定義を明確に示すための図示である。 プレイスホルダの使用を説明するための図示である。 ジオメトリ変更指示シーケンスの例である。 四角形、三角形及び円から成る簡単な世界のツリー構造である。 装置における機能グループの図示である。
符号の説明
R1及びR2 光線
N1〜N3 ノード
V1〜V3 葉
E1〜E6 辺
UI ヴァーチャルカメラに対するパラメータ
RAM メモリモジュール
FB 固有メモリ
CAM ヴァーチャルカメラ
O1〜O4 オブジェクト
P1〜P3 地点
LS 光源
L1〜L3 光線
P1 プレイスホルダ
P、P’、P” 頂点
A 建物
B プレイスホルダ、建物

Claims (6)

  1. 3次元世界の2次元写像の決定のための方法であって、
    2次元写像は少なくとも幾何学的な記述、3次元世界の空間的分割のためのツリー構造及びこの世界の全てのオブジェクトのマテリアル特性によって明細に指定されている、3次元世界の2次元写像の決定のための方法において、
    レイトレーシング方法が使用され、複数の光線が離散光線のパケットにまとめられ、データ構造の離散光線の各パケットとの関連付けが実施され、各光線へのデータ構造の状態に適した割り当てが格納され、パケットに割り当てられたデータ構造において状態に適した割り当てが格納されている場合にはパケットに対して操作を実行する作業ステップにおいてこの操作がパケットの各光線に実施されることによって、以下に記述される複数の離散光線のこのパケット乃至はこれらのパケット全てが使用され、当該光線はこの操作に関与し、光線の個々のパケットに対して次々と処理される以下のような作業ステップにレイトレーシング方法が区分けされ、これらの作業ステップとはすなわち、
    A カメラ光線発生:光線のパケットが発生され、これらの光線はヴァーチャルなカメラから出発して3次元世界のジオメトリと交差され、
    B ツリー縦断:光線の空間的配向に相応して3次元世界のジオメトリに対するツリーデータ構造が葉又はプレイスホルダに到達するまでたどられ、この途中でツリーノード及びプレイスホルダがメモリから読み出され、計算が実施され、プレイスホルダに到達した場合には、このプレイスホルダがオブジェクトによって代替されることよって代替オブジェクトの相応の指示シーケンスが行われ、このオブジェクトは複雑でもよく、プレイスホルダの存在する場合には2つの選択肢が使用でき、すなわち、
    ・まず最初に指示シーケンスが完全に実行され、次いでツリーの新しい構造に相応して前記方法が継続されるか、又は、
    ・指示シーケンスが非同期で実行され、前記方法が直接プレイスホルダの代理によって継続され、代替オブジェクトの指示シーケンスが完全に処理された場合にこの処理の結果によって代替され、
    C 葉の読み込み:メモリからこの葉の中に存在するオブジェクト及びプレイスホルダの全てのリファレンスが読み込まれ、場合によっては実行され、
    D 全てのオブジェクトとの交差:作業ステップCで明細に指定された全てのオブジェクトが読み込まれ、光線のパケットと交差され、変換がオブジェクトに対して明細に指定されている場合にはこのオブジェクトとの交差の計算の前にこの変換が適用され、ジオメトリ変更指示シーケンスがオブジェクトに対して明細に指定されている場合にはこのオブジェクトとの交差の計算の前にジオメトリ変更指示シーケンスが適用され、交差されるべきオブジェクトが縦断されなければならない独自のツリー構造を有する複雑なオブジェクトである場合には作業ステップB〜Fがこの複雑なオブジェクトに適応されて実行されることによってこの交差されるべきオブジェクトと交差され、
    E 交差評価:光線のパケットに対して有効な交点が存在するかどうかが検査され、まだ十分な量の有効な交点がもとめられなかった場合には、以前の結果を使用して作業ステップBを継続することによって光線交差において問題となるツリーのまだ検査されていないエレメントに対して可能な光線交差がもとめられ、十分な量の光線交差がもとめられた場合にはステップFの実行に移り、
    F オブジェクト特性の決定:前の作業ステップの結果の評価において、有効な交点がある場合にはこれらの有効な交点を計算するために使用したオブジェクトのデータがメモリから読み出され、計算の結果がステップGに流れ込み、相応の結果において値がメモリに新たに計算され、光線と交差した1つ又は複数のオブジェクトに対してマテリアル変更指示シーケンスが明細に指定されており、このオブジェクトのマテリアル特性が作業ステップF又はGにおいて重要である場合には、これらの指示シーケンスが作業ステップFの計算の前に実行され、
    G 後続光線発生:ステップFにおいて1つ又は複数の更なる光線が3次元世界のジオメトリと交差されなければならないことが計算されたならば、このステップにおいて光線の相応のパケットがもとめられ、前記方法の経過が作業ステップBにおいて改めて開始され、さもなければ、2次元写像の形成のためにさらに別のカメラ光線が発生されなければならない場合には再びステップAから開始される
    ことを特徴とする、3次元世界の2次元写像の決定のための方法。
  2. 作業ステップGで発生される光線は更に別の作業ステップによって新たなパケットにまとめられ、全ての新しく発生された光線が集められ、ソートされ、離散光線の新しいパケットに統合されることを特徴とする、請求項1記載の方法。
  3. それぞれ光線のパケットがスレッドとして見なされることによって、マルチスレッディング方法が使用されることを特徴とする、請求項1又は2記載の方法。
  4. 3次元世界のデータの量は、1つの時点にこれらのデータのうちの一部分だけがメモリに保持されるように管理されることを特徴とする請求項1〜3のうちの1項記載の方法。
  5. 個々の作業ステップは独立した機能グループによって表されることを特徴とする、請求項1〜4のうちの1項記載の方法を実施するための装置。
  6. 以下のような作業ステップが機能グループにまとめられる、すなわち、
    ・RGS:作業ステップA,F及びGのための複数の機能ユニットを含み、これらをサブユニットのマネジメントのためのユニットの分だけ拡張する、
    マスタ:スレーブ機能ユニットの作業を調整する、
    スレーブ:作業ステップA,F及びGのためのユニットを含む、
    MemInt:外部メモリへのスレーブユニットのアクセスを調整する、
    ・RTC:作業ステップB、C、D及びEのための複数の機能ユニットを含む、
    トラヴァーサル:作業ステップB及びEを含む機能ユニット、
    リスト:作業ステップCのための機能ユニット、
    インターセクション:作業ステップDのための機能ユニット、
    ・RTC−MI:外部メモリユニットへのRTCユニットの全てのアクセスを調整及び制御する、
    T−SR:Tキャッシュへのトラヴァーサルユニットのアクセスを調整する、
    Tキャッシュ:前のトラヴァーサルアクセスに関して記録をつくり、前の結果を再利用することによって、新たなアクセスを回避しようとする、
    L−SR:Lキャッシュへのリストユニットのアクセスを調整する、
    Lキャッシュ:リストアクセスにおけるTキャッシュと類似のもの、
    I−SR:Iキャッシュへのインターセクションユニットのアクセスを調整する、
    Iキャッシュ:インターセクションアクセスにおけるTキャッシュと類似のもの、
    M−SR:外部メモリへのキャッシュユニットのアクセスを調整する、
    MemCtrl:アクセス権限のある外部メモリへのアクセスを転送する
    ことを特徴とする請求項1〜4のうちの1項記載の方法を実施するための装置。
JP2004531696A 2002-08-26 2003-08-20 3次元構造体の2次元写像を作成するための方法及び装置 Expired - Fee Related JP4348728B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10239672A DE10239672B4 (de) 2002-08-26 2002-08-26 Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur
PCT/DE2003/002801 WO2004021274A2 (de) 2002-08-26 2003-08-20 Verfahren und vorrichtung zum raytracing

Publications (2)

Publication Number Publication Date
JP2005536813A JP2005536813A (ja) 2005-12-02
JP4348728B2 true JP4348728B2 (ja) 2009-10-21

Family

ID=31502078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004531696A Expired - Fee Related JP4348728B2 (ja) 2002-08-26 2003-08-20 3次元構造体の2次元写像を作成するための方法及び装置

Country Status (6)

Country Link
US (2) USRE44347E1 (ja)
EP (1) EP1532586A2 (ja)
JP (1) JP4348728B2 (ja)
AU (1) AU2003266174A1 (ja)
DE (1) DE10239672B4 (ja)
WO (1) WO2004021274A2 (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004007835A1 (de) * 2004-02-17 2005-09-15 Universität des Saarlandes Vorrichtung zur Darstellung von dynamischen komplexen Szenen
US8098243B2 (en) * 2005-09-23 2012-01-17 Samsung Electronics Co., Ltd. Method and apparatus for efficiently handling query for 3D display
US8259105B2 (en) * 2006-07-21 2012-09-04 The University Of Utah Research Foundation Ray tracing a three-dimensional scene using a hierarchical data structure
US20080024489A1 (en) * 2006-07-28 2008-01-31 Robert Allen Shearer Cache Utilization Optimized Ray Traversal Algorithm with Minimized Memory Bandwidth Requirements
US8243081B2 (en) * 2006-08-22 2012-08-14 International Business Machines Corporation Methods and systems for partitioning a spatial index
US7864174B2 (en) * 2006-08-24 2011-01-04 International Business Machines Corporation Methods and systems for reducing the number of rays passed between processing elements in a distributed ray tracing system
US8674987B2 (en) * 2006-09-19 2014-03-18 Caustic Graphics, Inc. Dynamic ray population control
US7830379B2 (en) * 2006-09-19 2010-11-09 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
US8018457B2 (en) * 2006-09-19 2011-09-13 Caustic Graphics, Inc. Ray tracing system architectures and methods
US9665970B2 (en) 2006-09-19 2017-05-30 Imagination Technologies Limited Variable-sized concurrent grouping for multiprocessing
US9478062B2 (en) 2006-09-19 2016-10-25 Imagination Technologies Limited Memory allocation in distributed memories for multiprocessing
US7969434B2 (en) * 2006-09-19 2011-06-28 Caustic Graphics, Inc. Method, apparatus, and computer readable medium for accelerating intersection testing in ray-tracing rendering
US7688320B2 (en) * 2006-09-27 2010-03-30 International Business Machines Corporation Methods and systems for texture prefetching based on a most recently hit primitive algorithm
US7884819B2 (en) * 2006-09-27 2011-02-08 International Business Machines Corporation Pixel color accumulation in a ray tracing image processing system
US7940265B2 (en) * 2006-09-27 2011-05-10 International Business Machines Corporation Multiple spacial indexes for dynamic scene management in graphics rendering
US7737974B2 (en) * 2006-09-27 2010-06-15 International Business Machines Corporation Reallocation of spatial index traversal between processing elements in response to changes in ray tracing graphics workload
US20080079714A1 (en) * 2006-09-28 2008-04-03 Shearer Robert A Workload Distribution Through Frame Division in a Ray Tracing Image Processing System
US7940266B2 (en) * 2006-10-13 2011-05-10 International Business Machines Corporation Dynamic reallocation of processing cores for balanced ray tracing graphics workload
US20080088619A1 (en) * 2006-10-17 2008-04-17 Robert Allen Shearer Branch Prediction for Acceleration Data Structure Traversal
US8139060B2 (en) * 2006-11-28 2012-03-20 International Business Machines Corporation Ray tracing image processing system
US8384711B2 (en) * 2006-11-29 2013-02-26 The University Of Utah Research Foundation Ray tracing a three dimensional scene using a grid
US7893936B2 (en) * 2007-01-12 2011-02-22 International Business Machines Corporation Generating efficient spatial indexes for predictably dynamic objects
US20080192051A1 (en) * 2007-02-14 2008-08-14 David Keith Fowler Expanding Empty Nodes in an Acceleration Data Structure
US8004518B2 (en) * 2007-02-14 2011-08-23 International Business Machines Corporation Combined spatial index for static and dynamic objects within a three-dimensional scene
US20080231627A1 (en) * 2007-03-20 2008-09-25 Robert Allen Shearer Using Ray Tracing to Enhance Artificial Intelligence Character Behavior
US7773087B2 (en) * 2007-04-19 2010-08-10 International Business Machines Corporation Dynamically configuring and selecting multiple ray tracing intersection methods
US7652620B2 (en) * 2007-08-09 2010-01-26 Raytheon Company RCS signature generation for closely spaced multiple objects using N-point models
US7646332B2 (en) * 2007-08-09 2010-01-12 Raytheon Company Method and apparatus for interleaved gridding in distributed multiple computing for real-time RCS prediction
US8063902B2 (en) * 2007-10-12 2011-11-22 Caustic Graphics, Inc. Method and apparatus for increasing efficiency of transmission and/or storage of rays for parallelized ray intersection testing
US7932905B2 (en) * 2007-10-15 2011-04-26 Caustic Graphics, Inc. Method, apparatus, and computer readable medium for light energy accounting in ray tracing
US8237711B2 (en) * 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
CN104112291B (zh) * 2008-03-21 2017-03-29 想象技术有限公司 用于光线追踪渲染的并行相交测试及着色的架构
US8217935B2 (en) * 2008-03-31 2012-07-10 Caustic Graphics, Inc. Apparatus and method for ray tracing with block floating point data
US7616151B1 (en) 2008-06-13 2009-11-10 Raytheon Company Reducing scattering center data using magnitude-based reduction
US7602332B1 (en) 2008-06-13 2009-10-13 Raytheon Company Reducing scattering center data using multi-volume aggregation
US8525826B2 (en) * 2008-08-08 2013-09-03 International Business Machines Corporation System for iterative interactive ray tracing in a multiprocessor environment
US8421801B2 (en) * 2008-09-09 2013-04-16 Caustic Graphics, Inc. Ray tracing using ray-specific clipping
US7592947B1 (en) 2008-09-18 2009-09-22 Raytheon Company Generating radar signatures for multiple objects
US7567205B1 (en) * 2008-09-18 2009-07-28 Raytheon Company Dynamic ray traversing
US7750842B2 (en) * 2008-09-18 2010-07-06 Raytheon Company Parallel processing to generate radar signatures for multiple objects
US7880671B2 (en) * 2008-09-18 2011-02-01 Raytheon Company Electromagnetic (EM) solver using a shooting bouncing ray (SBR) technique
US8963918B2 (en) * 2008-09-30 2015-02-24 Microsoft Corporation Ray tracing on graphics hardware using kd-trees
KR101610194B1 (ko) * 2008-10-15 2016-04-07 삼성전자주식회사 영상처리를 위한 데이터 처리 장치 및 방법
US8749552B2 (en) 2008-10-17 2014-06-10 Imagination Technologies Limited Synthetic acceleration shapes for use in ray tracing
US8363051B2 (en) * 2009-05-07 2013-01-29 International Business Machines Corporation Non-real-time enhanced image snapshot in a virtual world system
US8515092B2 (en) 2009-12-18 2013-08-20 Mattel, Inc. Interactive toy for audio output
US8390508B1 (en) 2010-04-05 2013-03-05 Raytheon Company Generating radar cross-section signatures
US8619078B2 (en) * 2010-05-21 2013-12-31 International Business Machines Corporation Parallelized ray tracing
US8629867B2 (en) 2010-06-04 2014-01-14 International Business Machines Corporation Performing vector multiplication
US8692825B2 (en) 2010-06-24 2014-04-08 International Business Machines Corporation Parallelized streaming accelerated data structure generation
KR101705072B1 (ko) * 2010-09-28 2017-02-09 삼성전자주식회사 영상 처리 장치 및 방법
KR101705581B1 (ko) 2010-09-30 2017-02-22 삼성전자주식회사 데이터 처리 장치 및 방법
US10061618B2 (en) 2011-06-16 2018-08-28 Imagination Technologies Limited Scheduling heterogenous computation on multithreaded processors
WO2013026048A2 (en) * 2011-08-18 2013-02-21 Utherverse Digital, Inc. Systems and methods of virtual world interaction
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US10839598B2 (en) * 2016-07-26 2020-11-17 Hewlett-Packard Development Company, L.P. Indexing voxels for 3D printing
US10628997B2 (en) * 2017-08-24 2020-04-21 Emilio Santos Method for generating three-dimensional models from constrained sketches and an instruction set
US11295509B2 (en) * 2020-06-29 2022-04-05 Imagination Technologies Limited Intersection testing in a ray tracing system using multiple ray bundle intersection tests
US11308683B2 (en) 2020-06-29 2022-04-19 Imagination Technologies Limited Intersection testing in a ray tracing system using ray bundle vectors
US11494969B2 (en) * 2020-08-20 2022-11-08 Sony Interactive Entertainment LLC System and method for accelerated ray tracing with asynchronous operation and ray transformation

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305430A (en) * 1990-12-26 1994-04-19 Xerox Corporation Object-local sampling histories for efficient path tracing
JPH06223198A (ja) * 1993-01-26 1994-08-12 Hitachi Ltd 光線追跡による画像生成装置及び方法
DE4331715C2 (de) 1993-09-17 1997-01-02 Zeiss Carl Fa Shutterbrille
DE4417664C1 (de) 1994-05-20 1994-12-15 Zeiss Carl Fa Vorrichtung mit mindestens zwei benachbart aufgestellten Bildschirm-Monitoren mit unterschiedlichem Display-Modus und Verfahren zu deren Betrieb
GB9424273D0 (en) * 1994-12-01 1995-01-18 Wrigley Adrian M T Improvements in and relating to image constrcution
IL119082A (en) * 1996-08-16 2001-04-30 Virtue Ltd A method for creating graphic characters
US6111582A (en) 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
DE19737449A1 (de) 1997-08-22 1999-02-25 Hertz Inst Heinrich Vorrichtung zum Nachführen eines autostereoskopischen Flachbildschirms
DE19753040C2 (de) 1997-11-19 2001-12-20 Fraunhofer Ges Forschung Anordnung zur Erzeugung eines Eindrucks von 3D-Bildern für die visuelle Wahrnehmung
DE19827590C2 (de) 1998-06-20 2001-05-03 Christoph Grosmann Verfahren und Vorrichtung zur Autostereoskopie
JP3889195B2 (ja) * 1999-02-03 2007-03-07 株式会社東芝 画像処理装置、画像処理システムおよび画像処理方法
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6556200B1 (en) * 1999-09-01 2003-04-29 Mitsubishi Electric Research Laboratories, Inc. Temporal and spatial coherent ray tracing for rendering scenes with sampled and geometry data
US6466227B1 (en) 1999-09-01 2002-10-15 Mitsubishi Electric Research Laboratories, Inc. Programmable architecture for visualizing sampled and geometry data
US6597359B1 (en) 2000-05-17 2003-07-22 Raychip, Inc. Hierarchical space subdivision hardware for ray tracing
US7495664B2 (en) * 2000-06-19 2009-02-24 Mental Images Gmbh Instant ray tracing
US6664961B2 (en) * 2000-12-20 2003-12-16 Rutgers, The State University Of Nj Resample and composite engine for real-time volume rendering
US6741259B2 (en) * 2001-03-30 2004-05-25 Webtv Networks, Inc. Applying multiple texture maps to objects in three-dimensional imaging processes
US7046827B2 (en) * 2002-02-15 2006-05-16 International Business Machines Corporation Adapting point geometry for storing address density
US20030160788A1 (en) 2002-02-28 2003-08-28 Buehler David B. Pixel pruning and rendering apparatus and method
US6868420B2 (en) * 2002-07-31 2005-03-15 Mitsubishi Electric Research Laboratories, Inc. Method for traversing quadtrees, octrees, and N-dimensional bi-trees
US7012604B1 (en) 2002-09-12 2006-03-14 Advanced Micro Devices, Inc. System architecture for high speed ray tracing
CA2507959A1 (en) 2002-11-29 2004-07-22 Bracco Imaging, S.P.A. System and method for displaying and comparing 3d models
US7164420B2 (en) 2003-07-24 2007-01-16 Autodesk, Inc. Ray tracing hierarchy

Also Published As

Publication number Publication date
WO2004021274A2 (de) 2004-03-11
WO2004021274A3 (de) 2004-04-29
AU2003266174A1 (en) 2004-03-19
US7289118B2 (en) 2007-10-30
USRE44347E1 (en) 2013-07-09
AU2003266174A8 (en) 2004-03-19
DE10239672B4 (de) 2005-08-11
US20060066607A1 (en) 2006-03-30
EP1532586A2 (de) 2005-05-25
JP2005536813A (ja) 2005-12-02
DE10239672A1 (de) 2004-03-11

Similar Documents

Publication Publication Date Title
JP4348728B2 (ja) 3次元構造体の2次元写像を作成するための方法及び装置
US10789758B2 (en) Ray tracing in computer graphics using intersection testing at selective resolution
US11790595B2 (en) Method for handling of out-of-order opaque and alpha ray/primitive intersections
US11966737B2 (en) Robust, efficient multiprocessor-coprocessor interface
JP5291798B2 (ja) レイトレーシングシステムアーキテクチャー及び方法
US10810785B2 (en) Method for forward progress tree traversal mechanisms in hardware
KR102080851B1 (ko) 레이 추적의 스케쥴링을 위한 장치 및 방법
US8284195B2 (en) Cooperative utilization of spatial indices between application and rendering hardware
US7996621B2 (en) Data cache invalidate with data dependent expiration using a step value
US20090049452A1 (en) Spawned Message State Determination
KR20080052328A (ko) 광선 추적을 위한 광선-삼각형 충돌 처리 방법 및 장치
US11854141B2 (en) Early release of resources in ray tracing hardware
US20240062452A1 (en) Ray Tracing System Architectures and Methods
EP4254310A1 (en) Memory management for multicore 3-d graphics rendering
EP4254312A1 (en) Memory management for multicore 3-d graphics rendering
GB2611374A (en) Memory management for multicore 3-D graphics rendering
Wang et al. Interactive direct volume rendering on desktop multicore processors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060804

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090611

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090701

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4348728

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130731

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees