[go: up one dir, main page]

JP5063698B2 - レイ・トレーシング画像処理システムにおけるピクセル色の決定方法および画像処理システム - Google Patents

レイ・トレーシング画像処理システムにおけるピクセル色の決定方法および画像処理システム Download PDF

Info

Publication number
JP5063698B2
JP5063698B2 JP2009529653A JP2009529653A JP5063698B2 JP 5063698 B2 JP5063698 B2 JP 5063698B2 JP 2009529653 A JP2009529653 A JP 2009529653A JP 2009529653 A JP2009529653 A JP 2009529653A JP 5063698 B2 JP5063698 B2 JP 5063698B2
Authority
JP
Japan
Prior art keywords
ray
color
primitive
pixel
scaling factor
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.)
Active
Application number
JP2009529653A
Other languages
English (en)
Other versions
JP2010505164A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010505164A publication Critical patent/JP2010505164A/ja
Application granted granted Critical
Publication of JP5063698B2 publication Critical patent/JP5063698B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Landscapes

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

Description

本発明は、一般的にはコンピュータ処理の分野に関し、特にレイ・トレーシング(光線追跡)画像処理システムにおけるピクセル色の決定に関する。
3次元シーンから2次元画像をレンダリング(再現)するプロセスは一般に画像処理と称されている。最新のコンピュータ産業が進化するに連れて画像処理も進化する。画像処理の進化の1つの目標は、3次元シーンの2次元シミュレーションあるいはレンダリングをなるべくリアルにすることである。リアルな画像のレンダリングについての1つの制約は、現代のモニタがピクセルを用いて画像を表示することである。
ピクセルは、モニタ上で照明され得る最小の空間領域である。たいていの最新のコンピュータ・モニタは、画面あるいはレンダリングされるシーンの全体を構成するために数十万又は数百万のピクセルの組み合わせを使用する。個々のピクセルは格子パターンに配列され、全体としてモニタの表示領域全体を覆う。各々のピクセルは、見られる最終的画像をレンダリングするために照明され得る。
ピクセルを使用する2次元モニタ上に実世界(リアルワールド)の3次元シーンをレンダリングするための1つの技術はラスタ化と呼ばれる。ラスタ化は、ベクトル・フォーマットで表された2次元画像(シーン内の幾何学的オブジェクトの数学的表現)を取って、その画像をモニタ上で表示するために個々のピクセルに変換するプロセスである。ラスタ化は図形を迅速に、割合に少量の計算力を用いてレンダリングすることに関しては有効であるけれども、ラスタ化には幾つかの欠点がある。例えば、ラスタ化は光の物理的特性に基づいてはおらず、むしろラスタ化は2次元平面に投影されたシーン内の3次元の幾何学的オブジェクトの形状に基づくので、ラスタ化はしばしばリアリズムの欠如という欠点を有する。更に、ラスタ化でシーンをレンダリングするのに必要とされる計算力は、レンダリングされるべきシーンの複雑さの増大に正比例して増大する。画像処理がより現実的(リアル)になるのに伴って、レンダリングされるシーンもより複雑になる。従って、ラスタ化は複雑さに正比例して増大するので、ラスタ化は画像処理が進化するに連れて困難になる。
実世界の3次元シーンをピクセルを用いる2次元モニタ上にレンダリングするための他の1つの技術はレイ・トレーシング(光線追跡)と呼ばれる。レイ・トレーシング技術は、仮想レイ(光線と同様に振る舞うレイ)の伝播を、コンピュータ・スクリーンにレンダリングされるべき3次元シーンの中に追跡する。該レイは、コンピュータ・スクリーンの背後に座っている観察者の目(単数又は複数)から生じて、コンピュータ・スクリーンを構成するピクセルを3次元シーンの方へ通過する。各々の追跡されるレイはシーンの中へ進み、シーン内のオブジェクト(物体)と交差することができる。レイがシーン内のオブジェクトを横切ったならば、そのレイが照射されている(exposed)色及び光の量、あるいはその欠如、を計算するために該オブジェクトの特性と他の幾つかの寄与因子とが使用される。その後、その追跡されるレイが通過したピクセルの最終的な色を決定するために、それらの計算が使用される。
レイを追跡するプロセスは単一のシーンについて多数回実行される。例えば、画面内の各ピクセルのために単一のレイが追跡され得る。コンピュータ・スクリーンの2次元画面を構成する全てのピクセルの色を決定するために充分な数のレイが追跡されたならば、3次元シーンの2次元合成がコンピュータ・スクリーンで観察者に対して表示され得る。
レイ・トレーシングは、通例、ラスタ化よりリアルに実世界3次元シーンをレンダリングする。それは、レイ・トレーシングが、ラスタ化で行われるように単に3次元形状を2次元平面上に投影するのではなく,光が実世界環境においてどの様に進み振る舞うかをシミュレートするという事実にある程度起因する。従って、レイ・トレーシングを用いてレンダリングされる図形は私たちの目が実世界で見慣れているものをモニタ上により精密に描く。
さらに、レイ・トレーシングは、シーンがより複雑になるのに従ってラスタ化よりも良好にシーンの複雑さの増大に対処する。レイ・トレーシングはシーンの複雑さと共に対数的に増大する。それは、シーンがより複雑になっても同じ数のレイがシーン中に放たれ得るという事実に起因する。従って、レイ・トレーシングは、シーンがより複雑になるとき計算力要件に関してラスタ化が苦しむように苦しむことは無い。
レイ・トレーシングの1つの大きな欠点は、シーンをレンダリングするために多数の計算、従って処理力、が必要とされることである。これは、高速レンダリングが必要とされるときに問題をもたらす。例えば、画像処理システムがゲーム・コンソールなどの動画目的で図形をレンダリング(再現)するときなどがこれにあたる。レイ・トレーシングのために計算要件が増大しているのでリアルに見えるように充分速く動画をレンダリングすることは困難である(リアルな動画は毎秒約20ないし24フレームである)。
従って、レイ・トレーシングを実行するより効率的な技術及び装置に対するニーズが存在する。
本発明の実施態様は、一般的にレイ・トレーシングを実行する方法及び装置を提供する。
本発明の一実施態様に従って、レイ・トレーシング画像処理システムにおいてピクセルの色を決定する方法は、そのピクセルを通して3次元シーン中に1次レイを発するステップと、1次レイにより横切られた第1プリミティブの色値に基づいてそのピクセルについて初期色値を決定するステップと、1次レイにより横切られたプリミティブからシーン中に少なくとも1つの2次レイを発するステップと、2次レイにより横切られた第2プリミティブの色値と1次レイにより横切られた第1プリミティブに関連付けられているスケーリング因子とに基づいてそのピクセルについての色値を更新するステップとを含む。
本発明の他の1つの実施態様に従って、画像処理システムは、メモリ・キャッシュと、ピクセルを通して3次元シーン中にオリジナル・レイを発し、第1リーフ・ノードに達するまで空間インデックスをオリジナル・レイで横断するように構成された第1処理エレメントと、オリジナル・レイ及び第1リーフ・ノードを定義する情報を第1処理エレメントから受け取り、オリジナル・レイにより横切られた第1プリミティブの色に基づいてピクセルに対する第1色寄与を決定し、第1プリミティブに基づいて色寄与の第1スケーリング因子を決定し、オリジナル・レイと第1プリミティブとの交差に基づいて少なくとも1つの2次レイを発し、色寄与の第1スケーリング因子を少なくとも1つの2次レイに関連付ける第2処理エレメントとを含む。
本発明の他の1つの実施態様に従って、コンピュータ可読媒体はプログラムを含み、そのプログラムは、一般的に、ピクセルを通して3次元シーン中に1次レイを発することと、1次レイにより横切られた第1プリミティブの色値に基づいてそのピクセルについて初期色値を決定することと、1次レイにより横切られたプリミティブからシーン中に少なくとも1つの2次レイを発することと、2次レイにより横切られた第2プリミティブの色値と1次レイにより横切られた第1プリミティブに関連付けられているスケーリング因子とに基づいてそのピクセルについての色値を更新することとをコンピュータに実行させる。
本発明の実施態様は、レイ・トレーシング法を用いて画像を処理するときにピクセルの色を更新する方法および装置を提供する。本発明の一実施態様に従って、3次元シーン内でオリジナル(1次)・レイ及び2次レイにより横切られるオブジェクトにスケーリング因子が関連付けられ得る。画像処理システムによって発せられて第1処理エレメントにより空間インデックスを通して追跡されるオリジナル・レイがオブジェクトを横切ったならば、その横切られたオブジェクトの色は、オリジナル・レイが通過したピクセルの色を更新するために使用され得る。さらに、オリジナル・レイが通過したピクセルの色に3次元シーン内の他のオブジェクトが寄与するか否かを判定するために、オリジナル・レイがオブジェクトを横切ったポイントから2次レイが放出され得る。本発明の一実施態様に従って、放出された2次レイを定義する情報は前のレイ(例えば、オリジナル・レイ)により横切られたオブジェクトに関連付けられたスケーリング因子を含むこともできる。前のレイ(例えば、オリジナル・レイ)により横切られたオブジェクトに関連付けられているスケーリング因子を含めることにより、2次レイが横切るオブジェクトからのピクセルへの付加的色寄与が、オリジナル・レイが横切るオブジェクトに起因する該ピクセルへの色寄与から独立に(例えば、後に、あるいは別の処理エレメントにより)計算され得る。
以下では、本発明の実施態様が参照される。しかし、本発明は特定の記述される実施態様に限定されないということが理解されるべきである。その代わりに、以下の特徴およびエレメントの任意の組み合わせは、異なる実施態様に関連してもしなくても、本発明を具体化し実施すると考えられる。さらに、種々の実施態様において本発明は従来技術と比べて多数の利点を提供する。しかし、本発明の実施態様は他の可能な解決策と比べて、かつ、または従来技術と比べて、利点を達成できるけれども、特定の利点が所与の実施態様によって達成されるか否かは本発明を限定しない。従って、以下の側面、特徴、実施態様および利点は、単に実例となるものであって、請求項において明示的に述べられている場合を除いて添付請求項の要素あるいは限定事項とは考えられない。同様に、“本発明”への言及は、本書において開示されている独創的内容の一般化と解されてはならず、また、請求項において明示的に述べられている場合を除いて添付請求項の要素あるいは限定事項と見なされてはならない。
本発明の一実施態様は、コンピュータ・システムと共に用いられるプログラムとして実施される。該プログラムは、(本書に記載されている方法を含む)実施態様の機能を定義し、種々のコンピュータ可読媒体に含まれ得る。実例となるコンピュータ可読媒体は、(i)書き換え不可能な記憶媒体(例えば、CD−ROMドライブにより読み出し可能なCD−ROMディスクのようなコンピュータ内の読み出し専用記憶装置など)に永久的に格納されている情報、(ii)書き換え可能な記憶媒体(例えば、ディスケット・ドライブまたはハードディスク・ドライブ内のフレキシブル・ディスクなど)に格納されている可変情報、および(iii)コンピュータまたは電話ネットワークを通すなどして無線通信を含む通信媒体によりコンピュータに伝えられる情報を含むが、これらに限定されない。後者の実施態様は、インターネットおよび他のネットワークからダウンロードされる情報を特に含む。この様なコンピュータ可読媒体は、本発明の機能を指示するコンピュータ可読命令を担うときには、本発明の実施態様を代表する。
一般に、本発明の実施態様を実施するために実行されるルーチンは、オペレーティング・システム、または特定のアプリケーション、コンポーネント、プログラム、モジュール、オブジェクトまたは命令のシーケンスの一部分であり得る。本発明のコンピュータ・プログラムは、通例、ネイティブのコンピュータによって機械可読フォーマットに、従って実行可能な命令に変換される多数の命令から構成される。また、プログラムは、プログラムに局所的に存在するかあるいはメモリまたは記憶装置上にある変数およびデータ構造も含む。さらに、以下で記載される種々のプログラムは、本発明の特定の実施態様でそれらがそのために実行されるところのアプリケーションに基づいて識別され得る。しかし、後に続く特定のプログラム用語は単に便宜上用いられているということが認識されるべきであり、従って本発明は、その様な用語により特定され、かつ、または示唆される特定のアプリケーションだけに用いられることに限定されるべきではない。
代表的なプロセッサ・レイアウトと通信ネットワーク
図1は、本発明の一実施態様に従う、マルチ・コア処理エレメント100を示す。マルチ・コア処理エレメント100は複数の基本スループット・エンジン105(Basic Throughput Engine(BTE))を含む。BTE105は、複数の処理スレッドとコア・キャッシュ(例えば、L1キャッシュ)とを含むことができる。各BTE内に配置された処理スレッドは、共有されるマルチ・コア処理エレメント・キャッシュ110(例えば、L2キャッシュ)へアクセスすることができる。
BTE105は、複数の受信箱(inbox)115へもアクセスできる。受信箱115はメモリ・マップ・アドレス空間(memory mapped address space)であり得る。受信箱115は、BTE105の各々の中に配置されている処理スレッドにマッピングされ得る。BTE内に配置された各スレッドは、メモリ・マップ受信箱(memory mapped inbox)と、他のメモリ・マップ受信箱115の全てへアクセスできる。受信箱115は、BTE105により使用される短いレイテンし(遅延時間)、高帯域幅通信ネットワークを構成する。
BTEは、互いに通信しデータ処理作業をBTE間で再分配するために受信箱115をネットワークとして使用することができる。或る実施態様については、例えばBTE105による処理の結果を受け入れるために、通信網において別々の送信箱(outbox)が使用され得る。他の実施態様については、受信箱115は送信箱としても作用することができて、例えば1つのBTE105は、処理機能の結果を、その結果を使用する他のBTE105の受信箱に直接書き込む。
画像処理システムの総合的性能は、BTEが作業をどのくらい良く分割して再分配できるかに結び付けられ得る。受信箱115のネットワークは、共有されるマルチ・コア処理エレメント・キャッシュ110をフレーム間コヒーレンシー(一貫性)を持たないBTE通信データ・パケットで壊すこと無く作業を集めて他のBTEに分配するために、使用され得る。1フレームあたりに数百万の三角形をレンダリングできる画像処理システムは、この様に結合された多数のBTE105を含むことができる。
本発明の一実施態様では、1つのBTE105のスレッドはワークロード・マネージャに割り当てられ得る。画像処理システムは、3次元シーンから2次元画像をレンダリング(再現)するために種々のソフトウェアおよびハードウェア・コンポーネントを使用することができる。本発明の一実施態様では、画像処理システムは、該画像処理システムにより発せられたレイで空間インデックスを横断するためにワークロード・マネージャを使用することができる。空間インデックスは、図4に関して以下でさらに記載されるように、割合に大きな3次元シーンをより小さな境界ボリュームに分割するために使用されるツリー型データ構造として実現され得る。画像処理のためにレイ・トレーシング法を用いる画像処理システムは、レイ−境界ボリューム交差(ray−bounding volume intersection)を迅速に決定するために空間インデックスを使用することができる。本発明の一実施態様では、ワークロード・マネージャは、空間インデックスを用いることによってレイ−境界ボリューム交差試験を実行することができる。
本発明の一実施態様では、マルチ・コア処理エレメント100上のマルチ・コア処理エレメントBTE105の他のスレッドはベクトル・スループット・エンジン(VTE)であり得る。ワークロード・マネージャがレイ−境界ボリューム交差を判定した後、該ワークロード・マネージャは、受信箱115を介して、該レイを複数のベクトル・スループット・エンジンのうちの1つへ発する(送る)ことができる。ベクトル・スループット・エンジンは、その後、該レイが該境界ボリュームに含まれるプリミティブ(primitive)を横切るか否かを判定することができる。ベクトル・スループット・エンジンは、該レイが通過したピクセルの色を決定することに関連する動作を実行することもできる。
図2は、本発明の一実施態様に従う、マルチ・コア処理エレメント200のネットワークを示す。図2は、マルチ・コア処理エレメント100のBTEのうちの1つのスレッドがワークロード・マネージャ205である本発明の一実施態様をも示している。本発明の一実施態様に従って、マルチ・コア処理エレメント200のネットワークの中の各マルチ・コア処理エレメント2201−Nは1つのワークロード・マネージャ2051−Nを含むことができる。本発明の一実施態様に従って、マルチ・コア処理エレメント200のネットワークの中の各マルチ・コア処理エレメント2201−Nは複数のベクトル・スループット・エンジン(VTE)210も含むことができる。
本発明の一実施態様に従って、ワークロード・マネージャ(WM)2051−Nは、他のマルチ・コア処理エレメント2201−Nの他のワークロード・マネージャ2051−Nまたはベクトル・スループット・エンジン(VTE)210あるいはその両方と通信するために高速バス225を使用することができる。ベクトル・スループット・エンジン210の各々は、他のベクトル・スループット・エンジン210または他のワークロード・マネージャ2051−Nと通信するために高速バス225を使用することができる。ワークロード・マネージャ・プロセッサ205は、画像処理関連タスクを集めて他のワークロード・マネージャ2051−Nに分配し、かつ、または、タスクを他のベクトル・スループット・エンジン210に分配するために、高速バス225を使用することができる。高速バス225の使用は、ワークロード・マネージャ2051−Nがワークロード・マネージャ通信に関連するデータ・パケットでキャッシュ230に影響を及ぼすことなく通信することを可能にする。
代表的な3次元シーン
図3は、画像処理システムによりレンダリングされるべき代表的な3次元シーン305である。3次元シーン305の中にオブジェクト320が存在し得る。図3のオブジェクト320は、異なる幾何学的形状のオブジェクトである。図3では4つのオブジェクト320だけが示されているが、典型的な3次元シーン内のオブジェクトの数は、もっと多いことも少ないこともある。一般に、3次元シーンは、図3に示されているものより多くのオブジェクトを有するであろう。
図3に見られるように、オブジェクトは様々な幾何学的形状およびサイズのものである。例えば、図3の1つのオブジェクトはピラミッド320である。図3の他のオブジェクトは箱320−320である。多くの最新の画像処理システムでは、オブジェクトは、しばしば、より小さな幾何学的形状(例えば、正方形、円、三角形など)に分解される。そのとき、より大きなオブジェクトは幾つかのより小さな簡単な幾何学的形状によって表される。これらのより小さな幾何学的形状は、しばしば、プリミティブ(primitive)と称される。
シーン305の中に光源325,325も示されている。これらの光源は、シーン305内に位置するオブジェクト320を照明することができる。さらに、シーン305内での光源325とオブジェクト320との位置により、光源はシーン305内のオブジェクト上に陰影を投じさせる。
3次元シーン305は、画像処理システムによって2次元画像にレンダリングされ得る。画像処理システムは2次元画像をモニタ310上に表示させることもできる。モニタ310は、最終的2次元画像をレンダリングするために様々な色の多数のピクセル330を使用することができる。
3次元シーン320を2次元画像にレンダリングするために使用される1つの方法はレイ・トレーシングと呼ばれる。レイ・トレーシングは、観察者315の視点から3次元シーン320中にレイを“発する”あるいは“放つ”画像処理システムによって達成される。レイは、光線と同様の特性および挙動を有する。
観察者315の位置から生じて3次元シーン305を横断する1つのレイ340が図3に見られる。レイ340が観察者315から3次元シーン305へと横断するとき、レイ340は、画像処理システムによって最終的な2次元画像がレンダリングされる平面を通過する。図3においては、この平面はモニタ310によって表される。その平面、すなわちモニタ310、をレイ340が通過するポイントはピクセル335によって表されている。
先に簡単に論じられたように、たいていの画像処理システムは、モニタ310上に最終的シーンをレンダリングするために数千(数百万ではないとしても)のピクセルのグリッド330を使用する。グリッド330はフレームと称され得る。各々のピクセルは、モニタ310上に最終的な合成2次元画像をレンダリングするために異なる色を表示することができる。3次元シーンから2次元画像をレンダリングするためにレイ・トレーシング画像処理法を使用する画像処理システムは、発せられた1つまたは複数のレイが3次元シーン内で出会う色を計算する。そのとき画像処理シーンは、レイが観察者から3次元シーンへの途上に通過したピクセルに、レイが出会った色を割り当てる。
ピクセルあたりに発せられるレイの数は一様でない。レンダリングされる特定のシーンのために、或るピクセルについては多くのレイが発せられ得る。その場合、そのピクセルの最終的な色は、そのピクセルのために発せられたレイの全てからの各々の色寄与により決定される。他のピクセルについては、2次元画像におけるピクセルの結果の色を決定するために単一のレイだけが発せられ得る。或るピクセルについては画像処理システムによってレイがまったく発せられない場合にはその色は画像処理システム内のアルゴリズムによって決定され、近似され、あるいは割り当てられ得る。
2次元画像におけるピクセル335の最終的な色を決定するために、画像処理システムはレイ340がシーン内のオブジェクトを横切るか否かを判定しなければならない。もしレイがシーン内のオブジェクトを横切らなければ、それにはデフォルト背景色(例えば、昼または夜の空を表す青または黒)が割り当てられ得る。逆に、レイ340が3次元シーンを横断するとき、レイ305はオブジェクトに当たるかもしれない。レイがシーン内のオブジェクトに当たるとき、レイが通過するピクセルにそのオブジェクトの色が割り当てられ得る。しかし、オブジェクトの色は、ピクセルに割り当てられる前に決定されなければならない。
オリジナル・レイ340が当たるオブジェクトの色には多くの因子が寄与し得る。例えば、3次元シーン内の光源はオブジェクトを照明することができる。さらに、オブジェクトの物理的特性はオブジェクトの色に寄与することができる。例えば、もしオブジェクトが反射性または透明であるならば、そのオブジェクトの色に他の非光源オブジェクトが寄与し得る。
3次元シーン内の他のオブジェクトからの効果を判定するためにオリジナル・レイがオブジェクトを横切ったポイントから2次レイが発せられ得る。例えば、オリジナル・レイ340がオブジェクトを横切ったポイントへの光の寄与を判定するためにシャドウ・レイ341が発せられ得る。もしオブジェクトが半透明特性を有するならば、画像処理システムは、どんな色または光がオブジェクトのボディを通して伝播されるかを判定するために伝播されるかあるいは屈折させられたレイ344を発することができる。もしオブジェクトが反射特性を有するならば、画像処理システムは、オブジェクト320上にどんな色または光が反射されるかを判定するために、反射されたレイを発することができる。
1つのタイプの2次レイはシャドウ・レイであり得る。各シャドウ・レイは、オリジナル・レイとオブジェクトとの交差のポイントから、3次元シーン305内の光源まで追跡され得る。もし該レイが光源に到達する前に他のオブジェクトに出会うこと無く光源に到達したならば、光源は、オリジナル・レイが当たったオブジェクトの、オリジナル・レイが当たったポイントを照明する。
例えば、シャドウ・レイ341は、オリジナル・レイ340がオブジェクト320を横切ったポイントから発せられて光源325に向かう方向に横断することができる。シャドウ・レイ341は、シーン305内の他のオブジェクト320と出会うこと無く光源325に到達する。従って、光源325は、オブジェクト320の、オリジナル・レイ340が横切ったポイントを照明する。
他のシャドウ・レイは、オブジェクトのオリジナル・レイが当たったポイントと、3次元シーン内で他のオブジェクトにより遮られた光源との間に自分たちの経路を有することができる。もしオブジェクト上のオリジナル・レイが当たったポイントと光源との間の経路を遮断しているオブジェクトが不透明であるならば、光源は、オブジェクトの、オリジナル・レイが当たったポイントを照明しないであろう。従って、光源は、オリジナル・レイの色に寄与することができず、従って2次元画像内でレンダリングされるべきピクセルの色にも寄与することができない。しかし、もしオブジェクトが半透明あるいは透明であれば、光源は、オブジェクトのオリジナル・レイが当たったポイントを照明することができる。
例えば、シャドウ・レイ341は、オリジナル・レイ340がオブジェクト320と交差したポイントから発せられて、光源325に向かう方向に横断することができる。この例では、シャドウ・レイ341の経路はオブジェクト320によって遮断される。もしオブジェクト320が不透明ならば、光源325は、オブジェクト320の、オリジナル・レイ340が横切ったポイントを照明しない。しかし、もし、オブジェクト320がシャドウ・レイに対して半透明または透明であるならば、光源325はオブジェクト320の、オリジナル・レイ340が横切ったポイントを照明することができる。
他の1つのタイプの2次レイは、伝播あるいは屈折させられるレイである。屈折させられるレイは、もしオリジナル・レイと交差したオブジェクトが透明または半透明の特性(例えば、ガラス)を有するならば画像処理システムによって発せられ得る。屈折させられたレイは、オリジナル・レイがオブジェクトに当たった角度に関して或る角度でオブジェクトを横断する。例えば、屈折させられたレイ344は、オリジナル・レイ340が横切ったオブジェクト320を横断するように見える。
他の1つのタイプの2次レイは伝播あるいは屈折させられるレイである。もしオリジナル・レイと交差したオブジェクトが反射特性(例えば、金属仕上げ)を有するならば、オブジェクト上にどんな色または光が反射され得るのかを判定するために、反射されたレイが画像処理システムによって発せられるであろう。反射されたレイは、オリジナル・レイがオブジェクトを横切った角度に関して或る角度をなしてオブジェクトから遠ざかる。例えば、オリジナル・レイ340が横切ったオブジェクト320上にどんな色または光が反射され得るのかを判定するために、反射されたレイ343が画像処理システムによって発せられ得る。
全ての2次レイ(例えば、シャドウ・レイ、伝播されたレイ、反射されたレイ、など)の色および光の総寄与は、オリジナル・レイが通過したピクセルの最終の色をもたらすであろう。
代表的なKD−ツリー
レイ・トレーシングを実行するときに出会う1つの問題は、発せられたレイが、レンダリングされるべきシーンの中のオブジェクトを横切るか否かを速やかにかつ効率的に判定することである。レイ交差判定をより効率的にする当業者に知られている1つの方法は、空間インデックスを使用することである。空間インデックスは3次元のシーンあるいは世界を、プリミティブを含むかもしれないし含まないかもしれないより小さなボリューム(3次元シーン全体よりは小さい)に分割する。画像処理システムは、レイがより小さなボリュームに含まれているプリミティブを横切り得るか否かを判定するために、これらのより小さなボリュームの既知の境界を使用することができる。もしレイがプリミティブを含むボリュームを横切るならば、そのボリューム内に含まれるプリミティブの既知の位置および寸法と対照して該レイの軌跡を用いてレイ交差試験を実行することができる。もしレイが特定のボリュームを横切らなければ、そのボリューム内に含まれているプリミティブに対してレイ−プリミティブ交差試験を実行する必要は無い。さらに、もしレイがプリミティブを含まない境界ボリュームを横切るならば、その境界ボリュームに対してレイ−プリミティブ交差試験を実行する必要は無い。従って、必要であるかもしれないレイ−プリミティブ交差試験の数を減らすことによって、空間インデックスの使用はレイ・トレーシング画像処理システムの性能を大幅に向上させる。種々の空間インデックス加速データ構造の幾つかの例は、オクツリー(octree)、k次元ツリー(kd−ツリー)、およびバイナリ空間分割ツリー(BSPツリー)である。幾つかの異なる空間インデックス構造が存在するけれども、本発明の実施態様の記述を平易にするために、以下の例ではkd−ツリーが使用される。しかし、当業者は、種々のタイプの空間インデックスのいずれにも本発明の実施態様が応用され得ることを容易に認識するであろう。
kd−ツリーは、シーンまたは空間全体をより小さなボリュームに分割するために軸整列境界ボリュームを使用する。すなわち、kd−ツリーは、シーンに含まれる3次元空間を、既知の軸に平行な分割平面の使用を通じて分割することができる。分割平面は、より大きな空間をより小さな境界ボリュームに分割する。それらのより小さな境界ボリュームは全体としてシーン内の空間全体を構成する。より大きな境界ボリュームを2つのより小さな境界ボリュームに分割する(分ける)決定は、画像処理システムによってkd−ツリー構成アルゴリズムの使用を通じて行われ得る。
境界ボリュームをより小さなボリュームに何時分割するかを決定するための1つの基準は、その境界ボリュームに含まれているプリミティブの数であり得る。すなわち、境界ボリュームが所定閾値より多くのプリミティブを含んでいる限り、ツリー構成アルゴリズムは、より多くの分割平面を描くことによってボリュームを分割し続けることができる。境界ボリュームをより小さなボリュームに何時分割するかを決定するための他の1つの基準は、境界ボリュームに含まれる空間の量であり得る。さらに、境界ボリュームを分割し続ける決定は、境界ボリュームを生じさせる平面が何個のプリミティブを横切り得るかに基づくこともできる。
シーンの分割は、ノード、ブランチおよびリーフから構成されるバイナリ・ツリー構造により表すことができる。ツリー内の各内部ノードは割合に大きな境界ボリュームを表すことができるが、ノードは、その割合に大きな境界ボリュームの分割平面による分割の後に結果として生じる2つの割合に小さな分割されたボリュームを表すことのできるサブ・ノードへのブランチを含むことができる。軸整列kd−ツリーでは、各内部ノードは、他のノードへのブランチを2つだけ含むことができる。内部ノードは1つまたは2つのリーフ・ノードへのブランチ(すなわち、ポインタ)を含むことができる。リーフ・ノードは、より小さなボリュームにそれ以上細分されなくてプリミティブへのポインタを含むノードである。内部ノードは、さらに細分される他の内部ノードへのブランチをも含むことができる。内部ノードは、分割平面がどんな軸に沿って描かれかつその軸に沿って該分割平面が何処に描かれたかを判定するために必要とされる情報をも含むことができる。
代表的境界ボリューム
図4の(A)−(C)は、画像処理システムによってレンダリングされるべき2次元空間と、対応するkd−ツリーとを示す。簡単のために、kd−ツリーの構築を説明するために2次元空間が使用されるけれども、kd−ツリーは3次元シーンを表すためにも使用され得る。図4の(A)−(C)の2次元説明図では、分割平面の代わりに分割線が示され、3次元構造で使用される境界ボリュームの代わりに境界エリアが示されている。しかし、当業者は、これらの概念がオブジェクトを含む3次元シーンに容易に応用され得ることを速やかに認識するであろう。
図4の(A)は、モニタ310で表示されるべき最終の画像においてレンダリングされるべきプリミティブ410を含む2次元シーン405を示す。シーンのボリューム全体を表す最大のボリュームは、境界ボリューム1(BV)に囲まれている。対応するkd−ツリーにおいて、これは、ルート・ノードあるいは世界ノードとしても知られているトップ・レベル・ノード450により表すことができる。画像処理システムの一実施態様では、境界ボリュームが例えば2つより多くのプリミティブを含むときに画像処理システムは境界ボリュームをより小さな境界ボリュームに分割し続けることができる。前記のように、境界ボリュームをより小さな境界ボリュームに分割し続ける決定は多くの因子に基づくことができるが、この例では説明を容易にするために、境界ボリュームを分割し続ける決定はプリミティブの数だけに基づく。図4の(A)に見られるように、BVは6個のプリミティブを含み、従ってkd−ツリー構成アルゴリズムはBVをより小さな境界ボリュームに分割することができる。
図4の(B)は、図4の(A)に示されているのと同じ2次元シーン405を示す。しかし、図4の(B)ではツリー構成アルゴリズムはBVを2つのより小さな境界ボリュームBVおよびBVに分割している。BVの分割は、x軸に沿ってポイントxで分割平面SP415を描くことによって、達成された。BVのこの分割は、kd−ツリーにおいても、内部のあるいは親のノードBV450の下のBVおよびBVにそれぞれ対応する2つのノード455および460として表される。BVを表す内部ノードは、今、BVの下の2つのノード(例えば、BVおよびBV)へのポインタ、どの軸に沿って分割平面が描かれたか(例えば、x軸)、その軸に沿って何処で該分割平面が描かれたか(例えば、ポイントxで)というような情報(これらに限定されない)を記憶することができる。
kd−ツリー構成アルゴリズムは、境界ボリュームBVを、それが所定閾値より多くの(例えば、2つより多くの)プリミティブを含んでいるので、分割し続けることができる。しかし、境界ボリュームBVはその数より少ないかあるいは等しい数のプリミティブ(例えば、2つのプリミティブ410だけ)を含んでいるので、kd−ツリー構成アルゴリズムは境界ボリュームBVを分割し続けることはできない。BVのような、それ以上分割あるいは細分されないノードは、リーフ・ノードと称される。
図4の(C)は、図4の(B)に示されているのと同じ2次元シーン405を示す。しかし、図4Cでは、kd−ツリー構成アルゴリズムはBVを2つのより小さな境界ボリュームBVおよびBVに分割している。kd構成アルゴリズムは、y軸に沿ってポイントyで分割平面を用いてBVを分割している。BVは2つのサブ・ノードに分割されているので、それはこの時点で内部ノードと称され得る。BVの分割も、kd−ツリーにおいて、BVおよびBVにそれぞれ対応する2つのリーフ・ノード465および470として表される。BVおよびBVは、これらが表すボリュームがより小さな境界ボリュームにさらに分割されないので、リーフ・ノードである。2つのリーフ・ノードBVおよびBVは、kd−ツリーにおいて分割された境界ボリュームを表す内部ノードBVの下に置かれている。
BVを表す内部ノードは、2つのリーフ・ノード(すなわち、BVおよびBV)へのポインタ、どの軸に沿って分割平面が描かれたか(すなわち、y軸)、その軸に沿って何処で該分割平面が描かれたか(すなわち、ポイントyで)というような情報(これらに限定されない)を記憶することができる。
kd−ツリー構成アルゴリズムは、この時点で、境界ボリュームを分割するのをやめることができる。なぜならば、シーン内に位置する全ての境界ボリュームが、1つの境界ボリュームに囲まれることのできる最大所定数より少ないかまたは等しい数のプリミティブを含むからである。リーフ・ノードは、各リーフが表す境界ボリュームの中に囲まれているプリミティブへのポインタを含むことができる。例えば、リーフ・ノードBVはプリミティブ410へのポインタを含むことができ、リーフ・ノードBVはプリミティブ410へのポインタを含むことができ、リーフ・ノードBVはプリミティブ410へのポインタを含むことができる。
レイ・トレーシング画像処理システムは、空間インデックス(kd−ツリー)を横断するためにワークロード・マネージャ205を使用することができる。kd−ツリーを横断することは、レイがサブ・ノード内に含まれているプリミティブを横切るか否か判定するために取るべきあるいは進むべき、kd−ツリーのより下のレベルのノード(サブ・ノード)へのブランチを選択することを含み得る。ワークロード・マネージャ205は、kd−ツリーを横断しあるいは通過するために、発せられたレイの座標および軌跡を使用することができる。レイ−境界ボリューム交差試験を実行することにより、ワークロード・マネージャ205は、レイがkd−ツリー構造内のノードにより表される境界ボリュームの平面を横切るか否かを判定することができる。もしレイがプリミティブだけを含む境界ボリューム(すなわち、リーフ・ノード)を横切るならば、ワークロード・マネージャ205は、そのレイおよび関連する情報を、レイ−プリミティブ交差試験のためにベクトル・スループット・エンジン(VTE)210に送ることができる。レイ−プリミティブ交差試験は、レイが境界ボリューム内のプリミティブを横切るか否か判定するために実行され得る。この方法は、1つのレイについてシーン内に含まれる各プリミティブに対してレイ−プリミティブ交差試験を実行するのに比べて、レイがシーン内のオブジェクトを横切るか否か判定するために、より少数のレイ−プリミティブ交差試験が必要とされるという結果をもたらす。
結果として得られたkd−ツリー構造、あるいは他の空間インデックス構造は、プロセッサ・キャッシュ230に格納され得る。kd−ツリーと、kd−ツリーを含む対応するデータのサイズとは、プロセッサ・キャッシュ230に格納されるべく最適化され得る。kd−ツリーをプロセッサ・キャッシュ230に格納することは、レイが画像処理システムにより発せられるたびにメモリからkd−ツリーを取り出すことを必要とせずに、ワークロード・マネージャが画像処理システムにより発せられたレイでkd−ツリーを横断することを可能にすることができる。
ピクセル色累積(color accumulation)
本発明の一実施態様に従って、画像処理システムによって時間に関して前に3次元シーン内に発せられたレイが、2次レイに起因する全ての色寄与(例えば、反射と屈折とに起因する)が計算されたか否かに関わらず、ピクセルの色に寄与し得るように、色寄与のスケーリング因子を用いるピクセル色累積アルゴリズムが使用され得る。
図3を参照して記載されたように、3次元シーンからレンダリングされる最終的2次元画像は、数百万ではないとしても数千のピクセルを含み得る。画像処理システムは、ピクセルを通して3次元シーンの中へ、該ピクセルに割り当てる色を決定するために、レイを発することができる。レイが3次元シーン内のオブジェクトに当たったとき、レイが発せられた後にレイが通過したピクセルの色を決定するためにそのオブジェクトの色が使用され得る。さらに、3次元シーン内の他のオブジェクト(1次レイから放出された2次レイが当たった)も該ピクセルの色に寄与することができる。
例えば、図5は、オリジナル・レイ540が3次元シーン505の中に発せられることを示している。オリジナル・レイ540は、視点515から発せられて、3次元シーン505の中に進んでいくとき、ピクセル535を横断する。ピクセル535は、画像処理システムによってレンダリングされるべき最終の2次元画像またはフレーム510の一部であり得る。オリジナル・レイ540が3次元シーン505を横断していくとき、オリジナル・レイ540は第1オブジェクト545のポイントAに当たりあるいはポイントAを横切ることができる。横切られた第1オブジェクト545の色は、オリジナル・レイ540が通過したピクセル535の色を決定するために画像処理システムによって使用され得る。さらに、横切られたオブジェクト545が或る特性を有するならば、他のオブジェクト(例えば、550,560)もピクセル535の色に寄与することができる。例えば、オブジェクト545は、他のオブジェクト(例えば、550、560)に、横切られたオブジェクト545の、オリジナル・レイ540が横切ったポイント(A)の色に対して寄与させることのできる反射特性(例えば、鏡のような仕上げ)または屈折特性(例えば、半透明)あるいはその両方を持つことができる。交差ポイント(A)の色の寄与は、オリジナル・レイ540が通過したピクセル535の色を変化させることができる。
オリジナル・レイ540により横切られたオブジェクト540の反射または屈折特性に起因して他のオブジェクトがピクセルに色を与えるか否か判定するために画像処理システムによって2次レイ(例えば、5401−3)が発せられ得る。レイ・トレーシング法を用いる画像処理システムは、リアルな2次元画像をレンダリングするために全ての2次レイからの色の寄与を計算することができる。
図4に関して上で記載されたように、レイ・トレーシング法を用いる画像処理システムでは、ワークロード・マネージャ(WM)205は、レイがリーフ・ノードを横切るか否か判定するために空間インデックス(例えば、kd−ツリー)を横断することができる。レイがプリミティブだけを含む境界ボリューム(すなわち、リーフ・ノード)を横切るならば、ワークロード・マネージャ205は、そのレイを定義する情報と、その横切られたリーフ・ノードを定義する情報とを、レイ−プリミティブ交差試験のためにベクトル・スループット・エンジン(VTE)210に送ることができる。レイ−プリミティブ交差試験は、レイがリーフ・ノードにより画定される境界ボリュームの中のプリミティブを横切るか否かを判定するために実行され得る。レイ−プリミティブ交差試験を実行するほかに、ベクトル・スループット・エンジン210は、レイが確かにプリミティブを横切ると判定した後、レイが通過したピクセルに与えられるべき該プリミティブの交差ポイントにおける色を判定することができる。
さらに、ベクトル・スループット・エンジン210は、横切られたオブジェクトの表面特性(例えば、反射性、屈折性)に基づいて1つまたは複数の2次レイを発しあるいは放出することができる。ベクトル・スループット・エンジン210は、2次レイのための軌跡を計算して該レイをワークロード・マネージャに空間インデックスを通しての横断のために送ることによって、2次レイを放出することができる。ワークロード・マネージャ(WM)205は空間インデックスを通して該2次レイを追跡することができ、ベクトル・スループット・エンジン210は該2次レイが3次元シーン内のオブジェクト(プリミティブ)を横切るか否か判定するために計算を行うことができる。さらに、もし該2次レイが3次元シーン内のオブジェクトを横切るならば、ベクトル・スループット・エンジン210は、オリジナル・レイが通過したピクセルに対してそのオブジェクトがどんな色を与えるかを計算することができる。
2次レイからピクセルへの色寄与は、一連の以前のレイにより横切られた1つまたは複数のオブジェクトの特性に依存する。一連の以前のレイは、2次レイを放出させた、2次レイより前のレイの全てであり得る。
例えば、2次レイ540からの図5に示されているピクセル535への色寄与は、該2次レイを放出させた該2次レイより前のレイのシリーズ(すなわち、レイ540、レイ540、およびレイ540)により横切られたオブジェクト(すなわち、オブジェクト1、オブジェクト2、およびオブジェクト3)の特性に依存する。
ピクセルの色を決定する1つの方法は、ピクセル535に関連するオリジナル・レイと2次レイの全てとを空間インデックスを通して移動させ、それらの、ピクセル535に対する色寄与を、フレーム510内の第2のあるいは異なるピクセルを通して次のオリジナル・レイを発する前に、計算することによって該ピクセルの最終の色を計算することであり得る。この様に、2次レイが依存するオブジェクトの特性はメモリ(例えば、キャッシュまたはローカル・データ・レジスタ)に存在し、後に放出された各2次レイについて2次レイ色寄与を決定するために使用され得る。
しかし、オリジナル・レイとその後の2次レイとから放出され得る2次レイの数が多く、各2次レイの色寄与を決定するために必要とされる計算の数が多いために、他のレイを3次元シーン中に発するのを待つことは、処理エレメント(例えば、ワークロード・マネージャ205またはベクトル・スループット・エンジン210)が2次レイ関連の計算の多数の暫定的な結果をメモリ内に不必要に維持することを必要とする。さらに、2次レイの全てが空間インデックスを通して通過させられるまで他のレイを3次元シーン中に発するのを待つことは、処理エレメントが割合に長い時間にわたって待つことを必要とし得る。従って、3次元シーンから2次元画像をレンダリングするのに必要な合計の時間が増大し、レイ・トレーシング画像処理システムの性能が低下する可能性がある。
しかし、本発明の実施態様に従って、ピクセルの色を決定する他の1つの方法は、レイが3次元シーン内でオブジェクトを横切ったときにピクセルの色を更新あるいは累積(集積)することであり得る。レイが3次元シーン内のオブジェクトを横切るときにピクセルの色を更新するために、2次レイと3次元シーン内のオブジェクトとに色寄与のスケーリング因子を関連付けることができる。以下でさらに記載されるように、色寄与のスケーリング因子は、前に横切られたオブジェクトの特性に依存する計算が、前に横切られたオブジェクトに関連する計算から独立して計算されることを可能にし得る。従って、ピクセルの色を決定するために計算の全てを終えるのとは著しく違って、ピクセルの色はレイが3次元シーン内のオブジェクトを横切るときに更新され得る。
2次レイに起因するピクセルへの色寄与を決定するために独立の計算を可能にすることによって(すなわち、色寄与のスケーリング因子を用いることにより)、計算は別々の処理エレメントによって実行され得る。さらに、本発明の実施態様に従って、2次レイからの色寄与が別々の処理エレメントによって計算されるので、(例えばフレーム・バッファに格納されている)ピクセルの色を別々の処理エレメントが更新することができる。従って、1つの処理エレメントがピクセルへの全ての2次レイからの色寄与を決定することによってそのピクセルの最終の色を決定するのとは著しく違って、該ピクセルに割り当てる色を決定するために全ての2次レイが3次元シーン505を通して追跡されるまで待つことを必要とせずに複数の処理エレメントによって2次レイからの色寄与が実行され得る。この方法は、ピクセルの最終の色を決定するためにより少ない時間を必要とすることができ、従ってレイ・トレーシング画像処理システムの性能を改善することができる。
図6は、本発明の一実施態様に従う、オリジナル・レイおよび2次レイが2次元画像オブジェクトを横切ることに起因するピクセル535の色を累積する方法600を示すフローチャートを示す。方法600は、ステップ605から始まり、このときレイ・トレーシング画像処理システムは3次元シーン505中にオリジナル・レイ540を発する。該レイは3次元シーン505の中に発せられるので、該レイはオリジナル・レイと称され得る。これは、3次元シーン505の中の、オリジナル・レイまたは2次レイがオブジェクトに当たるポイントから発せられあるいは放出され得る2次レイとは対照的である。
オリジナル・レイ540がシーン中に発せられるとき、画像処理システムは色寄与のスケーリング因子をオリジナル・レイ540に関連付けることができる。これは、2次レイとは著しく違って、3次元シーン中に発せられるオリジナル・レイであるから、スケーリング因子は例えば1すなわち100%であり得る。ステップ630に関して後に説明されるように、横切られたオブジェクトから発せられる2次レイ(例えば、5401−3)については色寄与のスケーリング因子は異なり得る。オリジナル・レイ540が3次元シーン505の方へ行くときに通過したピクセル535を定義する情報もオリジナル・レイ540に関連付けられることができる。
次にステップ610で画像処理システムは空間インデックス(例えば、kd−ツリー)を通してオリジナル・レイ540を追跡するためにワークロード・マネージャ205を使用することができる。ワークロード・マネージャ205は、リーフ・ノード(すなわちプリミティブだけを含む境界ボリュームを画定するノード)に達するまで空間インデックスを通して該レイを追跡し続けることができる。
リーフ・ノードに達した後、ステップ615で、ワークロード・マネージャ205は、レイ540を定義する情報(例えば、軌跡、色寄与のスケーリング因子、ピクセル535を定義する情報、など)をレイ−プリミティブ交差試験のためにベクトル・スループット・エンジン210に送ることができる。複数のワークロード・マネージャ2051−nと複数のベクトル・スループット・エンジン2101−nとを使用する画像処理システムでは、オリジナル・レイ540をリーフ・ノードまで追跡したワークロード・マネージャは、レイ情報を例えば複数の受信箱115と高速バス225とを介して複数のベクトル・スループット・エンジン2101−nのうちのいずれかに送ることができる。
ベクトル・スループット・エンジン210がレイ情報を受け取った後、ステップ620でベクトル・スループット・エンジン210はレイ−プリミティブ交差試験を実行することができる。レイ−プリミティブ交差試験の結果に基づいて、ベクトル・スループット・エンジン210はレイ540がリーフ・ノード内に位置するプリミティブを横切ったか否か判定することができる。レイ540がリーフ・ノードに含まれる単一のプリミティブを横切ったとこの時点で判定されたとしても、レイ540は複数のプリミティブを横切ったかも知れず、その場合には、ベクトル・スループット・エンジン210は視点515から横切られたプリミティブまでの距離を判定することによってどのプリミティブが最初に横切られたのかを判定することができ、その場合、最短距離が最初に横切られたプリミティブであり、従って見えるプリミティブ(すなわち、ピクセル535に色を与えるプリミティブ)である。
もしステップ625でレイ540がリーフ・ノードに含まれるどのプリミティブも横切らなかったとベクトル・スループット・エンジン210が判定したならば、画像処理システムはステップ630に進むことができ、ここでベクトル・スループット・エンジン210は、レイが通過したピクセルの色を決定することができる。レイは該リーフ・ノードに対応する境界ボリューム内のどのオブジェクトも横切らなかったのでベクトル・スループット・エンジン210はレイ540が通過したピクセル535に色を割り当てることができず、ワークロード・マネージャ205は、レイ540がプリミティブを含む他のリーフ・ノードを横切るか否か判定するために空間インデックスを再横断することができる。あるいは、ベクトル・スループット・エンジン210は、レイ540が通過したピクセル535に3次元シーン505の背景色を割り当てることができる。
しかし、該リーフ・ノード内のオブジェクト545(すなわち、オブジェクト545の一部分を表すプリミティブ)をレイ540が横切ったとベクトル・スループット・エンジン210がステップ625において判定したならば、画像処理システムはステップ635に進むことができる。ステップ635において、ベクトル・スループット・エンジン210は、オリジナル・レイ540がオブジェクト545を横切ったポイント(例えば、ポイントA)におけるオブジェクト545の色を決定することができる。この交差ポイントにおけるオブジェクト545の色は、オリジナル・レイ540が通過したピクセル535の色として使用されるかあるいはピクセル535の色に割り当てられることができる。しかし、追跡されているレイ540に関連付けられた色寄与のスケーリング因子は、オブジェクト545がピクセルに与える色の量を変更し得る。追跡されているレイが画像処理システムにより発せられたオリジナル・レイ540であるならば、色寄与のスケーリング因子は、例えば、100%であり得る。この100%は、ピクセル535に対して、横切られたオブジェクト545からピクセル535に与えられる色の量をスケーリング(すなわち、低減)することなく、それが横切ったオブジェクト545の色が割り当てられるべきことを示すことができる。
横切られたオブジェクトが、オリジナル・レイが通過したピクセルに与え得る色の量を決定するために、色寄与のスケーリング因子が使用され得る。2次レイにより横切られたオブジェクトからの色寄与が反射または屈折を通してのものであるので、オブジェクトが与える色の量は、スケーリングされ得る。2次レイにより横切られたオブジェクトは、オリジナル・レイにより横切られたオブジェクトと同じ強度の量でオリジナル・ピクセルに自分の色を与えるのではなくて、オリジナル・レイにより横切られたオブジェクトへの反射または屈折を通してより少ない程度に色を与える。従って、2次レイがそれから放出されたところのオブジェクトの物理的特性(例えば、反射性、屈折性)に基づくスケーリング因子が2次レイに関連付けられ得る。
レイ540が通過したピクセル535の色が横切られたオブジェクト545の色と対応するスケーリング因子とに基づいて更新された後、ステップ640において画像処理システムは(ベクトル・スループット・エンジン210の使用を通して)、レイ540がオブジェクト545を横切ったポイントから2次レイを放出しあるいは発することができる。例えば、2次レイ540は、オリジナル・レイ540がオブジェクト1 545を横切ったポイントAから発せられ得る。2次レイ(例えば、540)は、図3に関して上で記載されたように交差の角度により決まる軌跡を伴って放出されあるいは発せられ得る。2次レイは、オリジナル・レイ540が通過したピクセル535に付加的な色を与えることができる。2次レイは、横切られたオブジェクト(例えば、オブジェクト1 545)に対して、もしその横切られたオブジェクトが色を反射するか(例えば、メタリック仕上げまたはミラー仕上げ)あるいは少なくとも部分的に透明で(例えば、ガラス片または水)色が伝播することを可能にするならば、付加的な色を与えることができる。2次レイ(例えば、540または540)からの更なる色寄与がフレーム510内の正しいピクセル535に割り当てられ得るように、各2次レイ540を定義する情報は、オリジナル・レイが通過したピクセル535を定義する情報をも含むことができる。
ベクトル・スループット・エンジン210が2次レイを放出するとき、各2次レイに色寄与のスケーリング因子が割り当てられ得る。2次レイ(例えば540)についての色寄与のスケーリング因子は、その2次レイ540がそこから放出されたところのオブジェクト(例えば、オブジェクト1 545)の特性に基づいて決定され得る。さらに、本発明の実施態様に従って、色寄与のスケーリング因子は、例えば、オブジェクトの表面特性、レイと横切られたオブジェクトとの間の交差の入射角、および、オリジナル・レイが通過したピクセルに対して2次レイが持つことのできる色寄与を変更し得る3次元シーンの環境特性のうちの少なくとも1つなどの、任意の数の特性に基づいて決定され得る。
例えば、もしオブジェクトがメタリック仕上げをして高度に反射性を有するのであれば、ベクトル・スループット・エンジン210により放出される反射された2次レイに関連付けられた色寄与のスケーリング因子は大であり得る(例えば、85%すなわち0.85)。大きな色寄与の反射性スケーリング因子は、他の横切られたオブジェクトがかなりの量の色を、その2次レイがそこから放出されたところのオブジェクトに、従ってオリジナル・レイが通過したピクセルに、与え得るということを示すことができる。対照的に、もし横切られたオブジェクトがマット仕上げを有するならば、そのオブジェクトについての色寄与の反射性スケーリング因子は小であり得る(例えば、35%すなわち0.35)。小さな色寄与の反射性スケーリング因子は、2次レイにより横切られた他のオブジェクトが、オリジナル・レイが通過したピクセルにかなりの量の色を与え得ない(すなわち、該オブジェクトへ反射し得ない)ということを示すことができる。説明の複雑さを低減するために、図5は反射性2次レイ(5401−3)を示しているに過ぎない。
さらに、色寄与の屈折性スケーリング因子が、屈折させられた2次レイに関連付けられ得る。色寄与の反射性スケーリング因子と同様に、色寄与の屈折性スケーリング因子も、前のレイ(例えば、オリジナル・レイ540)により横切られたオブジェクトの特性に基づいて決定され得る。例えば、横切られたオブジェクトが透明ならば、そのオブジェクトについての色寄与の屈折性スケーリング因子は大であり得る(例えば、95%すなわち0.95)。大きな色寄与の屈折性スケーリング因子は、2次屈折レイにより横切られたオブジェクトが、該オブジェクトの、前のレイ(例えば、オリジナル・レイ540)が横切ったポイントに、従ってオリジナル・レイが通過したピクセルに、かなりの量の色を与え得るということを示すことができる。対照的に、もしオブジェクトが部分的に不透明であるならば、そのオブジェクトについての色寄与の屈折性スケーリング因子は小であり(例えば、25%すなわち0.25)、屈折2次レイにより横切られたオブジェクトが該オブジェクトの、前のレイ(例えば、オリジナル・レイ540)が横切ったポイントにかなりの量の色を与え得ないということを示す。
色寄与のスケーリング因子が1つまたは複数の2次レイに関連付けられた後、画像処理システムはステップ645に進むことができ、ここでベクトル・スループット・エンジン645は、放出された2次レイを1つまたは複数のワークロード・マネージャに送りあるいは渡すことができる。例えば、ベクトル・スループット・エンジン210は、2次レイを定義する情報(例えば、軌跡、色寄与のスケーリング因子、オリジナル・レイが通過したピクセルを定義する情報)を、複数の受信箱115または高速バス225あるいはその両方を介してワークロード・マネージャ205に渡すことができる。さらに、複数の2次レイが放出された場合(例えば、反射された2次レイおよび屈折させられた2次レイ)、それらの2次レイは別々のワークロード・マネージャに送られ得る。例えば、反射された2次レイは第1ワークロード・マネージャ205に送られることができ、屈折させられた2次レイは第2ワークロード・マネージャ205に送られることができる。
ステップ645で2次レイ情報がワークロード・マネージャ205または複数のワークロード・マネージャ2051−nに送られた後、画像処理システムはステップ610に進むことができ、ここでワークロード・マネージャ205または複数のワークロード・マネージャ2051−nは、3次元シーン505を表す1つまたは複数の空間インデックスを通して1つまたは複数の2次レイを追跡することができる。画像処理システムは、ステップ610から方法600の残りのステップを通って、2次レイが3次元シーン505内のまだ他にもあるオブジェクトに当たるかを判定し、もし当たるならば新しい色寄与のスケーリング因子を伴う新しい2次レイを放出し、従って、横切られたオブジェクトの、オリジナル・レイ540が通過したピクセル535に対する色寄与を判定することができる。
オリジナル・レイとは対照的に、もし2次レイ540が3次元シーン505内のオブジェクトを横切るならば、ベクトル・スループット・エンジン210は、オリジナル・レイ540が通過したピクセル535に対して2次レイ540により横切られたオブジェクト550がどれだけの量の色を与えることができるかを判定するために、2次レイ540に関連付けられている色寄与のスケーリング因子を使用することができる。これは、例えば、前に横切られたオブジェクト545に関連付けられているスケーリング因子と、現在横切られているオブジェクト550の色とを掛け合わせることによって達成され得る。この新しいスケーリングされた色寄与値は、オリジナル・レイ540が通過したピクセル535の色を更新する責任を有するワークロード・マネージャ205に送り戻され得る。ワークロード・マネージャ205は、そのスケーリングされた色寄与(2次レイがオブジェクトを横切ったときに決定された)をフレーム・バッファに既に格納されているピクセルの色値(例えば、オリジナル・レイがオブジェクトを横切ったときに決定された色)にマージ(合併)しあるいは付加することができる。
2次レイにより横切られたオブジェクトからの色寄与をマージ合併し付加することによって、画像処理システムは、更なる色寄与が判定されてゆくに連れて、2次レイにより横切られたオブジェクトからのピクセルに対する色寄与を累積してゆくことができる。さらに、色寄与のスケーリング因子をオブジェクトに、従って該オブジェクトから放出された2次レイに関連付けることにより、2次レイ/オブジェクト交差に起因する色寄与は、オリジナル・レイ/オブジェクト交差からの色寄与より後に計算され得る。従って、ベクトル・スループット・エンジン210および(結果として)ワークロード・マネージャ205は、ピクセルの色を更新する前に全ての2次レイ/オブジェクト交差が判定されるのを待たなくても良い。
本発明の一実施態様に従って、特定のワークロード・マネージャ205は、オリジナル・レイ540が通過したピクセル535の色更新を維持することを担当でき得る。さらに、3次元シーン505からレンダリングされる最終の2次元画像510を構成し得る全てのピクセルについての色情報は、フレーム・バッファに格納され得る。フレーム・バッファは、モニタ510のピクセル・レイアウトに対応する2次元メモリ空間であり得る。フレーム・バッファは、ワークロード・マネージャ205のキャッシュに、あるいはマルチ・コア処理エレメント100の共有されるキャッシュ110に格納され得る。ワークロード・マネージャ205は、オリジナル・レイ540が通過したピクセル535に対応するフレーム・バッファ内の記憶場所に色情報を書き込むことによってフレーム・バッファにおける該ピクセルの色を更新することができる。
ベクトル・スループット・エンジン210は、オリジナル・レイ540が通過したピクセル535を定義する情報と共に色情報を担当するワークロード・マネージャ205に送ることによって、レイ540が通過したピクセル535の色の変化をワークロード・マネージャ205に知らせることができる。該ピクセルについて担当するワークロード・マネージャ205は、レイ540を定義した情報とともにベクトル・スループット・エンジン210に送られたピクセル535情報により決定され得る。ワークロード・マネージャ205は、ピクセル535に関連付けられたベクトル・スループット・エンジン210からピクセル535を定義する情報と色更新とを受け取ると、該ピクセルの色を更新することができる。1つのピクセルの色について担当する単一のワークロード・マネージャを持つことにより、オリジナル・レイとオブジェクトとの交差から、あるいは2次レイとオブジェクトとの交差から決定される色は、オブジェクトと2次レイとに関連する更なる決定を待つことを必要とせずに、累積され得る。
代表的なピクセル色累積
図7は、本発明の一実施態様に従って画像処理システムによってレンダリングされるべき代表的3次元シーン505を示す。図7は、図5に示されている3次元シーン505に類似している。しかし、図7は、3次元シーン505内の各オブジェクトに関連付けられたスケーリング因子を示している。さらに、図7は、レイが3次元シーン505の中へ横断してゆくにつれてオリジナル・レイ545が通過したピクセル535の色を更新することを示している。
図7に示されているように、オリジナル・レイ540が3次元シーン505の中へ発せられ得る。画像処理システムは、ワークロード・マネージャ205の使用を通じて空間インデックス(例えば、kd−ツリー)を通してレイ540を追跡して、青いオブジェクト545の全体または青いオブジェクト545の一部分を囲むリーフ・ノードにより定義される境界ボリュームをレイ540が横切ることを判定することができる。この判定に応じて、ワークロード・マネージャ205はレイ540と、横切られたリーフ・ノードとを定義する情報をベクトル・スループット・エンジン210に送ることができ、そこでレイ−プリミティブ交差試験が実行され得る。レイ−プリミティブ交差試験の結果として、ベクトル・スループット・エンジン210は、オリジナル・レイ540が青いオブジェクト545のポイントAを横切ると判定することができる。さらに、ベクトル・スループット・エンジン210は、青いオブジェクト545がオリジナル・レイと該オブジェクトとの交差のポイントにおいて(すなわち、ポイントAにおいて)実際に青いことを判定することができる。従ってベクトル・スループット・エンジン210はそのピクセル色情報をピクセル535について担当するワークロード・マネージャ205に送ることができる。その担当するワークロード・マネージャ205は、その後、そのピクセルに対応するフレーム・バッファ内の記憶場所を青色で更新することができる。
理解を容易にするために、3次元シーン505内の3つのオブジェクト(すなわち、青いオブジェクト545、赤いオブジェクト550、および緑のオブジェクト560)の各々は反射特性を有するけれども屈折特性を有しない。従って、レイと各オブジェクトとの交差に応答して、画像処理システムは屈折性2次レイを発せずに反射性2次レイだけを発することができる。しかし、本発明の実施態様が屈折性2次レイにも応用され得ることは当業者にとっては明らかであるはずである。
従って、図7に示されているように、画像処理システムあるいはベクトル・スループット・エンジン210は、オリジナル・レイ540と青いオブジェクト545との交差のポイント(すなわち、ポイントA)から反射された2次レイ540を発することができる。ベクトル・スループット・エンジン210は、反射された2次レイ540を定義する情報に色寄与のスケーリング因子を関連付けることもできる。その色寄与のスケーリング因子は、前のレイにより横切られたオブジェクト(すなわち、青いオブジェクト545)の特性に基づくことができる。従って、ベクトル・スループット・エンジン210は、青いオブジェクト545についての反射性の色寄与のスケーリング因子(すなわち、0.50)を反射された2次レイ540に関連付けることができる。
画像処理システムは、その後、3次元シーン505を表す空間インデックスを通して2次レイ540を通過(横断)させるためにワークロード・マネージャ205を使用することができる。ワークロード・マネージャは、赤いオブジェクト550を囲むリーフ・ノードまで2次レイ540を通過させることができる。ワークロード・マネージャ、その後、2次レイ540を定義する情報(例えば、軌跡、色寄与のスケーリング因子、ピクセル535識別情報)と該リーフ・ノードを定義する情報とをベクトル・スループット・エンジン210に送ることができる。
ベクトル・スループット・エンジン210は、その後、レイ−プリミティブ交差試験を行い、該リーフ・ノードに対応する境界ボリュームの中のプリミティブ/オブジェクトを2次レイが横切ったか否かを判定することができる。図7に示されているように、ベクトル・スループット・エンジンは、反射された2次レイ540が赤いオブジェクト550のポイントBを横切ると判定することができる。2次レイ540が赤いオブジェクト550を横切ると判定した後、ベクトル・スループット・エンジン210は、オリジナル・レイ540が通過したピクセル535に赤いオブジェクト550が加える色寄与を判定することができる。
図示されているように、ベクトル・スループット・エンジン210は、本発明の一実施態様に従って、青いオブジェクトと2次レイ540とに関連付けられた色寄与のスケーリング因子を赤いオブジェクト550の色に適用することによってピクセル535への色寄与を計算することができる。例えば、赤いオブジェクト550からのスケーリングされた色寄与(0.5*赤)を決定するために、赤いオブジェクトの色(すなわち、赤)に、2次レイ540に関連付けられているスケーリング因子(すなわち、0.50)を乗じることができる。そのスケーリングされた色寄与が計算された後、ベクトル・スループット・エンジン210は、そのスケーリングされた色寄与を、オリジナル・レイ540が通過したピクセル535に対応するフレーム・バッファ内の記憶場所を更新する担当のワークロード・マネージャ205に、送ることができる。
図7に示されているように、ワークロード・マネージャ205は、付加的なスケーリングされた色寄与(0.5*赤)を、フレーム・バッファ内の該ピクセルに既に割り当てられている色(青)に加えることができる。これは、青いオブジェクトが、赤いオブジェクトの色のスケーリングされた部分を反射するという事実を適切に反映するであろう。従って、実生活の場合と同様に、観察者515の位置にいる人は、青いオブジェクト545からの青い色と、青いオブジェクト545により反射された赤い色との組み合わせを見るであろう。
ベクトル・スループット・エンジン210がスケーリングされた色寄与をワークロード・マネージャ205に送った後、ベクトル・スループット・エンジン210は、反射された2次レイ540を交差ポイントBから発することができる。反射された2次レイ540を定義する情報の中にはスケーリング因子があり得る。2次レイ540についてのスケーリング因子は、青いオブジェクトについての寄与のスケーリング因子と赤いオブジェクトのスケーリング因子との積であり得る。すなわち、2次レイとオブジェクトとの交差から2次レイが生成されるときには、本発明の一実施態様に従って、その新しい2次レイについての色寄与のスケーリング因子は、前に横切られた全てのオブジェクトに関連付けられている色寄与のスケーリング因子の積であり得る。
従って、2次レイ540についての色寄与のスケーリング因子は、青いオブジェクト545についての色寄与のスケーリング因子と赤いオブジェクト550についての色寄与のスケーリング因子との積(すなわち、0.50*0.75)であり得る。新しいオブジェクトが2次レイにより横切られるたびに色寄与のスケーリング因子を乗じるので、2次レイにより横切られたオブジェクトからの、オリジナル・レイ540が通過したピクセル535への色寄与の量は、より多くのオブジェクトが横切られてゆくにつれて減少してゆく。
さらに、ベクトル・スループット・エンジン210は、反射された2次レイ540が緑のオブジェクト560のポイントCを横切ると判定することができる。ベクトル・スループット・エンジン210は、その後、緑のオブジェクトの色と、オリジナル・レイ540が通過したピクセル535に対して緑のオブジェクト560が与える色の量とを判定することができる。
ベクトル・スループット・エンジン210は、色寄与のスケーリング因子と、横切られた緑のオブジェクト560の色とを乗じることにより(例えば、0.50*0.75*緑)、ピクセル535に与えられるレイ540についてのスケーリングされた色を判定することができる。ベクトル・スループット・エンジン210は、その後、スケーリングされた色寄与を、ピクセル535の色を更新する担当のワークロード・マネージャ205に送ることができる。図7に示されているように、ワークロード・マネージャ205は、緑のオブジェクト560からのスケーリングされた色寄与をフレーム・バッファに既に存在する色に加える(すなわち、青+0.50*赤+0.50*0.75*緑)ことによって該ピクセルの色を更新することができる。
さらに、図示されているように画像処理システムは交差ポイントCから他の反射された2次レイ540を放出することができる。ワークロード・マネージャ205は2次レイ540がポイントDを含むリーフ・ノードを横切ると判定することができ、ベクトル・スループット・エンジン210は2次レイ540が該リーフ・ノードに含まれるどのプリミティブをも横切らないと判定することができる。ベクトル・スループット・エンジン210は、2次レイ540がどのオブジェクトも横切らずに3次元シーン505から出ると判定し、従ってピクセル535に与えられる色を判定するために背景色が使用されるべきであると判定することができる。
従って、ベクトル・スループット・エンジン210は、前に横切られたオブジェクトにより決定されるスケーリング因子と背景色とを乗じることにより(例えば、0.50*0.75*0.25*背景色)、背景色からのスケーリングされた色寄与を決定することができる。ベクトル・スループット・エンジン210は、その後、そのスケーリングされた色寄与を、フレーム・バッファ内のピクセル535の色を更新する担当のワークロード・マネージャ205に送ることができる。従って、ワークロード・マネージャ205は、その後、背景からの色寄与をフレーム・バッファ内のピクセルの色に加えることによって(すなわち、青+0.50*赤+0.50*0.75*緑+0.50*0.75*0.25*背景色)、フレーム・バッファ内のピクセル535の色を更新することができる。
2次レイにより横切られたオブジェクトからの色寄与をマージあるいは付加することによって、画像処理システムは、更なる色寄与が判定されるにつれて、2次レイにより横切られたオブジェクトからのピクセルへの色寄与を累積することができる。さらに、色寄与のスケーリング因子をオブジェクトと、該オブジェクトを横切る2次レイとに関連付けることにより、2次レイ/オブジェクト交差に起因する色寄与は、オリジナル・レイ/オブジェクト交差からのピクセルへの色寄与より後に計算され得る。従って、ベクトル・スループット・エンジンあるいはワークロード・マネージャは、ピクセルの色を更新する前に全ての2次レイ/オブジェクト交差が判定されるのを待たなくても良い。
叙上は本発明の実施態様に向けられているけれども、本発明の他の更なる実施態様が、その基本範囲から逸脱すること無く考案されることができ、その範囲は次の請求項により決定される。
本発明の一実施態様に従うマルチ・コア処理エレメントを示す。 本発明の実施態様に従うマルチ・コア処理エレメント・ネットワークを示す。 本発明の一実施態様に従う、画像処理システムによってレンダリングされるべき代表的3次元シーンである。 本発明の一実施態様に従う、画像処理システムによってレンダリングされるべき2次元空間と画像処理システムにより作成される対応する空間インデックスとを示す。 本発明の一実施態様に従う、画像処理システムによりレンダリングされるべき代表的3次元シーンを示す。 本発明の一実施態様に従う、ピクセルの色を更新する方法を示すフローチャートである。 本発明の一実施態様に従う、画像処理システムによりレンダリングされるべき代表的3次元シーンを示す。

Claims (9)

  1. プロセッサを備えるレイ・トレーシング画像処理システムにおいてピクセルの色を決定する方法であって、
    前記プロセッサが前記ピクセルを通して3次元シーン中に1次レイを発するステップと、
    前記プロセッサが前記1次レイにより横切られた第1プリミティブの色値に基づいて前記ピクセルについて初期色値を決定するステップと、
    前記プロセッサが前記1次レイにより横切られた前記第1プリミティブから前記シーン中に少なくとも1つの2次レイを発するステップと、
    前記プロセッサが前記2次レイにより横切られた第2プリミティブの色値と前記1次レイにより横切られた前記第1プリミティブに関連付けられている反射又は屈折のスケーリング因子とに基づき、前記ピクセルについての色値を更新する第1更新ステップと、
    前記プロセッサが前記2次レイにより横切られた前記プリミティブから少なくとも1つの更なる2次レイを前記シーン中に発するステップと、
    前記プロセッサが前記更なる2次レイにより横切られた第3プリミティブの色値と、前記第1プリミティブおよび前記第2プリミティブに基づく反射又は屈折の第2スケーリング因子とに基づいて前記ピクセルについての前記色値を更新する第2更新ステップと
    を含み、
    前記第1更新ステップは、前記第2プリミティブの反射又は屈折のスケーリング因子に基づくことなく、前記色値を更新し、
    前記第2更新ステップは、前記第3プリミティブの反射又は屈折のスケーリング因子に基づくことなく、前記色値を更新する、
    方法。
  2. 前記第2スケーリング因子は、前記第1プリミティブに関連付けられている前記スケーリング因子と前記第2プリミティブに関連付けられているスケーリング因子との組み合わせに基づいて計算される、請求項に記載の方法。
  3. 前記組み合わせは、前記第1プリミティブに関連付けられている前記スケーリング因子に、前記第2プリミティブに関連付けられている前記スケーリング因子を乗じることによって決定される、請求項に記載の方法。
  4. メモリ・キャッシュと、
    ピクセルを通して3次元シーン中にオリジナル・レイを発し、第1リーフ・ノードに達するまで空間インデックスを前記オリジナル・レイで横断するように構成されたプロセッサの第1処理エレメントと、
    前記オリジナル・レイおよび前記第1リーフ・ノードを定義する情報を前記第1処理エレメントから受け取り、前記オリジナル・レイにより横切られた第1プリミティブの色に基づいて前記ピクセルに対する第1色寄与を決定し、前記第1プリミティブの反射特性または屈折特性に基づいて色寄与の第1スケーリング因子を決定し、前記オリジナル・レイと前記第1プリミティブとの交差に基づいて少なくとも1つの2次レイを発し、前記色寄与の第1スケーリング因子を前記少なくとも1つの2次レイに関連付けるように構成されたプロセッサの第2処理エレメントと、
    を含み、
    前記第1処理エレメントは、さらに、第2リーフ・ノードに達するまで前記空間インデックスを前記2次レイで横断するように構成されており、
    前記第2処理エレメントは、さらに、前記2次レイおよび前記第2リーフ・ノードを定義する情報を前記第1処理エレメントから受け取り、
    前記2次レイにより横切られた第2プリミティブの色と反射特性または屈折特性の第1スケーリング因子とに基づいて前記ピクセルに対する第2色寄与を決定し、
    前記第1プリミティブおよび前記第2プリミティブの反射特性または屈折特性に基づいて色寄与の反射特性または屈折特性の第3スケーリング因子を決定し、
    前記2次レイと前記第2プリミティブとの交差に基づいて少なくとも1つの更なる2次レイを発し、
    前記色寄与の第3スケーリング因子を前記少なくとも1つの更なる2次レイに関連付けるように構成されており、
    前記第2色寄与は、前記第2プリミティブの反射特性または屈折特性の第2スケーリング因子に基づくことなく、決定され、
    前記第3スケーリング因子は、前記第3プリミティブの反射特性または屈折特性のスケーリング因子に基づくことなく、決定される
    画像処理システム。
  5. 前記ピクセルに対応する前記メモリ・キャッシュ内の記憶場所をさらに含み、
    前記第2処理エレメントは、前記ピクセルに対する前記第1色寄与を、前記第1ピクセルに対応する前記記憶場所に格納するように構成されている、
    請求項に記載の画像処理システム。
  6. 前記第1処理エレメントは、前記ピクセルに対応する前記メモリ・キャッシュ内の前記記憶場所から前記ピクセルの色を読み出し、前記記憶場所から読み出された前記ピクセルの前記色を、前記ピクセルに対する前記第2色寄与と組み合わせ、その組み合わせを前記ピクセルに対応する前記メモリ・キャッシュ内の前記記憶場所に格納するようにさらに構成されている、請求項に記載の画像処理システム。
  7. 前記色寄与の第2スケーリング因子は、前記第1プリミティブの特性と前記第2プリミティブの特性との組み合わせに基づいて決定される、請求項4ないし6のうちのいずれかに記載の画像処理システム。
  8. 前記色寄与の第2スケーリング因子は、前記第1プリミティブに関連付けられているスケーリング因子に、前記第2プリミティブに関連付けられているスケーリング因子を乗じることによって決定される、請求項に記載の画像処理システム。
  9. 請求項1ないしのうちのいずれかの請求項のステップをコンピュータに実行させるためのプログラム。
JP2009529653A 2006-09-27 2007-09-13 レイ・トレーシング画像処理システムにおけるピクセル色の決定方法および画像処理システム Active JP5063698B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/535,581 2006-09-27
US11/535,581 US7884819B2 (en) 2006-09-27 2006-09-27 Pixel color accumulation in a ray tracing image processing system
PCT/EP2007/059649 WO2008037599A1 (en) 2006-09-27 2007-09-13 Pixel color determination in a ray tracing image processing system

Publications (2)

Publication Number Publication Date
JP2010505164A JP2010505164A (ja) 2010-02-18
JP5063698B2 true JP5063698B2 (ja) 2012-10-31

Family

ID=38973622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009529653A Active JP5063698B2 (ja) 2006-09-27 2007-09-13 レイ・トレーシング画像処理システムにおけるピクセル色の決定方法および画像処理システム

Country Status (5)

Country Link
US (1) US7884819B2 (ja)
EP (1) EP2076888B1 (ja)
JP (1) JP5063698B2 (ja)
KR (1) KR101054702B1 (ja)
WO (1) WO2008037599A1 (ja)

Cited By (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055880B2 (en) 2016-12-06 2018-08-21 Activision Publishing, Inc. Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional
US10099140B2 (en) 2015-10-08 2018-10-16 Activision Publishing, Inc. System and method for generating personalized messaging campaigns for video game players
US10118099B2 (en) 2014-12-16 2018-11-06 Activision Publishing, Inc. System and method for transparently styling non-player characters in a multiplayer video game
US10137376B2 (en) 2012-12-31 2018-11-27 Activision Publishing, Inc. System and method for creating and streaming augmented game sessions
US10179289B2 (en) 2016-06-21 2019-01-15 Activision Publishing, Inc. System and method for reading graphically-encoded identifiers from physical trading cards through image-based template matching
US10213682B2 (en) 2015-06-15 2019-02-26 Activision Publishing, Inc. System and method for uniquely identifying physical trading cards and incorporating trading card game items in a video game
US10226703B2 (en) 2016-04-01 2019-03-12 Activision Publishing, Inc. System and method of generating and providing interactive annotation items based on triggering events in a video game
US10226701B2 (en) 2016-04-29 2019-03-12 Activision Publishing, Inc. System and method for identifying spawn locations in a video game
US10232272B2 (en) 2015-10-21 2019-03-19 Activision Publishing, Inc. System and method for replaying video game streams
US10245509B2 (en) 2015-10-21 2019-04-02 Activision Publishing, Inc. System and method of inferring user interest in different aspects of video game streams
US10284454B2 (en) 2007-11-30 2019-05-07 Activision Publishing, Inc. Automatic increasing of capacity of a virtual space in a virtual world
US10286326B2 (en) 2014-07-03 2019-05-14 Activision Publishing, Inc. Soft reservation system and method for multiplayer video games
US10286314B2 (en) 2015-05-14 2019-05-14 Activision Publishing, Inc. System and method for providing continuous gameplay in a multiplayer video game through an unbounded gameplay session
US10315113B2 (en) 2015-05-14 2019-06-11 Activision Publishing, Inc. System and method for simulating gameplay of nonplayer characters distributed across networked end user devices
US10376781B2 (en) 2015-10-21 2019-08-13 Activision Publishing, Inc. System and method of generating and distributing video game streams
US10376793B2 (en) 2010-02-18 2019-08-13 Activision Publishing, Inc. Videogame system and method that enables characters to earn virtual fans by completing secondary objectives
US10421019B2 (en) 2010-05-12 2019-09-24 Activision Publishing, Inc. System and method for enabling players to participate in asynchronous, competitive challenges
US10463964B2 (en) 2016-11-17 2019-11-05 Activision Publishing, Inc. Systems and methods for the real-time generation of in-game, locally accessible heatmaps
US10471348B2 (en) 2015-07-24 2019-11-12 Activision Publishing, Inc. System and method for creating and sharing customized video game weapon configurations in multiplayer video games via one or more social networks
US10486068B2 (en) 2015-05-14 2019-11-26 Activision Publishing, Inc. System and method for providing dynamically variable maps in a video game
US10500498B2 (en) 2016-11-29 2019-12-10 Activision Publishing, Inc. System and method for optimizing virtual games
US10573065B2 (en) 2016-07-29 2020-02-25 Activision Publishing, Inc. Systems and methods for automating the personalization of blendshape rigs based on performance capture data
US10596471B2 (en) 2017-12-22 2020-03-24 Activision Publishing, Inc. Systems and methods for enabling audience participation in multi-player video game play sessions
US10627983B2 (en) 2007-12-24 2020-04-21 Activision Publishing, Inc. Generating data for managing encounters in a virtual world environment
US10694352B2 (en) 2015-10-28 2020-06-23 Activision Publishing, Inc. System and method of using physical objects to control software access
US10709981B2 (en) 2016-11-17 2020-07-14 Activision Publishing, Inc. Systems and methods for the real-time generation of in-game, locally accessible barrier-aware heatmaps
US10765948B2 (en) 2017-12-22 2020-09-08 Activision Publishing, Inc. Video game content aggregation, normalization, and publication systems and methods
US10818060B2 (en) 2017-09-05 2020-10-27 Activision Publishing, Inc. Systems and methods for guiding motion capture actors using a motion reference system
US10861079B2 (en) 2017-02-23 2020-12-08 Activision Publishing, Inc. Flexible online pre-ordering system for media
US10981069B2 (en) 2008-03-07 2021-04-20 Activision Publishing, Inc. Methods and systems for determining the authenticity of copied objects in a virtual environment
US10981051B2 (en) 2017-12-19 2021-04-20 Activision Publishing, Inc. Synchronized, fully programmable game controllers
US11040286B2 (en) 2017-09-27 2021-06-22 Activision Publishing, Inc. Methods and systems for improved content generation in multiplayer gaming environments
US11097193B2 (en) 2019-09-11 2021-08-24 Activision Publishing, Inc. Methods and systems for increasing player engagement in multiplayer gaming environments
US11115712B2 (en) 2018-12-15 2021-09-07 Activision Publishing, Inc. Systems and methods for indexing, searching for, and retrieving digital media
US11117055B2 (en) 2017-12-06 2021-09-14 Activision Publishing, Inc. Systems and methods for validating leaderboard gaming data
US11185784B2 (en) 2015-10-08 2021-11-30 Activision Publishing, Inc. System and method for generating personalized messaging campaigns for video game players
US11263670B2 (en) 2018-11-19 2022-03-01 Activision Publishing, Inc. Systems and methods for dynamically modifying video game content based on non-video gaming content being concurrently experienced by a user
US11278813B2 (en) 2017-12-22 2022-03-22 Activision Publishing, Inc. Systems and methods for enabling audience participation in bonus game play sessions
US11305191B2 (en) 2018-12-20 2022-04-19 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11344808B2 (en) 2019-06-28 2022-05-31 Activision Publishing, Inc. Systems and methods for dynamically generating and modulating music based on gaming events, player profiles and/or player reactions
US11351466B2 (en) 2014-12-05 2022-06-07 Activision Publishing, Ing. System and method for customizing a replay of one or more game events in a video game
US11351459B2 (en) 2020-08-18 2022-06-07 Activision Publishing, Inc. Multiplayer video games with virtual characters having dynamically generated attribute profiles unconstrained by predefined discrete values
US11420122B2 (en) 2019-12-23 2022-08-23 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11423605B2 (en) 2019-11-01 2022-08-23 Activision Publishing, Inc. Systems and methods for remastering a game space while maintaining the underlying game simulation
US11439904B2 (en) 2020-11-11 2022-09-13 Activision Publishing, Inc. Systems and methods for imparting dynamic and realistic movement to player-controlled avatars in video games
US11524234B2 (en) 2020-08-18 2022-12-13 Activision Publishing, Inc. Multiplayer video games with virtual characters having dynamically modified fields of view
US11537209B2 (en) 2019-12-17 2022-12-27 Activision Publishing, Inc. Systems and methods for guiding actors using a motion capture reference system
US11563774B2 (en) 2019-12-27 2023-01-24 Activision Publishing, Inc. Systems and methods for tracking and identifying phishing website authors
US11679330B2 (en) 2018-12-18 2023-06-20 Activision Publishing, Inc. Systems and methods for generating improved non-player characters
US11712627B2 (en) 2019-11-08 2023-08-01 Activision Publishing, Inc. System and method for providing conditional access to virtual gaming items
US11717753B2 (en) 2020-09-29 2023-08-08 Activision Publishing, Inc. Methods and systems for generating modified level of detail visual assets in a video game
US11724188B2 (en) 2020-09-29 2023-08-15 Activision Publishing, Inc. Methods and systems for selecting a level of detail visual asset during the execution of a video game
US11794107B2 (en) 2020-12-30 2023-10-24 Activision Publishing, Inc. Systems and methods for improved collision detection in video games
US11833423B2 (en) 2020-09-29 2023-12-05 Activision Publishing, Inc. Methods and systems for generating level of detail visual assets in a video game
US11883745B2 (en) 2018-11-19 2024-01-30 Activision Publishing, Inc. Systems and methods for providing a tailored video game based on a player defined time period
US12064688B2 (en) 2020-12-30 2024-08-20 Activision Publishing, Inc. Methods and systems for determining decal projections intersecting spatial units in a frame of a game space
US12097430B2 (en) 2020-12-28 2024-09-24 Activision Publishing, Inc. Methods and systems for generating and managing active objects in video games
US12179113B2 (en) 2020-12-09 2024-12-31 Activision Publishing, Inc. Methods and systems for dynamically selecting and modifying digital assets within game elements of a multiplayer video game
US12204660B2 (en) 2020-12-30 2025-01-21 Activision Publishing, Inc. Distributed data storage system providing enhanced security
US12370445B2 (en) 2021-11-12 2025-07-29 Activision Publishing, Inc. Computer implemented method of scalably generating gaming assets for rendering during gameplay

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7830379B2 (en) * 2006-09-19 2010-11-09 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
US8674987B2 (en) 2006-09-19 2014-03-18 Caustic Graphics, Inc. Dynamic ray population control
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
US9665970B2 (en) 2006-09-19 2017-05-30 Imagination Technologies Limited Variable-sized concurrent grouping for multiprocessing
US8018457B2 (en) 2006-09-19 2011-09-13 Caustic Graphics, Inc. Ray tracing system architectures and methods
US7940266B2 (en) * 2006-10-13 2011-05-10 International Business Machines Corporation Dynamic reallocation of processing cores for balanced ray tracing graphics workload
US8139060B2 (en) * 2006-11-28 2012-03-20 International Business Machines Corporation Ray tracing image processing system
US7852336B2 (en) * 2006-11-28 2010-12-14 International Business Machines Corporation Dynamic determination of optimal spatial index mapping to processor thread resources
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
US8159490B2 (en) * 2007-10-16 2012-04-17 Dreamworks Animation Llc Shading of translucent objects
US8237711B2 (en) * 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
US8400448B1 (en) 2007-12-05 2013-03-19 The United States Of America, As Represented By The Secretary Of The Navy Real-time lines-of-sight and viewsheds determination system
US8325178B1 (en) 2007-12-05 2012-12-04 The United States Of America, As Represented By The Secretary Of The Navy Lines-of-sight and viewsheds determination system
KR101536197B1 (ko) * 2008-02-27 2015-07-13 삼성전자주식회사 3차원 영상 프로세서 및 프로세싱 방법
US8217935B2 (en) 2008-03-31 2012-07-10 Caustic Graphics, Inc. Apparatus and method for ray tracing with block floating point data
US8421801B2 (en) 2008-09-09 2013-04-16 Caustic Graphics, Inc. Ray tracing using ray-specific clipping
JP5244977B2 (ja) * 2008-09-22 2013-07-24 コースティック グラフィックス インコーポレイテッド レイトレーシングシェーダapiのためのシステム及び方法
US8963918B2 (en) * 2008-09-30 2015-02-24 Microsoft Corporation Ray tracing on graphics hardware using kd-trees
US8749552B2 (en) 2008-10-17 2014-06-10 Imagination Technologies Limited Synthetic acceleration shapes for use in ray tracing
US9483864B2 (en) 2008-12-05 2016-11-01 International Business Machines Corporation System and method for photorealistic imaging using ambient occlusion
KR101004110B1 (ko) 2009-05-28 2010-12-27 주식회사 실리콘아츠 레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩
KR101076807B1 (ko) * 2009-05-29 2011-10-25 주식회사 실리콘아츠 레이 트레이싱 장치 및 방법
US8797322B2 (en) 2009-06-24 2014-08-05 Imagination Technologies, Limited Systems and methods of defining rays for ray tracing rendering
US8952961B2 (en) 2009-06-29 2015-02-10 Imagination Technologies, Limited Systems and methods for photon map querying
US8441482B2 (en) 2009-09-21 2013-05-14 Caustic Graphics, Inc. Systems and methods for self-intersection avoidance in ray tracing
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
JP2012181825A (ja) * 2011-02-09 2012-09-20 Canon Inc 画像処理装置およびその方法
GB2529074A (en) 2011-06-16 2016-02-10 Imagination Tech Ltd Graphics processor with non-blocking concurrent architecture
US10061618B2 (en) 2011-06-16 2018-08-28 Imagination Technologies Limited Scheduling heterogenous computation on multithreaded processors
JP5839907B2 (ja) * 2011-09-15 2016-01-06 キヤノン株式会社 画像処理装置および画像処理方法
US10789757B2 (en) * 2013-05-06 2020-09-29 Disney Enterprises Inc. Ray-mediated illumination control
KR102159262B1 (ko) 2014-03-14 2020-09-23 삼성전자 주식회사 레이 트레이싱에서의 오류 교차점 제거 방법 및 장치
WO2015167159A1 (en) 2014-05-02 2015-11-05 Samsung Electronics Co., Ltd. Rendering system and method for generating ray
KR20150136348A (ko) * 2014-05-27 2015-12-07 삼성전자주식회사 레이 트레이싱 시스템에서의 가속 구조 탐색 장치 및 그 탐색 방법
GB2528655B (en) 2014-07-24 2020-10-07 Advanced Risc Mach Ltd Graphics Processing Systems
CN107430784B (zh) 2015-02-27 2021-04-16 Arm有限公司 图形处理系统
KR102493461B1 (ko) * 2015-08-31 2023-01-30 삼성전자 주식회사 렌더링 시스템 및 방법
GB2541928B (en) 2015-09-04 2018-01-31 Advanced Risc Mach Ltd Graphics processing systems
US9679398B2 (en) * 2015-10-19 2017-06-13 Chaos Software Ltd. Rendering images using color contribution values of render elements
GB2543766B (en) 2015-10-26 2018-02-14 Advanced Risc Mach Ltd Graphics processing systems
GB2545226A (en) * 2015-12-09 2017-06-14 Samsung Electronics Co Ltd Determining lighting in a 3D virtual scene
US10681325B2 (en) * 2016-05-16 2020-06-09 Google Llc Continuous depth-ordered image compositing
US10561945B2 (en) 2017-09-27 2020-02-18 Activision Publishing, Inc. Methods and systems for incentivizing team cooperation in multiplayer gaming environments
US10974150B2 (en) 2017-09-27 2021-04-13 Activision Publishing, Inc. Methods and systems for improved content customization in multiplayer gaming environments
US10776995B2 (en) * 2017-10-17 2020-09-15 Nvidia Corporation Light fields as better backgrounds in rendering
US10463971B2 (en) 2017-12-06 2019-11-05 Activision Publishing, Inc. System and method for validating video gaming data
US10762695B1 (en) * 2019-02-21 2020-09-01 Electronic Arts Inc. Systems and methods for ray-traced shadows of transparent objects
KR102384304B1 (ko) * 2019-07-15 2022-04-07 레고 에이/에스 렌더링 방법 및 이를 수행하는 렌더링 장치
US11017581B1 (en) 2020-01-04 2021-05-25 Adshir Ltd. Method for constructing and traversing accelerating structures
US11276224B2 (en) 2020-04-17 2022-03-15 Samsung Electronics Co., Ltd. Method for ray intersection sorting
US11238640B2 (en) 2020-06-26 2022-02-01 Advanced Micro Devices, Inc. Early culling for ray tracing
CN114331801B (zh) 2020-09-30 2024-04-02 想象技术有限公司 用于光线跟踪的相交测试
US11935177B2 (en) * 2021-06-15 2024-03-19 Nvidia Corporation Ray tracing using reservoir resampling with spatial shift-mapping
US12434152B2 (en) 2021-10-13 2025-10-07 Activision Publishing, Inc. Systems and methods for dynamically enabling feature changes in a mobile game
US20230298212A1 (en) * 2022-03-17 2023-09-21 Advanced Micro Devices, Inc. Locking mechanism for image classification

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04139591A (ja) * 1990-10-01 1992-05-13 Erumano Sumiwa Kk 画像生成装置
US6111582A (en) * 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
JP4078716B2 (ja) * 1998-06-29 2008-04-23 ソニー株式会社 画像処理装置および方法、並びに提供媒体
JP3889195B2 (ja) * 1999-02-03 2007-03-07 株式会社東芝 画像処理装置、画像処理システムおよび画像処理方法
JP3703073B2 (ja) * 1999-11-24 2005-10-05 日本ビクター株式会社 図形表示装置及びその方法
US7495664B2 (en) * 2000-06-19 2009-02-24 Mental Images Gmbh Instant ray tracing
US7126605B1 (en) * 2001-07-03 2006-10-24 Munshi Aaftab A Method and apparatus for implementing level of detail with ray tracing
US6853377B2 (en) * 2002-06-26 2005-02-08 Nvidia Corporation System and method of improved calculation of diffusely reflected light
DE10239672B4 (de) * 2002-08-26 2005-08-11 Universität des Saarlandes Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur
US7012604B1 (en) * 2002-09-12 2006-03-14 Advanced Micro Devices, Inc. System architecture for high speed ray tracing
US7623137B1 (en) * 2006-02-15 2009-11-24 Adobe Systems, Incorporated Successive-convolution-compositing technique for rendering translucent surfaces

Cited By (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11972086B2 (en) 2007-11-30 2024-04-30 Activision Publishing, Inc. Automatic increasing of capacity of a virtual space in a virtual world
US10284454B2 (en) 2007-11-30 2019-05-07 Activision Publishing, Inc. Automatic increasing of capacity of a virtual space in a virtual world
US10627983B2 (en) 2007-12-24 2020-04-21 Activision Publishing, Inc. Generating data for managing encounters in a virtual world environment
US10981069B2 (en) 2008-03-07 2021-04-20 Activision Publishing, Inc. Methods and systems for determining the authenticity of copied objects in a virtual environment
US11957984B2 (en) 2008-03-07 2024-04-16 Activision Publishing, Inc. Methods and systems for determining the authenticity of modified objects in a virtual environment
US10376793B2 (en) 2010-02-18 2019-08-13 Activision Publishing, Inc. Videogame system and method that enables characters to earn virtual fans by completing secondary objectives
US10421019B2 (en) 2010-05-12 2019-09-24 Activision Publishing, Inc. System and method for enabling players to participate in asynchronous, competitive challenges
US11446582B2 (en) 2012-12-31 2022-09-20 Activision Publishing, Inc. System and method for streaming game sessions to third party gaming consoles
US12201912B2 (en) 2012-12-31 2025-01-21 Activision Publishing, Inc. System and method for creating and streaming augmented game sessions
US10905963B2 (en) 2012-12-31 2021-02-02 Activision Publishing, Inc. System and method for creating and streaming augmented game sessions
US10137376B2 (en) 2012-12-31 2018-11-27 Activision Publishing, Inc. System and method for creating and streaming augmented game sessions
US10376792B2 (en) 2014-07-03 2019-08-13 Activision Publishing, Inc. Group composition matchmaking system and method for multiplayer video games
US10322351B2 (en) 2014-07-03 2019-06-18 Activision Publishing, Inc. Matchmaking system and method for multiplayer video games
US10857468B2 (en) 2014-07-03 2020-12-08 Activision Publishing, Inc. Systems and methods for dynamically weighing match variables to better tune player matches
US10286326B2 (en) 2014-07-03 2019-05-14 Activision Publishing, Inc. Soft reservation system and method for multiplayer video games
US11351466B2 (en) 2014-12-05 2022-06-07 Activision Publishing, Ing. System and method for customizing a replay of one or more game events in a video game
US12059627B2 (en) 2014-12-05 2024-08-13 Activision Publishing, Inc. System and method for customizing a replay of one or more game events in a video game
US10118099B2 (en) 2014-12-16 2018-11-06 Activision Publishing, Inc. System and method for transparently styling non-player characters in a multiplayer video game
US10668381B2 (en) 2014-12-16 2020-06-02 Activision Publishing, Inc. System and method for transparently styling non-player characters in a multiplayer video game
US10315113B2 (en) 2015-05-14 2019-06-11 Activision Publishing, Inc. System and method for simulating gameplay of nonplayer characters distributed across networked end user devices
US11857876B2 (en) 2015-05-14 2024-01-02 Activision Publishing, Inc. System and method for providing dynamically variable maps in a video game
US11420119B2 (en) 2015-05-14 2022-08-23 Activision Publishing, Inc. Systems and methods for initiating conversion between bounded gameplay sessions and unbounded gameplay sessions
US10286314B2 (en) 2015-05-14 2019-05-14 Activision Publishing, Inc. System and method for providing continuous gameplay in a multiplayer video game through an unbounded gameplay session
US10486068B2 (en) 2015-05-14 2019-11-26 Activision Publishing, Inc. System and method for providing dynamically variable maps in a video game
US12303783B2 (en) 2015-05-14 2025-05-20 Activision Publishing, Inc. Systems and methods for converting a bounded gameplay session to an unbounded gameplay session
US11896905B2 (en) 2015-05-14 2024-02-13 Activision Publishing, Inc. Methods and systems for continuing to execute a simulation after processing resources go offline
US11524237B2 (en) 2015-05-14 2022-12-13 Activision Publishing, Inc. Systems and methods for distributing the generation of nonplayer characters across networked end user devices for use in simulated NPC gameplay sessions
US10668367B2 (en) 2015-06-15 2020-06-02 Activision Publishing, Inc. System and method for uniquely identifying physical trading cards and incorporating trading card game items in a video game
US10213682B2 (en) 2015-06-15 2019-02-26 Activision Publishing, Inc. System and method for uniquely identifying physical trading cards and incorporating trading card game items in a video game
US10835818B2 (en) 2015-07-24 2020-11-17 Activision Publishing, Inc. Systems and methods for customizing weapons and sharing customized weapons via social networks
US10471348B2 (en) 2015-07-24 2019-11-12 Activision Publishing, Inc. System and method for creating and sharing customized video game weapon configurations in multiplayer video games via one or more social networks
US10099140B2 (en) 2015-10-08 2018-10-16 Activision Publishing, Inc. System and method for generating personalized messaging campaigns for video game players
US11185784B2 (en) 2015-10-08 2021-11-30 Activision Publishing, Inc. System and method for generating personalized messaging campaigns for video game players
US10232272B2 (en) 2015-10-21 2019-03-19 Activision Publishing, Inc. System and method for replaying video game streams
US10898813B2 (en) 2015-10-21 2021-01-26 Activision Publishing, Inc. Methods and systems for generating and providing virtual objects and/or playable recreations of gameplay
US11310346B2 (en) 2015-10-21 2022-04-19 Activision Publishing, Inc. System and method of generating and distributing video game streams
US10245509B2 (en) 2015-10-21 2019-04-02 Activision Publishing, Inc. System and method of inferring user interest in different aspects of video game streams
US10376781B2 (en) 2015-10-21 2019-08-13 Activision Publishing, Inc. System and method of generating and distributing video game streams
US11679333B2 (en) 2015-10-21 2023-06-20 Activision Publishing, Inc. Methods and systems for generating a video game stream based on an obtained game log
US12161940B2 (en) 2015-10-21 2024-12-10 Activision Publishing, Inc. Methods and systems for enabling users to experience previously hidden information during a playable recreation of a video game session
US10694352B2 (en) 2015-10-28 2020-06-23 Activision Publishing, Inc. System and method of using physical objects to control software access
US12023593B2 (en) 2016-04-01 2024-07-02 Activision Publishing, Inc. System and method of generating and providing interactive annotation items based on triggering events in a video game
US10226703B2 (en) 2016-04-01 2019-03-12 Activision Publishing, Inc. System and method of generating and providing interactive annotation items based on triggering events in a video game
US10300390B2 (en) 2016-04-01 2019-05-28 Activision Publishing, Inc. System and method of automatically annotating gameplay of a video game based on triggering events
US11439909B2 (en) 2016-04-01 2022-09-13 Activision Publishing, Inc. Systems and methods of generating and sharing social messages based on triggering events in a video game
US10807003B2 (en) 2016-04-29 2020-10-20 Activision Publishing, Inc. Systems and methods for determining distances required to achieve a line of site between nodes
US10226701B2 (en) 2016-04-29 2019-03-12 Activision Publishing, Inc. System and method for identifying spawn locations in a video game
US10179289B2 (en) 2016-06-21 2019-01-15 Activision Publishing, Inc. System and method for reading graphically-encoded identifiers from physical trading cards through image-based template matching
US10573065B2 (en) 2016-07-29 2020-02-25 Activision Publishing, Inc. Systems and methods for automating the personalization of blendshape rigs based on performance capture data
US10586380B2 (en) 2016-07-29 2020-03-10 Activision Publishing, Inc. Systems and methods for automating the animation of blendshape rigs
US10702779B2 (en) 2016-11-17 2020-07-07 Activision Publishing, Inc. Bandwidth and processing efficient heatmaps
US10709981B2 (en) 2016-11-17 2020-07-14 Activision Publishing, Inc. Systems and methods for the real-time generation of in-game, locally accessible barrier-aware heatmaps
US10463964B2 (en) 2016-11-17 2019-11-05 Activision Publishing, Inc. Systems and methods for the real-time generation of in-game, locally accessible heatmaps
US10987588B2 (en) 2016-11-29 2021-04-27 Activision Publishing, Inc. System and method for optimizing virtual games
US10500498B2 (en) 2016-11-29 2019-12-10 Activision Publishing, Inc. System and method for optimizing virtual games
US10055880B2 (en) 2016-12-06 2018-08-21 Activision Publishing, Inc. Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional
US10991110B2 (en) 2016-12-06 2021-04-27 Activision Publishing, Inc. Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional
US10650539B2 (en) 2016-12-06 2020-05-12 Activision Publishing, Inc. Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional
US11423556B2 (en) 2016-12-06 2022-08-23 Activision Publishing, Inc. Methods and systems to modify two dimensional facial images in a video to generate, in real-time, facial images that appear three dimensional
US11741530B2 (en) 2017-02-23 2023-08-29 Activision Publishing, Inc. Flexible online pre-ordering system for media
US10861079B2 (en) 2017-02-23 2020-12-08 Activision Publishing, Inc. Flexible online pre-ordering system for media
US10818060B2 (en) 2017-09-05 2020-10-27 Activision Publishing, Inc. Systems and methods for guiding motion capture actors using a motion reference system
US11040286B2 (en) 2017-09-27 2021-06-22 Activision Publishing, Inc. Methods and systems for improved content generation in multiplayer gaming environments
US11117055B2 (en) 2017-12-06 2021-09-14 Activision Publishing, Inc. Systems and methods for validating leaderboard gaming data
US11911689B2 (en) 2017-12-19 2024-02-27 Activision Publishing, Inc. Synchronized, fully programmable game controllers
US10981051B2 (en) 2017-12-19 2021-04-20 Activision Publishing, Inc. Synchronized, fully programmable game controllers
US11666831B2 (en) 2017-12-22 2023-06-06 Activision Publishing, Inc. Systems and methods for determining game events based on a crowd advantage of one or more players in the course of a multi-player video game play session
US11148063B2 (en) 2017-12-22 2021-10-19 Activision Publishing, Inc. Systems and methods for providing a crowd advantage to one or more players in the course of a multi-player video game play session
US10864443B2 (en) 2017-12-22 2020-12-15 Activision Publishing, Inc. Video game content aggregation, normalization, and publication systems and methods
US12083440B2 (en) 2017-12-22 2024-09-10 Activision Publishing, Inc. Systems and methods for enabling remote viewers to participate in a multi-player video game play session
US11986734B2 (en) 2017-12-22 2024-05-21 Activision Publishing, Inc. Video game content aggregation, normalization, and publication systems and methods
US12161938B2 (en) 2017-12-22 2024-12-10 Activision Publishing, Inc. Systems and methods for generating tailored game event options to spectators
US11278813B2 (en) 2017-12-22 2022-03-22 Activision Publishing, Inc. Systems and methods for enabling audience participation in bonus game play sessions
US11413536B2 (en) 2017-12-22 2022-08-16 Activision Publishing, Inc. Systems and methods for managing virtual items across multiple video game environments
US10765948B2 (en) 2017-12-22 2020-09-08 Activision Publishing, Inc. Video game content aggregation, normalization, and publication systems and methods
US11806626B2 (en) 2017-12-22 2023-11-07 Activision Publishing, Inc. Systems and methods for incentivizing player participation in bonus game play sessions
US10596471B2 (en) 2017-12-22 2020-03-24 Activision Publishing, Inc. Systems and methods for enabling audience participation in multi-player video game play sessions
US11704703B2 (en) 2018-11-19 2023-07-18 Activision Publishing, Inc. Systems and methods for dynamically modifying video game content based on non-video gaming content being concurrently experienced by a user
US12086845B2 (en) 2018-11-19 2024-09-10 Activision Publishing, Inc. Systems and methods for dynamically modifying video game content based on non-video gaming content being concurrently experienced by a user
US11263670B2 (en) 2018-11-19 2022-03-01 Activision Publishing, Inc. Systems and methods for dynamically modifying video game content based on non-video gaming content being concurrently experienced by a user
US11883745B2 (en) 2018-11-19 2024-01-30 Activision Publishing, Inc. Systems and methods for providing a tailored video game based on a player defined time period
US11115712B2 (en) 2018-12-15 2021-09-07 Activision Publishing, Inc. Systems and methods for indexing, searching for, and retrieving digital media
US11679330B2 (en) 2018-12-18 2023-06-20 Activision Publishing, Inc. Systems and methods for generating improved non-player characters
US12005357B2 (en) 2018-12-20 2024-06-11 Activision Publishing, Inc. Systems and methods for controlling camera movements between storylines in a video game
US11305191B2 (en) 2018-12-20 2022-04-19 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11344808B2 (en) 2019-06-28 2022-05-31 Activision Publishing, Inc. Systems and methods for dynamically generating and modulating music based on gaming events, player profiles and/or player reactions
US12053700B2 (en) 2019-06-28 2024-08-06 Activision Publishing, Inc. Systems and methods for dynamically generating and modulating music based on gaming events, player profiles and/or player reactions
US11097193B2 (en) 2019-09-11 2021-08-24 Activision Publishing, Inc. Methods and systems for increasing player engagement in multiplayer gaming environments
US11423605B2 (en) 2019-11-01 2022-08-23 Activision Publishing, Inc. Systems and methods for remastering a game space while maintaining the underlying game simulation
US12420202B2 (en) 2019-11-08 2025-09-23 Activision Publishing, Inc. System and method for providing conditional access to virtual gaming items
US11712627B2 (en) 2019-11-08 2023-08-01 Activision Publishing, Inc. System and method for providing conditional access to virtual gaming items
US11537209B2 (en) 2019-12-17 2022-12-27 Activision Publishing, Inc. Systems and methods for guiding actors using a motion capture reference system
US11709551B2 (en) 2019-12-17 2023-07-25 Activision Publishing, Inc. Systems and methods for guiding actors using a motion capture reference system
US12013984B2 (en) 2019-12-17 2024-06-18 Activision Publishing, Inc. Systems and methods for guiding actors using a motion capture reference system
US12364923B2 (en) 2019-12-23 2025-07-22 Activision Publishing, Inc. Methods and systems for enabling spectator selection and modification of video game storylines
US11420122B2 (en) 2019-12-23 2022-08-23 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11839814B2 (en) 2019-12-23 2023-12-12 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11563774B2 (en) 2019-12-27 2023-01-24 Activision Publishing, Inc. Systems and methods for tracking and identifying phishing website authors
US12200012B2 (en) 2019-12-27 2025-01-14 Activision Publishing, Inc. Systems and methods for tracking and identifying phishing website authors
US11351459B2 (en) 2020-08-18 2022-06-07 Activision Publishing, Inc. Multiplayer video games with virtual characters having dynamically generated attribute profiles unconstrained by predefined discrete values
US11524234B2 (en) 2020-08-18 2022-12-13 Activision Publishing, Inc. Multiplayer video games with virtual characters having dynamically modified fields of view
US12343624B2 (en) 2020-08-18 2025-07-01 Activision Publishing, Inc. Multiplayer video games with virtual characters having dynamically modified fields of view
US11724188B2 (en) 2020-09-29 2023-08-15 Activision Publishing, Inc. Methods and systems for selecting a level of detail visual asset during the execution of a video game
US12134038B2 (en) 2020-09-29 2024-11-05 Activision Publishing, Inc. Methods and systems for generating proxy level of detail visual assets in a video game
US11717753B2 (en) 2020-09-29 2023-08-08 Activision Publishing, Inc. Methods and systems for generating modified level of detail visual assets in a video game
US12134039B2 (en) 2020-09-29 2024-11-05 Activision Publishing, Inc. Methods and systems for selecting a level of detail visual asset during the execution of a video game
US11833423B2 (en) 2020-09-29 2023-12-05 Activision Publishing, Inc. Methods and systems for generating level of detail visual assets in a video game
US11439904B2 (en) 2020-11-11 2022-09-13 Activision Publishing, Inc. Systems and methods for imparting dynamic and realistic movement to player-controlled avatars in video games
US12172075B2 (en) 2020-11-11 2024-12-24 Activision Publishing, Inc. Systems and methods for programming movements of player-controlled avatars in video games
US11794104B2 (en) 2020-11-11 2023-10-24 Activision Publishing, Inc. Systems and methods for pivoting player-controlled avatars in video games
US12179113B2 (en) 2020-12-09 2024-12-31 Activision Publishing, Inc. Methods and systems for dynamically selecting and modifying digital assets within game elements of a multiplayer video game
US12097430B2 (en) 2020-12-28 2024-09-24 Activision Publishing, Inc. Methods and systems for generating and managing active objects in video games
US12204660B2 (en) 2020-12-30 2025-01-21 Activision Publishing, Inc. Distributed data storage system providing enhanced security
US11794107B2 (en) 2020-12-30 2023-10-24 Activision Publishing, Inc. Systems and methods for improved collision detection in video games
US12064688B2 (en) 2020-12-30 2024-08-20 Activision Publishing, Inc. Methods and systems for determining decal projections intersecting spatial units in a frame of a game space
US12370445B2 (en) 2021-11-12 2025-07-29 Activision Publishing, Inc. Computer implemented method of scalably generating gaming assets for rendering during gameplay

Also Published As

Publication number Publication date
US7884819B2 (en) 2011-02-08
KR101054702B1 (ko) 2011-08-08
KR20090057994A (ko) 2009-06-08
EP2076888A1 (en) 2009-07-08
JP2010505164A (ja) 2010-02-18
EP2076888B1 (en) 2015-07-01
US20080074420A1 (en) 2008-03-27
WO2008037599A1 (en) 2008-04-03

Similar Documents

Publication Publication Date Title
JP5063698B2 (ja) レイ・トレーシング画像処理システムにおけるピクセル色の決定方法および画像処理システム
JP5043939B2 (ja) 3次元シーンの境界ボリュームを定めるノードを有する空間インデックスを用いる光線追跡のための操作を行なうプログラムを含むコンピュータ可読媒体及びシステム
US7940265B2 (en) Multiple spacial indexes for dynamic scene management in graphics rendering
US8018453B2 (en) Deferred acceleration data structure optimization for improved performance
JP5063695B2 (ja) 空間インデックスをトラバースする方法及びシステム
US8004518B2 (en) Combined spatial index for static and dynamic objects within a three-dimensional scene
US8085267B2 (en) Stochastic addition of rays in a ray tracing image processing system
US7893936B2 (en) Generating efficient spatial indexes for predictably dynamic objects
US8022950B2 (en) Stochastic culling of rays with increased depth of recursion
US7773087B2 (en) Dynamically configuring and selecting multiple ray tracing intersection methods
US7782318B2 (en) Method for reducing network bandwidth by delaying shadow ray generation
US20080122838A1 (en) Methods and Systems for Referencing a Primitive Located in a Spatial Index and in a Scene Index
US8619078B2 (en) Parallelized ray tracing
US8339398B2 (en) Integrated acceleration data structure for physics and ray tracing workload
US7737974B2 (en) Reallocation of spatial index traversal between processing elements in response to changes in ray tracing graphics workload
US7688320B2 (en) Methods and systems for texture prefetching based on a most recently hit primitive algorithm
US20080192050A1 (en) Efficient and Flexible Data Organization for Acceleration Data Structure Nodes
US20080088619A1 (en) Branch Prediction for Acceleration Data Structure Traversal
US8102389B2 (en) Box casting using an integrated acceleration data structure

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120606

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: 20120710

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120807

R150 Certificate of patent or registration of utility model

Ref document number: 5063698

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: 20150817

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150817

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150817

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250