JPH10208077A - グラフィック画像を表示上にレンダリングするための方法および画像レンダリングシステム、ならびにグラフィック画像を表示上に生成するための方法 - Google Patents

グラフィック画像を表示上にレンダリングするための方法および画像レンダリングシステム、ならびにグラフィック画像を表示上に生成するための方法

Info

Publication number
JPH10208077A
JPH10208077A JP10002360A JP236098A JPH10208077A JP H10208077 A JPH10208077 A JP H10208077A JP 10002360 A JP10002360 A JP 10002360A JP 236098 A JP236098 A JP 236098A JP H10208077 A JPH10208077 A JP H10208077A
Authority
JP
Japan
Prior art keywords
objects
visible
ray
rendering
box
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.)
Pending
Application number
JP10002360A
Other languages
English (en)
Inventor
Henry A Sowizral
ヘンリー・エイ・ソウィズラル
Karel Zikan
カレル・ズィカン
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.)
Boeing Co
Original Assignee
Boeing Co
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 Boeing Co filed Critical Boeing Co
Publication of JPH10208077A publication Critical patent/JPH10208077A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 複雑な構造のグラフィック画像を高速でレン
ダリングする画像レンダリングシステムを提供する。 【解決手段】 複雑な構造は、オブジェクトの階層構造
に組織化された複数のオブジェクトによって表わされ
る。画像レンダリングシステム(20)は、所与の視覚
座標から複数の光線(55)を投射して、各光線につい
て、オブジェクトの階層内のどのオブジェクトと光線が
交差するかを判定し、光線と交差したオブジェクトのう
ち所与の視覚座標から最も近いオブジェクトを判定し
て、それを可視オブジェクトの集合に追加する。それら
追加されたオブジェクトの各々は、それらを追加するプ
ロセスとは分離されて非同期で実行されるプロセスによ
って、現時点の視覚座標に従って表示上にレンダリング
されるので、同システムはオブジェクトを実時間フレー
ム速度でレンダリングすることが可能である。

Description

【発明の詳細な説明】
【0001】
【発明の分野】この発明は一般に、複雑な構造のコンピ
ュータ画像モデリングのための方法および装置に関し、
より特定的には、コンピュータによって生成された複雑
な構造の画像を一組の表示上に高速でレンダリングする
ための方法および装置に関する。
【0002】
【発明の背景】対話型コンピュータによって生成される
表示は、写実的な3次元のモデルを視覚化する。このよ
うなモデルは、ユーザの制御のもと、たとえば、機械的
なコンピュータ化された設計システムに見られるよう
に、設計評価ならびに、訓練および仮想環境にとって有
益である。このようなコンピュータ視覚化システムは、
ユーザによる対話型制御によって、コンピュータワーク
ステーションの画面上に、擬似観測者の視点から見た3
次元の複雑な構造の画像を提供する。このコンピュータ
によって生成された表示を十分滑らかにかつ素早くレン
ダリングすることができれば、ユーザは、擬似観測者が
その構造物内を移動するに従って、仮想環境をあたかも
リアルタイムで探検しているような感覚を持つことがで
きる。
【0003】対話型の、コンピュータによって生成され
る複雑な構造の視覚化システムの一応用は、航空機等の
非常に複雑な構造物のモデリングに見出される。ユーザ
が全構造物内を対話式に移動することを可能にするシス
テムは、その製品の最終的な成功に関連する数多くの局
面において支援を提供することができる。たとえば、複
雑な航空機構造が対話式に表示されることによって、干
渉およびはめ合いの問題が見出され、その製品の、物理
的なモックアップ内では通常隠された区域を「見る」こ
とが可能となり、密集した区域内を通してダクトおよび
配線の経路を設計することが可能となり、「生きた」モ
デルを提供することによって混成の生産チームが作業す
ることが容易となり、しかも、図面および訓練用媒体の
作成のサイクル時間およびコストを減じることが可能と
なる。コンピュータグラフィックスを用いたシステムが
成熟するにつれて、その方法によって表示されるべき3
次元モデルデータベースもまた改良されてきている。実
世界の構造は、コンピュータの記憶媒体に通常記憶され
得るものよりはるかに複雑であるため、開発されるモデ
ルの複雑性は、従来は、それを表示するのに要求される
ハードウェアの容量を超えるものであった。この問題を
取扱うために、目に見える複雑さにはわずかな変化しか
もたらすことのないように留意しながら、モデルの複雑
さを減じるために、さまざまな方法が開発されてきた。
これらの方法は、2つの範疇に分類することが可能であ
る。すなわち、カリングおよび細部省略である。
【0004】カリングとは、現時点における視点からは
見えないオブジェクトを表示しないようにする試みであ
る。これらのオブジェクトはそのシーンから「摘みとら
れる」と考えられる。オブジェクトは、別のオブジェク
トによって隠されているか、または、現時点における視
界の外側にあるために摘みとられ得る。視界外をカリン
グすることは多くの場合簡単であるのに対し、隠された
オブジェクトのカリングは、この問題を解決するための
アルゴリズムが考案されてきているにもかかわらず困難
な場合がある。カリングにおいて重要なのは、1シーン
内のすべてのオブジェクトの可視性を素早く判定する方
法を有することである。
【0005】細部省略とは、認知されたシーンの複雑性
に対するそのオブジェクトの重要性に従って、オブジェ
クトをさまざまなレベルの詳細さで表示する試みであ
る。この認知された重要性は、従来は、その表示画面要
素(画素)内のそのオブジェクトのサイズによって測定
されてきた。細部省略を用いる際に重要なのは、シーン
内の複雑なオブジェクトのすべてに対して、詳細さのレ
ベルを複数準備することである。
【0006】上述の技術は双方とも、画像レンダリング
プロセスの速度を増すが、どちらのプロセスも、何百万
もの多角形を含む複雑なモデルを、15〜30フレーム
/秒程度の、許容できるリアルタイムのフレーム速度で
効率的にレンダリングすることはできない。たとえば、
カリングは、1/30秒毎のシーンの描写と歩調を揃え
るほどには速くは実行されない。これに対し、細部省略
は、オブジェクトが特に2次元の構造または表面構造で
ある場合に、オブジェクト内のパターンまたはテクスチ
ャの複雑性を捕らえるのに非常に有益である。しかしテ
クスチャおよびパターンは、視覚化を実行する際に有益
さではるかに劣る。なぜなら、オブジェクトは異なる視
点からは異なって見えるにもかかわらず、テクスチャ
は、1つの視点のみから、オブジェクトの外見を正しく
捕らえるためである。
【0007】必要とされるのは、実時間周波数でのシー
ンの描写と歩調を揃えるのに十分な速度で、大量のオブ
ジェクトを処理することのできる、方法および装置であ
る。この方法および装置は、表示の境界より外側である
かまたは別のオブジェクトによって完全に隠されたオブ
ジェクトを処理することは避けなければならない。しか
も、オブジェクトの描写速度がオブジェクトの処理速度
にまで遅くされることのないように、オブジェクトの処
理は、適切なオブジェクトの描写から分離されねばなら
ない。以下に述べるように、この発明は、これらの規準
を満たし、かつ、先行技術における他の欠点を解決す
る、方法および装置を提供する。
【0008】
【発明の概要】この発明に従うと、複数のオブジェクト
によって表される複雑な構造のグラフィック画像を高速
でレンダリングするための、方法および装置が提供され
る。より特定的には、所与の視覚座標から複数の光線を
投射して、投射した各々の光線について、その投射した
光線が横切るオブジェクトのうち所与の視覚座標に最も
近いオブジェクトを、可視オブジェクトの集合に追加す
る、レイキャスティングルーチンが実現される。また、
レイキャスティングルーチンによって可視オブジェクト
の集合にオブジェクトが追加されるにつれて、現時点の
視覚座標に従って、可視オブジェクトの集合内の各オブ
ジェクトを表示上にレンダリングする、オブジェクトレ
ンダリングルーチンが実現される。
【0009】この発明のさらなる局面に従うと、複数の
レイキャスティングルーチンは、各レイキャスティング
ルーチンが可視オブジェクトの集合にオブジェクトを同
時に追加することのできるよう、並行に実現される。さ
らに、立体視を達成するために、複数の離散的オブジェ
クトレンダリングルーチンが並行に実現されて、各レイ
キャスティングルーチンが可視オブジェクトの集合にオ
ブジェクトを追加する一方で、各オブジェクトレンダリ
ングルーチンが可視オブジェクトの集合内の各オブジェ
クトを現時点における視覚座標に従って表示上にレンダ
リングできるようにする。
【0010】この発明のまたさらなる局面に従うと、複
雑な構造を表わす複数のオブジェクトは組織化され、オ
ブジェクトの階層を形成する。このオブジェクト階層
は、複雑な構造を囲むルートボリュームと、複数のオブ
ジェクトの各々を囲む下位ボリュームと、各オブジェク
トの一部分を囲む縮小下位ボリュームとを含む。どのオ
ブジェクトを光線が横切ったかを判定するために、レイ
キャスティングルーチンが、オブジェクトの階層を探索
して、光線が横切った縮小下位ボリュームを突き止め
る。したがって、光線が横切った各縮小下位ボリューム
について、レイキャスティングルーチンは、どの縮小下
位ボリュームが所与の視覚座標に関して最も小さい距離
を有するかを判定し、その後、その縮小下位ボリューム
に関連するオブジェクトを、可視オブジェクトの集合内
に記憶する。
【0011】以上の概要から容易に理解され得るよう
に、この発明は、複雑な構造のグラフィック画像を高速
でレンダリングするための方法および装置を提供する。
この発明は、現時点の視覚座標から見ることのできるオ
ブジェクトのみをレンダリングする。さらに、可視オブ
ジェクトを可視オブジェクトの集合に追加するプロセス
が、可視オブジェクトをレンダリングするプロセスと分
離されるため、オブジェクトがレンダリングされる速度
がオブジェクトが処理される速度にまで遅くされること
はない。
【0012】この発明の以上の局面および付随する利点
の多くは、添付の図面に関連して以下の詳細な説明を参
照されることにより、よりよく理解され、かつより容易
に認識されるであろう。
【0013】
【好ましい実施例の詳細な説明】図1は、一組の表示3
6上に複雑な構造の3次元のグラフィックモデルを高速
でレンダリングするのに使用される、画像レンダリング
システム20を示す。この発明の画像レンダリングシス
テム20がコンピュータモデルを作成するのに特に優れ
た性能を示す種類の複雑な構造の例が、図2に示され
る。シーン52は、航空機構造の断面図である。シーン
52は、胴体54、各シート58、およびデッキ56等
の、構成部品または「オブジェクト」に分割することが
可能である。図面の簡略化のために、シーン52は2次
元のみで示されているが、以下の説明が、航空機構造の
3次元の表示にも等しく適用可能であることは、当業者
には理解されるであろう。シーン52はデジタルフォー
マットで、いくつかのよく知られているCAD/CAM
プログラムのいずれかによって生成され得る、生の3次
元のオブジェクトのデータベース22として、存在し得
る。この発明の好ましい実施例においては、このデータ
ベースは、CATIAとして知られている、CAD/C
AMプログラムによって生成された。これは、デソート
(Dessault)よりのライセンスのもとで入手可能であ
る。
【0014】この発明に従えば、画像レンダリングシス
テム20はシーン52をオブジェクトに分けて、そのオ
ブジェクトを1対の表示36上にレンダリングする。立
体視を達成するために、ユーザの各目につき1つの表示
36が用いられる。レンダリングされるべきオブジェク
トをある視点から可視であるオブジェクトのみに限定す
ることにより、また、どのオブジェクトが可視かの判定
とは無関係にオブジェクトを表示上にレンダリングする
ことによって、この発明は、シーン52内に示される航
空機構造または他の複雑な構造が表示される速度を大い
に増す。実際に、画像レンダリングシステム20は、複
雑な3次元の構造物のリアルタイムの、すなわち1秒あ
たり約20から30フレームの、レンダリングを行なう
ことが可能である。
【0015】再び図1を参照して、この発明の画像レン
ダリングシステム20は、以下の3つの主要プロセスを
使用して複雑な構造の3次元のグラフィック画像を高速
でレンダリングする。3つの主要プロセスとは、オブジ
ェクト階層構造構築プロセス24、レイキャスティング
プロセス28、およびオブジェクトレンダリングプロセ
ス34である。オブジェクト階層構造構築プロセス24
は、生の3次元のオブジェクトのデータベース22を処
理して、シーン52内に表示される航空機構造を表わす
オブジェクトの階層構造を作成し、そのオブジェクトの
階層構造をデータベース26内に記憶する。レイキャス
ティングプロセス28は、観測者の連続する視点から可
視であるオブジェクトの集合を判定して、可視オブジェ
クトの集合をデータベース30内に記憶する。最後に、
オブジェクトレンダリングプロセス34は、データベー
ス30内に記憶された可視オブジェクトの集合からオブ
ジェクトを読出して、観測者の現時点の視点からの見方
で、可視オブジェクトを表示36上に描く。観測者の現
時点の視点が変化すると、それに従って、可視オブジェ
クトがオブジェクトレンダリングプロセス34によって
描き直される。
【0016】この発明の好ましい実施例においては、5
つのレイキャスティングプロセス28が並行して実行さ
れる一方で、2つのオブジェクトレンダリングプロセス
34が並行に実行される。しかし、レイキャスティング
プロセス28は、オブジェクトレンダリングプロセス3
4とは分離されかつ非同期で実行されるため、レイキャ
スティングプロセス28がオブジェクトのレンダリング
の速度を遅くすることはない。したがって、レイキャス
ティングプロセス28の各々がデータベース26内に記
憶されたオブジェクトの階層構造を処理して、可視オブ
ジェクトをデータベース30内に記憶された可視オブジ
ェクトの集合に追加する一方で、オブジェクトレンダリ
ングプロセス34の各々はデータベース30内に記憶さ
れた可視オブジェクトの集合から、可視オブジェクトを
同時に読出して、それらを表示36上にレンダリングす
るのである。
【0017】この発明の一実施例においては、レイキャ
スティングプロセス28および画像レンダリングプロセ
ス34は大規模なコンピュータ33によって実行され
る。このコンピュータ33の構成要素を図3に示す。5
つのレイキャスティングプロセス28の各々は、別個の
レイキャスティングプロセッサ128上で実行される。
また、2つの画像レンダリングプロセス34の各々は、
別個のレンダリングプロセッサ134上で実行される。
さらに、視覚座標プロセッサ132が、観測者の視覚座
標を処理するよう設けられて、これが、視覚座標データ
ベース32内に記憶される。レイキャスティングプロセ
ッサ128、レンダリングプロセッサ134および視覚
座標プロセッサ132はバス136によって、読出専用
メモリ(ROM)140およびランダムアクセスメモリ
(RAM)142に結合される。これらプロセッサは、
ROM140内に記憶されたプログラム命令およびRA
M142内に一時的に記憶されたプログラム命令に応答
する。プロセッサはまた、ハードディスクドライブ、フ
ロッピーディスクドライブ、テープドライブ、光ドライ
ブ、またはそれらの組合せ等の、永久記憶装置138に
も結合される。永久記憶装置138は、光線の投射、視
覚座標の処理およびオブジェクトのレンダリングに必要
な、プログラムコードおよびデータを記憶する。さら
に、永久記憶装置138は、オブジェクトの階層を記憶
するデータベース26、可視オブジェクトの集合を記憶
するデータベース30、および、視覚座標を記憶するデ
ータベース32を含む。永久記憶装置138、RAM1
42およびROM140は、この発明のためには、「共
用メモリ」と称されるが、これは、それらが、レイキャ
スティングプロセッサ128によって、可視オブジェク
トが書込まれ、かつ、レンダリングプロセッサ134に
よって、可視オブジェクトが非同期で読出される、可視
オブジェクトのデータベース30を記憶しているためで
ある。オブジェクトをレンダリングするために使用され
るコンピュータが図3に示されるよりもより多くの構成
要素を含み得ることは、当業者には明らかであろう。そ
のような構成要素は従来の技術によるものであるため図
示しない。また、それらの説明はこの発明の理解には不
要である。
【0018】レイキャスティングプロセス28およびオ
ブジェクトレンダリングプロセス34がコンピュータ3
3によって実行可能となる前に、データベース22内に
記憶された生の3次元のオブジェクトを処理して、シー
ン52を表わすオブジェクトの階層構造を形成しなくて
はならない。この発明の好ましい実施例においては、生
の3次元のオブジェクトは、コンピュータ31によって
処理され、かつ、オブジェクト階層構造データベース2
6内に記憶される。コンピュータ31の構成要素を図4
に示す。オブジェクト階層構造構築プロセス24は、中
央処理装置(CPU)68によって行なわれる。CPU
68はバス76によって、読出専用メモリ(ROM)7
4とランダムアクセスメモリ(RAM)72とに結合さ
れる。CPUは、ROM74内に記憶されたプログラム
命令、および、RAM72内に一時的に記憶されたプロ
グラム命令に応答する。CPUはまた、ハードディスク
ドライブ、フロッピーディスクドライブ、テープドライ
ブ、光ドライブ、またはそれらの組合せ等の、永久記憶
装置70にも結合される。永久記憶装置70は、オブジ
ェクト階層構造の構築のために必要なプログラムコード
およびデータを記憶する。さらに、永久記憶装置70
は、生の3次元のオブジェクトのデータベース22、お
よび、CPU68によって構築されるオブジェクトの階
層構造を記憶するデータベース26を含む。コンピュー
タ31が図4に示されるものよりも多くの構成要素を含
み得ることは、当業者には理解されるであろう。そのよ
うな構成要素は図示されていないが、これはそれらが従
来の技術のものであるためであって、それらの説明は、
この発明を理解するのには不要である。この発明の他の
実施例においては、オブジェクトが、レイキャスティン
グプロセス28およびオブジェクトレンダリングプロセ
ス34を実行するコンピュータ33によって処理されて
オブジェクト階層構造が得られ得ることもまた、当業者
には理解されるであろう。
【0019】図5は、オブジェクトの階層構造を構築す
るためにコンピュータ31のCPU68によって実行さ
れる論理を示す。以下の説明から、オブジェクトの階層
構造が2つの主要ステップで構築されることが理解され
るであろう。2つの主要ステップとは、第1に、シーン
の各個別のオブジェクトを囲む葉を持つ境界ボックス階
層を作成し、次に、その境界ボックス階層の各葉がルー
トとなるような下位階層を各オブジェクトに対して作成
して、そのオブジェクトをさらに規定する、というもの
である。
【0020】この点に関して、論理は、図5内のブロッ
ク150から始まって、ブロック152に移り、ここ
で、境界ボックス階層を構築するためにサブルーチンが
初期化される。このサブルーチンは、データベース26
内にある、シーン52の生の3次元のオブジェクトを処
理して、シーン内のすべてのオブジェクトを囲むルート
ボックスから、その個々のオブジェクトまたは一部分を
囲む下位ボックスへの、境界ボックスまたはボリューム
の階層構造を形成する。1994年10月26日出願
の、エリック・L.・ブレックナー(Eric L. Brechne
r)への、「コンピュータによって生成される複雑な構
造の表示に使用される、空間的に均衡を保たれた境界ボ
リューム階層を作成するための方法(“METHOD FOR CRE
ATING SPATIALLY BALANCED BOUNDING VOLUME HIERARCHI
ES FOR USE IN A COMPUTER GENERATED DISPLAY OF A CO
MPLEX STRUCTURE ”)」と題された、共通に譲渡された
米国特許出願連続番号第08/329,356号に記載
されるように、境界ボックス階層サブルーチンは、シー
ン内の各およびすべてのオブジェクトを、シーンの座標
システムと整列された3次元のボックスで取囲む。上記
出願の開示および図面が、特に、ここに引用により援用
される。それら軸整列されたボックスは、オブジェクト
のボリュームを近似するための、非常に緻密でかつ効率
的なデータ構造を提供する。境界ボックス階層内の各レ
ベルにおいて、親の境界ボックスはその子である境界ボ
ックスのすべてを包含する。シーン52を表わす境界ボ
ックス階層38を図6に示す(先行技術)。境界ボック
ス階層38はルート40を有する。ルート40は3次元
のボックスであって、これは、シーン52内のオブジェ
クトのすべて、すなわち、胴体54、シート58、およ
びデッキ56を取囲む。ルート40は多数の子42を含
み、子の各々は、シーン52内のオブジェクトの部分集
合を取囲む3次元のボックスを含む。子42の各々もま
た、多数の子を有する場合がある。これらルート40の
「孫」の各々もまた、多数の子を有する可能性がある、
等である。しかし、子がそのさらなる子を有さない場合
には、その子は「葉」と称される。図6に示される境界
ボックス階層38においては、子42の各々は、その子
44を有する。子44は、自身の子を有さないので、そ
れらは葉44と称される。葉44の各々は、シーン内
の、シート58またはデッキ56等の個々のオブジェク
トを取囲む、3次元のボックスを含む。
【0021】境界ボックス階層38は画像レンダリング
システム20によって使用されて、シーン内のどのオブ
ジェクトが観測者の現時点の視点から観測者に可視かが
判定される。下により詳細に示されるように、画像レン
ダリングシステム20によって実行されるレイキャステ
ィングプロセス28の各々は、観測者の現時点の視点か
ら多数の光線をモデル空間内に投射する。観測者にどの
オブジェクトが可視かを判定するために、まず、現時点
の視点から投射されるどの光線がどのオブジェクトと交
わるかを判定する必要がある。これは、各光線をオブジ
ェクトの階層のルート40に対してチェックすることに
よって達成される。もし光線がルート40と交わる場合
には、その光線がその階層内のより下位である1または
複数のオブジェクトと交差する可能性がある。すなわ
ち、その光線はそのルートの1または複数の子、孫等と
交差する可能性がある。したがって、葉44に達するま
で、その光線はそのルートの子、孫等に対してチェック
される。もし光線が葉44と交差する場合には、そのオ
ブジェクトは、その投射された光線が「潜在的に」交差
するものと識別されたわけである。したがって、そのオ
ブジェクトは観測者にとって可視である可能性があると
識別されたわけである。その光線がそのオブジェクトと
交差するか、また、そのオブジェクトが可視かを確認す
るために、さらなる分析を行なう必要があるが、それに
ついては、以下により詳細に記載する。しかし、オブジ
ェクトをそのような階層内に組織化して、上述のような
方法でその階層を探索することによって、候補となるオ
ブジェクトが計算をはるかに節約して識別されること
は、当業者には理解されるであろう。
【0022】このような追加的な検査がなぜ必要である
かを示す例を、図7(A)および図7(B)に示す。図
7(A)は、航空機構造の胴体54を2つに分割した図
を示す。その左半分は境界ボックス60によって囲ま
れ、右半分は境界ボックス61によって取囲まれてい
る。上の説明から、境界ボックス60および境界ボック
ス61の各々は、図6に示された境界ボックス階層38
の葉44を形成する。図7(B)は、ユーザの現時点の
視点から延びる光線が特定のオブジェクトと交差するか
どうかを判定するのに境界ボックスを使用することがい
かに困難であるかを示す。より具体的には、図7(B)
は、胴体54を2つに分割したその2つの部分をそれぞ
れ含む境界ボックス60および61、シート58を取囲
む境界ボックス59、ならびに、胴体54内に視点から
発せられる光線55を示す。光線が現時点の視点から延
びる場合、その光線はまず、胴体54の左半分を含む境
界ボックス60に当たる。しかし、胴体54のその左半
分は現時点の視点の後方である。すなわち、それは観測
者の後方にあって、したがって、見ることはできない。
光線55はその後、胴体54の右半分の境界ボックス6
1に当たる。しかし、この光線に沿って観測者に視覚可
能となる第1のオブジェクトは、境界ボックス59によ
って取囲まれたシート58であって、胴体54の右半分
ではないはずである。光線がシート58の境界ボックス
59と交差するのは、胴体54の左半分の境界ボックス
60および胴体54の右半分の境界ボックス61と交差
した後である。
【0023】光線がオブジェクトと交差するかどうかを
判定するのにそのオブジェクトの境界ボックスが単独で
は使用することができないため、そのオブジェクトのさ
らなる分析が必要となる。以下に説明するように、各境
界ボックス葉44は、多数の、均一の3次元の下位部分
に分割され、そのオブジェクトを一部分たりとも含まな
い下位部分は廃棄され、かつ、残りの下位部分は縮小さ
れて、それにより、それら下位部分がオブジェクトの表
面を、できる限り緊密に囲むようにする。これら縮小さ
れた下位部分の各々は、「シュリンクラップボックス」
と称される。オブジェクトの表面を囲むシュリンクラッ
プボックスは、オブジェクトをさらに規定して、オリジ
ナルの境界ボックス階層38内に、そのオブジェクトの
葉44をルートとする下位階層構造を形成する。このよ
うに、図5内の論理は、ブロック152の境界ボックス
階層を構築するためのルーチンから、ブロック154内
の、各オブジェクトのためにシュリンクラップボックス
下位階層構造を構築するためのサブルーチンへと進む。
【0024】図8(A)〜(D)および図9は、オブジ
ェクトがシュリンクラップボックスにいかに分割される
かを示す。図8(A)は、胴体54の左半分のための境
界ボックス60を示す。これは、4つの均一の下位部分
62a〜62dに分割されているが、もし胴体54の左
半分が3次元の形で示される場合には、境界ボックス6
0が8個の均一の下位部分に分割されることは、理解さ
れ得るであろう。下により詳細に記載するように、これ
ら4つの均一の下位部分62a〜62dは縮小されて、
図8(B)に示すように、4つのシュリンクラップボッ
クス62a′〜62d′が形成される。これらの各々
は、胴体オブジェクト54の左半分をできる限り近く囲
むが、胴体54の左半分の表面をより近く近似する、シ
ュリンクラップボックスを得ることも可能である。
【0025】図8(C)は、16個の等しい大きさを有
する下位部分64a〜64pにさらに分割された境界ボ
ックス60を示す。しかし、下位部分64f〜64hお
よび64j〜64lは、胴体54の左半分の一部分を含
まない。以下により詳細に説明するように、オブジェク
トの表面の一部分を有する下位部分のみが維持されて、
オブジェクトのためのシュリンクラップボックス下位階
層構造に付加される。空の下位部分64f〜64hおよ
び64j〜64lはそのオブジェクトのためのシュリン
クラップボックス下位階層構造に付加されることはな
い。残った下位部分64a〜64e、64i、および6
4m〜64pを縮小して、下位部分64f〜64hおよ
び64j〜64lを廃棄した結果を、図8(D)に示
す。下位部分64a〜64e、64i、および64m〜
64pは縮小されて、シュリンクラップボックス64
a′〜64e′、64i′および64m′〜64p′が
形成される。これらは、胴体の湾曲をほぼ近似する。
【0026】胴体54の左半分のために結果として得ら
れるシュリンクラップボックス下位階層46を、図10
に示す。胴体オブジェクト54の左半分のための境界ボ
ックス60(すなわち、境界ボックス階層38の葉4
4)は、4つの子62a′〜62d′を有する。シュリ
ンクラップボックス62a′は3つの子64a′、64
b′および64e′を有し、シュリンクラップボックス
62b′は2つの子64c′および64d′を、シュリ
ンクラップボックス62c′は3つの子64i′、64
m′および64n′を、シュリンクラップボックス62
d′は2つの子64o′および64p′を有する。結果
として得られるのが、シュリンクラップボックス下位階
層46であって、これは、胴体54の左半分の表面をほ
ぼ近似する。オブジェクトの表面をどの程度正確に近似
するかが、オブジェクトの境界ボックスを何回下位分割
するかに依存することは、当業者には明らかであろう。
しかし、下位部分が多くなればなるほど、シュリンクラ
ップボックスの下位階層46はより複雑になる。したが
って、この発明の好ましい実施例においては、オブジェ
クトの境界ボックス44を下位分割するための固定深さ
には、3レベル深さが選択される。
【0027】図9は、シュリンクラップボックスを使用
してシーン52を囲んだ場合の、最終的な結果を示す。
胴体54の全体が今やシュリンクラップボックスによっ
て囲まれているため、現時点の視点から発せられる光線
55は、胴体のいずれか半分の境界ボックス60または
61ではなく、シート58の境界ボックス59を交差す
る。したがって、シート58が可視オブジェクトの集合
に追加されて、オブジェクトレンダリングプロセス34
によって描かれる。これを以下により詳細に示す。
【0028】各オブジェクトのためのシュリンクラップ
ボックス下位階層構造46を構築するのに使用される論
理を、図11内により具体的に示す。この論理はブロッ
ク158から開始して、ブロック160に進み、ここ
で、図6に示される境界ボックス階層38内の第1のオ
ブジェクトが得られる。このオブジェクトが階層38の
葉44であることは明らかであろう。ブロック162に
おいて、変数nは、そのオブジェクトをルートとする下
位階層46のための予め定められた深さと等しく設定さ
れる。この発明の好ましい実施例においては、シュリン
クラップボックス下位階層の各々は、3レベル深さ(ル
ートは数えない)を有し、ここで、レベルn=0は下位
階層のルートであり、レベルn=3は下位階層の最も深
いレベルを意味する。上述のように、シュリンクラップ
ボックスの下位階層の深さは、どの程度のレベルの詳細
さが最終的にレンダリングされた画像に所望されるかに
従って増減が可能である。
【0029】各オブジェクトのためのシュリンクラップ
ボックス下位階層構造46を構築するには、まず、オブ
ジェクトの境界ボックスを分割した均一の下位部分に対
してメモリ内の記憶領域を割当て、それら下位部分を縮
小してシュリンクラップボックスを形成し、その後、オ
ブジェクトの一部を含むシュリンクラップボックスをそ
のオブジェクトのためのシュリンクラップボックス下位
階層構造46に追加する。このとき、論理はブロック1
62からブロック164へと進み、そこで、オブジェク
トの境界ボックスが23n個の均一の下位部分に分割され
て、それらが、メモリ内に、23n個のエントリを有する
一次元のアレイとして記憶される。
【0030】ブロック166において、深さnにおける
各下位部分のサイズが初期化される。より具体的には、
下位部分の基数、すなわち、その下位部分のいずれかの
隅を形成するx、y、z座標の最小値が、その特定の深
さにおける下位部分のために許容可能な最小の基数に初
期化され、その下位部分の範囲、すなわち、その下位部
分のいずれかの隅を形成するx、y、z座標の最大値
が、その特定の深さにおける下位部分のために許容可能
である最大範囲に初期化される。ブロック167におい
て、深さnで下位部分から作成されるべきシュリンクラ
ップボックスの寸法が初期化される。より具体的には、
深さnで作成されるべき各シュリンクラップボックスの
基数が、その深さにおける下位部分の範囲に等しく設定
され、一方、各シュリンクラップボックスの範囲が、そ
の下位部分の基数に等しく設定される。このように各シ
ュリンクラップボックスの寸法を逆にすることによっ
て、最終的に作成される各シュリンクラップボックスの
寸法は確実に適切なサイズとなる。
【0031】深さnにおける各下位部分の寸法が初期化
されると、論理は、判定ブロック168において、n=
0であるかどうかを判定する。もしそうでなければ、下
位階層46の各レベルにおける下位部分がまだ初期化さ
れていないことになる。したがって、論理はブロック1
70に進んで、そこで、値nがデクリメントされて、そ
れにより、下位階層46の最低の1つ上のレベルである
下位部分が初期化され得るようになる。その後、ブロッ
ク164からブロック170が繰返されて、可能なすべ
ての下位部分のためにメモリ内の記憶領域が割当てら
れ、かつ、基数および範囲が初期化される。nはこの発
明の好ましい実施例においては予め定められた深さ3に
初期化されるため、メモリは三次元の場合には(ルート
は含まずに)584個の下位部分に対して割当てられる
(8個の子と、64個の孫と、512個のひ孫であ
る)。しかし、この発明はまた、二次元のグラフィック
画像をレンダリングするのにも使用することが可能であ
る。その場合には、メモリは、276個の下位部分(4
個の子、16個の孫と、256個のひ孫)に対して割当
てられる。
【0032】下位部分の初期化およびメモリ内への下位
部分の割当が完了すると、論理は判定ブロック168か
らブロック172へと進み、そこで、シュリンクラップ
ボックス下位階層46の最も深いレベルにおける下位部
分のシュリンクラッピングが所与のオブジェクトのため
に行なわれる。先の説明から理解されるように、下位部
分を「シュリンクラップ」するということは、所与のレ
ベルにおいて予め初期化された下位部分の各々を、その
下位部分に含まれるオブジェクトの表面を最もよく近似
する大きさに縮小することを意味する。
【0033】最も深いレベルにおけるオブジェクトをシ
ュリンクラップするための論理を、図12および図13
内により詳細に示す。図12において論理はブロック1
84から開始して、ブロック186へと進み、そこで、
下位階層の最も深いレベルにある第1の予め初期化され
た下位部分が、メモリ内の、その最も深いレベルにおけ
る下位部分のために割当てられたアレイから得られる。
これを、または他の下位部分を、下位部分内で発見され
るオブジェクトの部分を最もよく近似するサイズへと縮
小するためには、そのオブジェクトがどのようにその下
位部分と交差するかを判定する必要がある。
【0034】オブジェクトがしばしば、二次元の三角形
のメッシュによって表わされる、すなわちモデリングさ
れることは、コンピュータグラフィックスの分野におけ
る当業者には理解されるであろう。したがって、オブジ
ェクトと下位部分との交差は、その下位部分とオブジェ
クトの表面を表わすメッシュの三角形との交差から判定
することが可能である。この発明の好ましい実施例にお
いては、各オブジェクトのための三角形のメッシュは、
オブジェクトのための境界ボックスを作成する間に計算
されるが、その方法はコンピュータグラフィックス分野
で周知であり、以下の文献でさらに説明されている。す
なわち、スクルーダ(Scroeder, W. J.),ザーグ(Zar
ge, J. A.),ローレンソン(Lorenson, W. E. )によ
る「三角形のメッシュのデシミネーション(Deciminati
on of Triangle Meshes )」、COMPUTER GRAPHICS (SI
GGRAPH '93 Proceedings), 26(2):65−70、
1992年7月発行、および、ホップ(Hoppe, H. ),
デローズ(DeRose, T.),ドゥカンプ(Duchamp, T.
), マクドナルド(McDonald, J.),ステュッツル(S
tuetzle, W.)による、「メッシュの最適化(Mesh Opti
mization )」、COMPUTER GRAPHICS (SIGGRAPH '93 Pr
oceedings),Annual Conference Series, 247−2
54、1993年8月発行、に記載されており、それら
双方の開示がここに引用により援用される。
【0035】したがって、下位階層の最も深いレベルに
おける第1の下位部分が得られると、ブロック188に
おいて、メッシュの、そのオブジェクトを表わすのに使
用された第1の三角形が、メモリから得られる。その三
角形は、自身の二次元のボックスによって囲まれてお
り、その基数および範囲はブロック190で計算され
る。判定ブロック192において、論理は、その三角形
が当てはまるボックスが所与の下位部分と交差するかど
うかを判定する。もしそうでなければ、論理は図13内
の判定ブロック212に進み、そこで、オブジェクトを
表わすのに使用されるメッシュの最後の三角形が処理さ
れたかどうかを判定する。もしまだであれば、論理はブ
ロック213に進んで、そこで、オブジェクトを表わす
のに使用されたメッシュの次の三角形が得られる。その
後論理はブロック190に戻って、その次の三角形が当
てはまるボックスの基数および範囲が計算される。この
ように、ボックス190および192は、メッシュの、
そのオブジェクトを表わすのに使用された各三角形につ
いて繰返される。
【0036】判定ブロック192の結果が肯定的であっ
て、所与の三角形を囲むボックスが所与の下位部分と交
差する場合には、論理はブロック194から198へと
進み、それにより、所与の三角形と下位部分との間の交
差の寸法が計算される。どのような所与の三角形も、以
下の3つの方法のうちいずれかで下位部分と交差するこ
とは明らかである。すなわち、(1)三角形の面領域が
所与の下位部分と交差する、(2)三角形の境界を形成
する線分が所与の下位部分と交差する、および(3)三
角形の頂点が所与の下位部分と交差する、である。これ
らいずれの場合にも、三角形と下位部分との交差は、そ
れら自身のボックスによって囲むことが可能な点の組を
規定する。以下により詳細に示すように、三角形と下位
部分との交差を囲むボックスの寸法を使用して、下位部
分はシュリンクラップされる。
【0037】ブロック194において、所与の三角形の
面領域と下位部分との間の交差を囲むボックスの、基数
および範囲が計算される。ブロック196においては、
三角形の境界と下位部分との間の交差を囲むボックス
の、基数および範囲が計算される。ブロック198にお
いては、三角形の頂点と下位部分のボリュームとの間の
交差を囲むボックスの、基数および範囲が計算される。
これら各々の場合の基数および範囲が、当該技術分野に
おいて周知の微分方程式を使用して計算されることは、
当業者には理解されるであろう。したがって、その具体
的な説明はしない。
【0038】図13において、論理は、ブロック194
から198において求められた情報を使用して所与の下
位部分をシュリンクラップする、一連のブロックへと進
む。より具体的には、論理は一連のブロック、200か
ら210へと進み、そこで、その下位部分の基数および
範囲が再び計算され、それにより、その下位部分から作
成されたシュリンクラップボックスの基数および範囲が
形成される。したがって、ブロック200から210に
おいては、各下位部分の再び計算された基数および範囲
は、その下位部分から作成されたシュリンクラップボッ
クスの基数および範囲と称される。このため、ブロック
200においては、シュリンクラップボックスの基数
は、シュリンクラップボックスの基数のための現時点に
おける値と、三角形の面領域と下位部分との交差を囲む
ボックスの基数とのうち最小値を、現時点の下位部分の
基数と比較して、その最大値と等しく設定される。換言
すれば、このシュリンクラップボックスの新しい基数
は、下位部分の基数か、または、現時点のシュリンクラ
ップボックスの基数と交差されたボックスの基数とのう
ち小さい方の値かの、いずれか大きい方に設定される。
下位部分の基数が、図11のブロック166において、
許容可能な最小値の基数に初期化されているため、ブロ
ック200における計算では、シュリンクラップボック
スの基数は、下位部分の基数より決して小さい値をとる
ことはない。逆に、下位部分から作成されたシュリンク
ラップボックスの基数の上限は、シュリンクラップボッ
クスの現時点における基数と、交差を囲むボックスの基
数とのうち、小さい方の値となる。
【0039】ブロック202において、現時点の下位部
分から作成されたシュリンクラップボックスの範囲を求
めるための、同様の計算が行なわれる。具体的には、新
しいシュリンクラップボックスの範囲は、シュリンクラ
ップボックスの範囲のための現時点の値と、三角形の面
領域と下位部分との交差を囲むボックスの範囲のうち大
きい方の値を、下位部分の範囲と比較して、その最小値
に等しく設定される。下位部分の範囲は、図11のブロ
ック166において、許容可能な限り大きい範囲として
初期化されているため、ブロック202における計算に
よって、シュリンクラップボックスの範囲が下位部分の
範囲よりも大きくなることは決してない。逆に、シュリ
ンクラップボックスの新しい範囲のための下限は、シュ
リンクラップボックスの現時点における範囲と、交差を
囲むボックスの範囲とのうち、大きい方の値となる。
【0040】下位部分から作成されたシュリンクラップ
ボックスのための基数および範囲が、ブロック204か
ら210においてさらに精密にされる。ブロック204
から210においては、基数および範囲が、ブロック2
00および202に関して上に記載したのと同様に繰返
し計算し直される。但し、三角形の境界と下位部分との
交差を囲むボックスの基数および範囲、ならびに、三角
形の頂点と下位部分との交差を囲むボックスの基数およ
び範囲が代わりに使用される。したがって、論理がブロ
ック210から出て判定ブロック212に進む時点で
は、オブジェクトの表面を最もよく近似して、その中に
オブジェクトがちょうど当てはまる、シュリンクラップ
ボックスのための基数および範囲の計算が完了している
ことになる。
【0041】シュリンクラップボックスの基数および範
囲が計算された後に、論理は判定ブロック212に進ん
で、オブジェクトの最後の三角形が処理されたかどうか
を判定する。もしまだであれば、論理はブロック213
に進んで、そこで、メッシュ内の、そのオブジェクトを
表わす次の三角形が得られる。その後論理は図12のブ
ロック190に戻って、その次の三角形を囲むボックス
のための基数および範囲を計算する。その後そのオブジ
ェクトの各三角形に対して、ブロック190からブロッ
ク213が繰返される。その後、メッシュ内のそのオブ
ジェクトを表わす最後の三角形に最終的に到達すると、
論理は判定ブロック212から判定ブロック214へと
進む。すべての三角形が処理された時点では、所与の下
位部分から作成されるべきシュリンクラップボックスが
精密にされて、そのシュリンクラップボックス内に含ま
れるオブジェクトの表面のために、可能な限り最もよい
近似が提供されることになる。
【0042】判定ブロック214において、論理は下位
階層46の最も深いレベルにおける最後の下位部分が処
理されたかどうかを判定する。もしまだであれば、シュ
リンクラップボックス下位階層46の最も深いレベルに
おける次の下位部分が、ブロック216で得られる。そ
の後論理はブロック188に戻り、シュリンクラップボ
ックス下位階層46の最も深いレベルにおける各下位部
分について、ブロック188からブロック216を繰返
す。その後、下位階層46の最も深いレベルにおける各
下位部分は、各下位部分を三角形のメッシュ内の各三角
形と比較することによって、ボックスに含まれるオブジ
ェクトの表面を最もよく近似するよう「シュリンクラッ
プ」される。下位階層46の最も深いレベルにおける最
後の下位部分が処理されると、論理はブロック218で
終了する。
【0043】再び図11を参照して、ブロック172に
おいて下位階層の最も深いレベルの下位部分がシュリン
クラップされた後に、論理はブロック174に進んで、
そこで、下位階層46の残りのレベルにおける下位部分
がシュリンクラップされる。下位階層の残りのレベルに
おける下位部分をシュリンクラップするための論理を、
図14により詳細に示す。論理はブロック220から開
始して、ブロック222に進み、そこで、nが再び、下
位階層のために予め定められた深さ、すなわち、n=3
に等しく設定される。ブロック224において、次に最
も深いレベル、すなわち、深さn−1における第1の下
位部分が得られて、それが親として記憶される。ブロッ
ク226において、その所与の親の子が得られる。上述
のように下位階層46の各レベルにおける下位部分は、
3n個のエントリを有する一次元のアレイとしてメモリ
内に記憶される。したがって、深さn−1における第1
の下位部分の子は、深さnにおけるシュリンクラップボ
ックスを記憶する対応するアレイの中の、最初の8個の
下位部分(今や、図12および図13に示された論理に
従って作成されたシュリンクラップボックス)である。
深さn−1における次の下位部分の子は、深さnにおけ
る次の8個の下位部分(今やシュリンクラップボックス
である)、等である。
【0044】ブロック228において、その親の最初の
子(すなわち、ブロック226で得られた8個のシュリ
ンクラップボックスのうち最初のボックス)が得られ
る。ブロック230において、その親の下位部分の基数
が再び計算される。すなわち、換言すれば、その親から
作成されたシュリンクラップボックスの基数が、その親
の基数とその子の基数とのうち最小値として計算され
る。ブロック232において、その親の範囲が再び計算
される。より具体的には、その親から作成されたシュリ
ンクラップボックスの範囲が、その親の範囲とその子の
範囲とのうち最大値に等しく設定される。
【0045】その親から作成されたシュリンクラップボ
ックスの基数および範囲の計算が完了すると、論理は判
定ブロック234に進み、そこで、その親の下位部分の
最後の子が処理されたかどうかを判定する。もしまだで
あれば、論理はブロック236に進んで、その親の下位
部分の次の子(すなわち、深さnにおける8個の子のう
ち次の子)が得られる。その後、所与の親の下位部分の
各子について、ブロック230からブロック236が繰
返される。したがって、シュリンクラップボックスがそ
のボックス内に含まれるオブジェクトの表面を最もよく
近似するまで、その親の下位部分から作成されたシュリ
ンクラップボックスの基数および範囲がさらに精密にさ
れる。換言すれば、どの子についても最小の基数と最大
の範囲とを有するシュリンクラップボックスが計算され
るのである。
【0046】所与の下位部分の最後の子の処理が済む
と、論理は判定ブロック234から判定ブロック238
へと進んで、深さn−1における最後の下位部分が処理
されたかどうかを判定する。もしまだであれば、論理は
ブロック240に進んで、深さn−1における次の下位
部分が得られる。ブロック230〜236はその後、深
さn−1におけるすべての下位部分について繰返され
る。したがって、所与の深さにおける各下位部分につい
て、新しいシュリンクラップボックスのための基数およ
び範囲が、その下位部分の各子の基数および範囲を使用
して計算される。深さn−1における最後の下位部分の
処理が終了すると、論理は判定ブロック238から判定
ブロック242に進み、そこで、シュリンクラップボッ
クス下位階層46の各レベルにおける下位部分がすべて
処理されたかどうか、すなわち、n=0であるかどうか
を判定する。もしそうでなければ、論理はブロック24
4に進んで、nのための値をデクリメントする。論理は
その後ブロック224に戻って、そこで、次に最も深い
レベルにおける第1の下位部分が得られる。ブロック2
24から242がその後、下位階層の予め定められたレ
ベルのすべてが処理され、かつ、そのすべてのレベルに
おけるシュリンクラップボックスの基数および範囲が判
定されるまで、下位階層内の次に深いレベルについて繰
返される。それがすべて終了した時点で、nはゼロに等
しくなり、論理は判定ブロック242からブロック24
6へと進み、そこで終了する。
【0047】再び図11を参照して、ブロック174に
おいてシュリンクラップボックス下位階層46の残りの
レベルにおける下位部分がシュリンクラップされると、
論理はブロック176に進む。ブロック176におい
て、シュリンクラップボックスは、境界ボックス階層3
8に、そのオブジェクトのための境界ボックス葉44を
ルートとする下位階層46として付加される。シュリン
クラップボックスを境界ボックス階層38に付加するた
めの論理を、図15および図16により詳細に示す。
【0048】論理は、図15内のブロック250から開
始して、ブロック252に進む。ここで、nが再び、そ
のオブジェクトのためのシュリンクラップボックス下位
階層46の予め定められた深さと等しく設定される。ブ
ロック254において、下位階層46内の最も深いレベ
ルの次に深いレベル、すなわちn−1における第1のシ
ュリンクラップボックスが得られて、これが、メモリ内
に親として記憶される。ブロック256において、その
親であるシュリンクラップボックスの子が得られる。上
述のように、第1の親であるシュリンクラップボックス
の子は、深さnにおけるシュリンクラップボックスのう
ち最初の8個のシュリンクラップボックスである。ブロ
ック258において、ブロック256で得られた子のう
ち最初の子が得られる。その後論理はブロック260に
進んで、その子が縮小されているかどうかが判定され
る。この判定は、子のシュリンクラップボックスの基数
および範囲を、そのシュリンクラップボックスが作成さ
れた元となったオリジナルの下位部分の基数および範囲
と比較することによって行なわれる。もし子のシュリン
クラップボックスが縮小されたものであれば、その子自
身、その子の兄弟および親を、シュリンクラップ下位階
層46に、または、境界ボックス階層38に追加される
べきオブジェクトに、追加する必要があると考えられ
る。したがって、論理は判定ブロック260から判定ブ
ロック266へと進んで、その子が下位階層46に既に
追加されているかどうかを判定する。
【0049】逆に、もしその子が縮小されたものでなけ
れば、その子自身またはその子の兄弟はいずれも、シュ
リンクラップボックス下位階層46に追加する必要はな
いと考えられる。この場合、論理は判定ブロック260
から判定ブロック262に進んで、その親の最後の子の
処理が終了したかどうかを判定する。もしまだであれ
ば、その親の次の子がブロック264で得られる。論理
はその後、判定ブロック260に戻って、次の子が縮小
されたものであるかどうかを再び判定する。ある子がそ
のオリジナルの大きさから縮小されたものであることが
発見されるまで、または、その親であるシュリンクラッ
プボックスの最後の子の処理が終了するまで、ブロック
260から264が繰返されることが理解されるであろ
う。もし親であるシュリンクラップボックスの最後の子
が処理されるまで繰返されるようであれば、その親であ
るシュリンクラップボックスのどの子も縮小されていな
いということであり、したがって、その親の子はシュリ
ンクラップボックス下位階層46に追加する必要はな
い。したがって、論理は判定ブロック262から直接、
図16の判定ブロック280に進む。判定ブロック28
0において、論理は、下位階層46の深さn−1におけ
る最後のシュリンクラップボックスの処理が終了したか
どうかを判定する。もしまだであれば、論理はブロック
281に進んで、深さn−1における次のシュリンクラ
ップボックスが得られて、それが、親のシュリンクラッ
プボックスとしてメモリ内に記憶される。論理はその後
ブロック256に戻って、その親であるシュリンクラッ
プボックスの子が得られる。
【0050】判定ブロック260に戻って、もし親であ
るシュリンクラップボックスの子のうち1つが縮小され
たものである場合には、論理は判定ブロック266へと
進み、そこで、その子がシュリンクラップボックス下位
階層46に既に追加されているかどうかを判定する。も
しまだであれば、その子自身またはその兄弟が、そのオ
ブジェクトのためのシュリンクラップ下位階層46に追
加されなければならないかどうかを判定する必要があ
る。もしその親がそれに含まれるオブジェクトの表面を
十分に近似する場合には、その子自身または兄弟を追加
する必要はない。しかし、その親が十分近似しない場合
には、その親とその子の双方を、そのオブジェクトのた
めのシュリンクラップ下位階層46に加える必要があ
る。
【0051】これに関して、論理は判定ブロック266
から判定ブロック268へと進んで、その親であるシュ
リンクラップボックスが二次元であるかどうかを判定す
る。もしそうであれば、その親であるシュリンクラップ
ボックスの子のすべては、必ず、同じく二次元のシュリ
ンクラップボックスである。さらに、二次元の親のボッ
クスの総面積は、親であるシュリンクラップボックスの
二次元の各々の子の面積の合計として近似され得る。し
たがって、ブロック274では、そのような方法で、親
であるシュリンクラップボックスの総面積が計算され
る。判定ブロック276において、論理は、ブロック2
74で求められた近似の総面積を、その親であるシュリ
ンクラップボックスの基数および範囲を使用して求めた
実際の面積で除した値が、予め定められた割合より小さ
いかどうかを判定する。この発明の好ましい実施例にお
いては、予め定められた割合として、0.8すなわち8
0%を使用するが、オブジェクトの表面のどの程度緊密
な近似が所望されるかに従って、これよりも小さいまた
は大きい所定の割合を使用することが可能であること
は、当業者には理解されるであろう。もしその値が予め
定められた割合よりも大きければ、その親のシュリンク
ラップボックスは、その中に当てはまるオブジェクトの
表面の満足な近似であって、したがって、その親のシュ
リンクラップボックスの子を下位階層46に加える必要
はない。したがって、論理は判定ブロック276から判
定ブロック280に進んで、深さn−1における最後の
シュリンクラップボックスが処理されたかどうかを判定
する。もし判定ブロック280の結果が否定的であれ
ば、その深さn−1における次のシュリンクラップボッ
クスがブロック281で得られる。ここで、親であるシ
ュリンクラップボックスが、ブロック276において、
自身が含むオブジェクトの表面を満足に近似していると
判定される場合があるが、その場合、即座にその親をシ
ュリンクラップボックス下位階層46に加える必要はな
いと理解されたい。むしろ、その親は、自身が含むオブ
ジェクトの表面を満足に近似しない別のシュリンクラッ
プボックスの子として、そのオブジェクトのためのシュ
リンクラップ下位階層46に追加されるであろう。さら
に、もし親であるシュリンクラップボックスがゼロボリ
ュームしか有さない場合、すなわち、親であるシュリン
クラップボックスがそのオブジェクトと交差しない場合
には、親であるシュリンクラップボックスも、親である
シュリンクラップボックスの子も、そのシュリンクラッ
プボックス下位階層46に加えられることはない。
【0052】判定ブロック276に戻って、もしその結
果が肯定的であれば、親であるシュリンクラップボック
スは十分な大きさを有する。したがって、論理はブロッ
ク276から図16のブロック278へと進む。ブロッ
ク278において、親であるシュリンクラップボックス
および、ゼロでない面積またはゼロでないボリュームを
有するその子のすべてが、そのオブジェクトのためのシ
ュリンクラップ下位階層46に追加される。ブロック2
78が最初に反復される間に、下位階層46がメモリ内
に作成されるが、ここで、親のシュリンクラップボック
スはルートとして追加され、親であるシュリンクラップ
階層の子が葉として追加される。ブロック278が続け
て反復された後に、付加的なシュリンクラップボックス
が、最初となった親の兄弟として、またはおそらくは、
祖父母もしくは曾祖父母として、下位階層46に追加さ
れる。しかし、子を階層構造に付加することは、当業者
にはよく知られていることであり、したがって、ここで
さらに詳細に説明することはしない。
【0053】ゼロでない面積またはゼロでないボリュー
ムを有する親およびその子がブロック278でそのオブ
ジェクトのためのシュリンクラップボックス下位階層4
6に追加されると、論理は判定ブロック280に進み、
そこで、深さn−1における最後のシュリンクラップボ
ックスが処理されたかどうかを判定する。上述のよう
に、もし判定ブロック280の結果が否定的であれば、
ブロック281において、深さn−1における次のシュ
リンクラップボックスが得られて、それが親としてメモ
リ内に記憶される。その後、ブロック256から281
が、下位階層の深さn−1における各シュリンクラップ
ボックスについて繰返される。換言すれば、ブロック2
56から281は、メモリ内の、深さn−1に対応して
割当てられたアレイ内に記憶された各シュリンクラップ
ボックスについて繰返される。
【0054】判定ブロック280の結果が肯定的であれ
ば、深さn−1における最後のシュリンクラップボック
スの処理が完了したことを意味し、したがって、シュリ
ンクラップボックス下位階層46のレベルを一段階上げ
る必要がある。したがって、論理はブロック282に進
んで、下位階層46内の最も高いレベルの処理が済んで
いるかどうか、すなわち、n=0であるかどうかを判定
する。もし結果が否定的であれば、nのための値がブロ
ック284でデクリメントされて、論理はブロック25
4に戻る。その後、ブロック254から284が、下位
階層46の各レベルについて繰返される。すなわち、ブ
ロック254から284は、メモリ内に割当てられた各
々のアレイに記憶されたシュリンクラップボックスにつ
いて繰返される。下位階層46の最も高いレベルにおけ
る、すなわち、n=0のシュリンクラップボックスの処
理が終了すると、論理は最終的にブロック286へと進
み、それらシュリンクラップボックスのために作成され
た下位階層が、境界ボックス階層38に追加される。こ
の階層内のオブジェクトのための境界ボックスが、シュ
リンクラップボックス下位階層のルートとなる。論理は
その後、ブロック288で終了する。
【0055】再び図11を参照して、ブロック172お
よび174で作成されたシュリンクラップボックスがそ
のオブジェクトのためのシュリンクラップ下位階層46
に追加され、かつ、そのシュリンクラップ下位階層46
がブロック176において境界ボックス階層38に追加
されると、論理は判定ブロック178に進んで、境界ボ
ックス階層38内の最後のオブジェクトの処理が済んだ
かどうかを判定する。もしまだであれば、ブロック18
0において、境界ボックス階層38内の次のオブジェク
トが得られる。ブロック162から180は、境界ボッ
クス階層38の最後のオブジェクトのための下位階層4
6が境界ボックス階層へと追加されるまで繰返される。
もしそれが完了すれば、すべてのオブジェクトの階層が
完了したこととなり、論理は、判定ブロック178から
ブロック182へと進み、そこで論理は終了する。
【0056】再び図1を参照して、境界ボックス階層3
8と各々のシュリンクラップ下位階層46とを含むオブ
ジェクトの階層がブロック24で構築されてデータベー
ス26内に記憶されると、レイキャスティングを開始す
ることが可能となる。図1に示されるように、レイキャ
スティングプロセス28は5つの異なるレイキャスティ
ングプロセッサ128によって並行に行なわれる。各々
のレイキャスティングプロセッサ128によって行なわ
れるレイキャスティングプロセス28を図17に示す。
以下により詳細に説明するように、レイキャスティング
プロセス28は、シーン52内の、特定の視点から観測
者が見ることができるオブジェクトを突き止める。ただ
し、これを達成するのに、この発明のレイキャスティン
グプロセスは、まず観測者の視界内のすべてのオブジェ
クトが可視であると仮定して、その後シーンから、隠さ
れているオブジェクトを摘み取るという、先行技術によ
って教示された方法を用いることはない。この発明のレ
イキャスティングプロセスでは、まず、シーンのオブジ
ェクトはどれも観測者にとって可視でないものと仮定し
て、その後、投射された光線に沿って現時点の視点に最
も近いオブジェクトをシーンに追加していく。なぜな
ら、現時点の視点に最も近いオブジェクトは可視である
に違いないためである。したがって、この発明のレイキ
ャスティングプロセスは、「カリング」プロセスではな
く、むしろ、「アンカリング」(逆カリング)プロセス
と称することができる。
【0057】レイキャスティング論理は、図17のブロ
ック300から開始して、ブロック302に進み、投射
されるべき予め定められた数の光線が選択される。この
発明の好ましい実施例においては、約1000本の光線
が投射されるが、結果として得られる画像がどの程度の
細部レベルで所望されるかに従って、光線の数を増減す
ることが可能であることは、当業者には理解されるであ
ろう。ブロック304において、新しい視覚座標が、視
覚座標のデータベース32から得られる。各視覚座標
は、モデル空間内の観測者のための、特定の頭の位置と
向きとを表わす。ブロック306において、投射される
べき最初の光線が得られる。ブロック308において、
所与のオブジェクトと所与の光線の起点との間の最小距
離を表わす変数が、無限大に等しく初期化される。さら
に、ヌルオブジェクトが、メモリ内に記憶される。
【0058】論理はブロック308からブロック310
へと進み、そこで、光線が、あたかもx、y、z座標軸
の原点から発せられているかのように、再び向けられ
る。ブロック312において、論理は、オブジェクト階
層内のどのオブジェクトがその再び向けられた光線に沿
った所与の視覚座標に最も近いかを判定する。すなわ
ち、再び向けられた光線に沿ったどのオブジェクトが観
測者にとって可視であるかどうかを判定する。これは、
オブジェクトの階層のルート40に対して各光線をチェ
ックすることによって達成される。もし光線がルート4
0と交差する場合には、その光線がそのルートの1また
は複数の子、孫等と交差するものと考えられる。したが
って光線はそのルートの子、孫等に対してチェックされ
て、最終的に、その光線の起点に最も近いオブジェクト
が求められる。
【0059】どのオブジェクトがこの光線に沿って最も
近いかを判定するのに使用される論理を、図18および
図19により詳細に示す。図18において論理はブロッ
ク322から始まって、判定ブロック324に進む。判
定ブロック324において、論理は、再び向けられた光
線が現時点におけるボックスと交差するかどうかを判定
する。もし交差しなければ、論理は単に、ブロック32
6で終了する。このルーチンを最初に通過する際の現時
点におけるボックスが実際にはオブジェクトの階層のル
ート40であることは、当業者には理解されるであろ
う。したがって、もし光線が現時点におけるボックスと
交差しない場合には、その光線は実際には、シーン52
内に含まれるどのオブジェクトとも交差しないこととな
り、したがって、論理はブロック326で終了するので
ある。逆に、もし光線が現時点のボックスと交差するよ
うであれば、その光線がシーン52内の少なくとも1つ
のオブジェクトと交差することを意味する。したがっ
て、オブジェクトの階層の残りの部分を探索して、もし
存在するなら最も近いオブジェクトを突き止めなくては
ならない。
【0060】この点に関して、論理は判定ブロック32
4からブロック328へと進んで、そこで、光線の起点
から現時点のボックスまでの距離を計算する。その起点
から現時点のボックスの子までの距離は、単に、その光
線の起点と、その光線が交差する、現時点のボックスに
よって囲まれたオブジェクト(またはその一部分)上の
点との間の距離を表すものである。判定ブロック330
において、論理は、光線の起点から現時点のボックス、
すなわち葉までの距離が先に記憶された最小距離よりも
小さいかどうかを判定する。ここで、最小距離は、(も
し現時点のボックスが処理されるべきオブジェクトの階
層の最初の葉である場合には)無限大に等しいと考えら
れ、または、起点からオブジェクトの階層の別の葉まで
の距離に等しいと考えられる。もし起点から現時点のボ
ックスまでの距離がその最小距離よりも小さければ、論
理は判定ブロック334に進んで、そこで論理は、その
現時点のボックスが子を有するかどうかを判定する。も
し子を有する場合には、論理は一連のブロック340か
ら356へと進み、そこで最終的に、投射された光線と
交差する葉、すなわちシュリンクラップボックスのため
のオブジェクト階層を探索して、投射された光線の起点
とそれらの葉との間の距離を計算する。ここで、そのよ
うな葉に到達する度に、判定ブロック334の結果が肯
定的となること、すなわち、現時点のボックスが子を有
さないことが理解されるであろう。したがって、論理は
ブロック336に進んで、そこで、最小距離の変数を、
光線の起点から現時点のボックスへの距離と等しく設定
し、さらに、現時点のボックスに関連するオブジェクト
(すなわち、そのボックスに含まれるかまたはそのボッ
クスと交差するオブジェクト)を、投射された光線の起
点に最も近いオブジェクトとして、メモリ内に一時的に
記憶する。論理はその後、ブロック338で終了する。
判定ブロック330に戻って、もし現時点のボックスま
での距離が最小距離より小さくなければ、その現時点の
ボックスに関連するオブジェクトは、先に記憶されてい
るオブジェクトよりも投射された光線の起点に近いもの
ではないことがわかる。したがって、現時点におけるボ
ックスに関連するそのオブジェクトはメモリ内に記憶さ
れることはなく、論理は単に、ブロック332で終了す
る。以上の説明から、下位階層46の交差した葉の各々
を調べ終わった時点では、起点までの最小距離を有する
葉が突き止められて、それに関連するオブジェクトが投
射された光線の起点に最も近いオブジェクトとしてメモ
リ内に記憶されていることになることが理解されるであ
ろう。
【0061】判定ブロック334に戻って、もし現時点
におけるボックスが子を有する場合には、現時点におけ
るボックスの子孫を引続き調べる必要がある。この点に
関して、論理はブロック340に進んで、投射された光
線の起点から現時点のボックスの各々の子までの距離を
判定するルーチンを呼び出す。光線の起点と現時点のボ
ックスの各々の子との間の距離を判定するための論理
を、図20内により明確に示す。論理はブロック362
から開始して、ブロック364に進み、そこで、現時点
のボックスの最初の子が得られる。判定ブロック366
において、論理は、光線が現時点のボックスのその子と
交差するかどうかを判定する。もし交差する場合には、
光線の起点から現時点のボックスのその子までの距離
が、ブロック368で求められる。論理はその後、ブロ
ック370に進んで、現時点のボックスの最後の子が処
理されたかどうかを判定する。もし判定ブロック366
の結果が否定的であれば、光線は現時点のボックスのそ
の子と交差しないことになる。したがって、論理はブロ
ック368を飛ばして、直接、ブロック370に進む。
【0062】もし現時点のボックスの最後の子がまだ処
理されていなければ、論理はブロック372に進む。ブ
ロック366から372は、現時点のボックスの最後の
子の処理が済み、かつ、各子と光線の起点との間の距離
が測定されるまで、繰返される。それが済むと、論理は
判定ブロック370からブロック374に進み、そこで
終了する。このルーチンの結果、光線の起点からその光
線が交差する各子までの距離が求められることが、当業
者には理解されるであろう。
【0063】図19に戻って、ブロック340において
光線の起点と現時点のボックスの各子との距離が求めら
れた後に、論理はブロック342に進み、そこで、現時
点のボックス内の子のうち、投射された光線が交差する
子が、光線の起点からの距離によって、最も小さい距離
から最も大きい距離までの順で、リスト内でソートされ
る。ブロック344において、起点に最も近い子、すな
わち、現時点のボックスの子のうち、光線の起点と最小
距離にある子が得られる。判定ブロック346におい
て、論理は、その最も近い子までの距離が、先に記憶さ
れた下位階層46の葉までの最小距離以下であるかどう
かを判定する。もし判定ブロック346の結果が否定的
であれば、その最も近い子には、先に突き止められた最
も近い葉よりも光線の起点により近い子孫が存在しない
ことを意味し、したがって、論理はブロック348で終
了する。
【0064】これに対し、最も近い子までの距離が先に
記憶された最小距離以下であれば、その最も近い子に
は、投射された光線が交差する、先に突き止められた最
も近い葉よりも起点により近い子孫が存在し得るか、ま
たはその最も近い子自身が下位階層46内でまだ突き止
められていない最も近い葉である可能性がある。したが
って、ブロック350において、最も近い子を現時点の
ボックスとして、現時点のルーチンの再帰的呼出しが行
なわれる。上述のように、この最も近い子が投射された
光線が交差する葉であるシュリンクラップボックスであ
って、投射された光線の起点からの距離が先に突き止め
られたそのような葉のいずれの距離よりも小さい場合に
は、その最小距離の変数は、その最も近い子までの距離
に等しく設定されて、その最も近い子に関連するオブジ
ェクトがブロック336においてメモリ内に記憶され
る。これに対し、もしその最も近い子に子があれば、そ
の最も近い子の最も近い子を使用して、ブロック350
において、現時点のルーチンへのさらなる再帰的な呼び
出しが最終的に行なわれる。
【0065】図19のブロック350において行なわれ
る再帰的な呼び出しが完了して、論理が上に記載した方
法のいずれにせよ実行されたということは、最も近い子
の子孫の全てが調べられて、その最も近い子の子孫であ
るシュリンクラップボックスのいずれかに関連する最も
近いオブジェクトがメモリ内に記憶されていることを意
味する。したがって、論理はブロック350から判定ブ
ロック352へと進んで、ソートされたリスト内の最後
の子の処理がすんだかどうかを判定する。もしまだであ
れば、論理はブロック354に進んで、ソートされたリ
スト内の次に最も近い子が得られる。したがって、ブロ
ック346から354が記憶されたリスト内の次に最も
近い子について繰返されて、最も近い子または次に最も
近い子の子孫であるシュリンクラップボックスのいずれ
かに関連する最も近いオブジェクトが、メモリ内に記憶
されるようになる。最終的に、ブロック346から35
4はソートされたリスト内の各子のために繰返されて、
これにより、オブジェクトの階層のシュリンクラップボ
ックスのいずれかに関連する最も近いオブジェクト、す
なわち、光線が交差する、所与の視覚座標に最も近いオ
ブジェクトが、メモリ内に記憶される。しかしここで、
投射された光線がシーン52内のどのオブジェクトとも
交差しない可能性が考えられる。もしその場合には、ヌ
ルオブジェクトがメモリ内に記憶される。
【0066】図18および図19に示したルーチンが最
終的に完了すると、図17のレイキャスティング論理
は、ブロック312からブロック314へと進んで、そ
こで、(もしあれば)最も近いオブジェクトが、データ
ベース30内の共用メモリに記憶される可視オブジェク
トの集合に追加される。さらに、そのオブジェクトのた
めのレンダリングカウンタがゼロに初期化される。以下
に記載するように、このレンダリングカウンタは、可視
オブジェクトの集合内のあるオブジェクトがオブジェク
トレンダリングプロセス34に何回通されたかを記録す
るものである。判定ブロック316において、論理は、
最後の光線の処理が行なわれたかどうかを判定する。も
しまだであれば、ブロック318において、投射される
べき次の光線が得られる。その後、ブロック308から
318が、投射されるべき各光線について繰返される。
したがって、所与の視覚座標から投射される各光線に対
して、その光線と交差する所与の視覚座標に最も近いオ
ブジェクトが、共用メモリ内に位置付けられたデータベ
ース30に記憶される可視オブジェクトの集合に追加さ
れる。
【0067】再び図1を参照して、図17に示された論
理が、レイキャスティングプロセッサ128の各々によ
って並行に行なわれることを理解されたい。この発明の
好ましい実施例においては、レイキャスティングプロセ
ッサ128の各々は、同じ視覚座標から同時に光線を投
射するが、それらの光線は、モデル空間の異なる領域へ
と投射される。たとえば、もしモデル空間が表示画面で
あると考えると、その表示画面は、5つの別個の領域に
分割されて、各レイキャスティングプロセッサ128が
それらの領域の1つずつに光線を投射するものと考えて
もよい。したがって、各々のレイキャスティングプロセ
ッサ128が示された論理を行なうにつれて、レイキャ
スティングプロセッサ128の各々が、データベース3
0に記憶された可視オブジェクトの集合に、少し異なる
オブジェクトを追加することになる。したがって、可視
オブジェクトの包括的な集合が容易に構築されるのであ
る。この発明の好ましい実施例においては、オブジェク
トは、レイキャスティングプロセッサ128のグループ
によって、可視オブジェクトの集合に、ほぼ毎秒1回ず
つ追加される。可視オブジェクトが5つのレイキャステ
ィングプロセッサ128によって追加される一方で、2
つのオブジェクトレンダリングプロセッサ134が共用
データベース30から可視オブジェクトを読出して、シ
ーン52を構成する可視オブジェクトのすべてを、0.
05秒ごとに、表示36上にレンダリングする。オブジ
ェクトレンダリングプロセッサは、可視オブジェクトの
集合に可視オブジェクトが追加される速度よりもより高
速で可視オブジェクトを描くことが可能であるが、これ
は、レイキャスティングプロセス28がオブジェクトレ
ンダリングプロセス34とは分離されており、したがっ
て、オブジェクトレンダリングプロセス34を実行する
プロセッサとは別のプロセッサ上で非同期で実行するこ
とが可能なためである。
【0068】データベース30内に記憶された可視オブ
ジェクトの集合からのオブジェクトを表示36上にレン
ダリングするために各オブジェクトレンダリングプロセ
ッサ134が実行する論理を、図21により詳細に示
す。論理はブロック376で開始して、ブロック378
に進み、そこで、新しい視覚座標が得られる。データベ
ース30から得られる新しい視覚座標は、どのオブジェ
クトが観測者にとって可視であるかを判定するためにレ
イキャスティングプロセス28によって最も最近に使用
された視覚座標とは異なり得ることを理解されたい。し
かし、この発明においては、観測者の現時点における視
点は、徐々に、ゆっくりと変化すると仮定する。したが
って、ブロック378で得られた視覚座標がレイキャス
ティングプロセス28によって共用される視覚座標と異
なった場合にも、可視オブジェクトの集合は、実質的に
同一であると考えられる。
【0069】ブロック380において、可視オブジェク
トの集合からの第1のオブジェクトがデータベース30
から得られる。上に記載したように、可視オブジェクト
の集合を含むデータベース30は、レイキャスティング
プロセッサ128とオブジェクトレンダリングプロセッ
サ134との双方によって共用されるメモリ内に存在す
る。したがって、レイキャスティングプロセッサ128
がオブジェクトを、その可視オブジェクトの集合に追加
する一方で、共用メモリ内に記憶された可視オブジェク
トの集合からオブジェクトレンダリングプロセッサ13
4がオブジェクトを読出す。しかし、ここで、オブジェ
クトが可視オブジェクトの集合に追加される速度が、可
視オブジェクトの集合から可視オブジェクトが読出され
る速度と同じ速度である必要はない。必要なのは、オブ
ジェクトが連続的に可視オブジェクトの集合に追加され
るということのみである。
【0070】オブジェクトが可視オブジェクトの集合か
ら得られた後に、論理は判定ブロック382において、
そのオブジェクトが所与の視覚座標から未だ可視である
かどうかを判定する。上述の説明から、観測者の現時点
における視点が変化して、所与のオブジェクトが観測者
の視界の外に出てしまった場合が考えられる。もしそう
であれば、論理は判定ブロック382からブロック38
8へと進んで、そこで、レンダリングカウンタ、すなわ
ち、そのオブジェクトが何回除外され、表示36上に描
かれなかったかを記録するレンダリングカウンタがイン
クリメントされる。論理はその後判定ブロック390に
進んで、そのオブジェクトのためのレンダリングカウン
タの値が予め定められた値よりも大きいかどうかを判定
する。この発明の好ましい実施例においては、もしオブ
ジェクトが5回以上除外された場合には、そのオブジェ
クトはブロック392において、可視オブジェクトの集
合から廃棄される。しかし、レンダリングカウンタの値
がまだ4以下であれば、そのオブジェクトは可視オブジ
ェクトの集合内に維持される。したがって、論理はブロ
ック392を飛ばして、判定ブロック394へと進み、
そこで、可視オブジェクトの集合内の最後のオブジェク
トが表示36上にレンダリングされたかどうかを判定す
る。
【0071】判定ブロック382に戻って、もしオブジ
ェクトが新しい視覚座標から観測者にとって未だ可視で
ある場合には、論理はブロック384に進んで、そのオ
ブジェクトが表示36上に描かれる。論理はその後ブロ
ック386に進んで、そのオブジェクトのためのレンダ
リングカウンタが最初の値にリセットされる。オブジェ
クトが表示36上にレンダリングまたは描かれる際に、
シリコングラフィックスのGL(Silicon Graphics' G
L)またはオープンGL(Open GL )等の、コンピュー
タグラフィックス分野において周知のグラフィックルー
チンが使用されることが、当業者には理解されるであろ
う。
【0072】ブロック386においてレンダリングカウ
ンタがリセットされた後に、論理は判定ブロック394
に進み、そこで、可視オブジェクトの集合内の最後のオ
ブジェクトが表示36上にレンダリングされたかどうか
を判定する。もしまだであれば、論理はブロック396
に進んで、可視オブジェクトの集合からの、所与の視覚
座標に関連する次のオブジェクトが、データベース30
から得られる。その後ブロック382から396が、可
視オブジェクトの集合内の、所与の視覚座標に関連する
各オブジェクトについて繰返される。換言すれば、所与
の視覚座標から観測者にとって可視である各オブジェク
トが、表示36上にレンダリングされる。図21に示さ
れるオブジェクトレンダリングプロセス34は、2つの
オブジェクトレンダリングプロセッサ134によって並
行に実行されるため、同じオブジェクトが同時に表示3
6の各々上に表示されることは理解されるであろう。た
だ異なるのは、一方の表示36上には、観測者の頭と右
目の現時点の位置からオブジェクトがレンダリングされ
るのに対し、他方の表示36上には、観測者の頭と左目
の現在の位置からオブジェクトがレンダリングされる、
ということである。したがって、バランスの取れた、3
次元の立体視画像が、観測者にもたらされるのである。
【0073】可視オブジェクトの集合内の最後のオブジ
ェクトがレンダリングされると、論理は判定ブロック3
94から出て、ブロック378に戻る。ブロック378
から396はその後、視覚座標データベース32から得
られる連続した視覚座標の各々について繰返される。こ
の発明の好ましい実施例においては、上述のオブジェク
トレンダリングプロセス34は、シーン52内のすべて
のオブジェクトを、0.05秒毎に描くが、オブジェク
トが描かれる速度が、シーン内のオブジェクトの数、オ
ブジェクトの複雑さ、およびプロセスの速度に依存する
ことは、当業者には理解されるであろう。この速度は、
レイキャスティングプロセス28が可視オブジェクトの
集合にオブジェクトを追加する速度よりもはるかに速い
が、これらの速度の違いは、オブジェクトレンダリング
プロセス34とレイキャスティングプロセス28とが別
個のプロセスであって、しかも、オブジェクトが可視オ
ブジェクトの集合に連続的に追加される限り、問題では
ない。
【0074】この発明の好ましい実施例を図示しかつ説
明したが、この発明の精神および範囲から離れることな
くそれらにさまざまな変更が加えられ得ることは理解さ
れるであろう。
【図面の簡単な説明】
【図1】この発明の画像レンダリングシステムを表わす
ブロック図である。
【図2】図1に示された画像レンダリングシステムによ
ってコンピュータグラフィック画像を生成することが可
能な、航空機構造の2次元の断面図である。
【図3】グラフィック画像をレンダリングするために図
1に示される画像レンダリングシステムによって使用さ
れるコンピュータの、いくつかの構成要素を示すブロッ
ク図である。
【図4】複雑な構造の構成部品すなわち「オブジェク
ト」を、その複雑な構造のオブジェクトを表わすのに使
用される空間的にバランスを取られたボックスの階層へ
と処理するために、図1に示される画像レンダリングシ
ステムによって使用されるコンピュータの、いくつかの
構成要素を表わすブロック図である。
【図5】複雑な構造のオブジェクトを空間的にバランス
を取られたボックスの階層へと処理するのに使用され
る、論理を説明するためのフロー図である。
【図6】複雑な構造のオブジェクトを表わすのに使用さ
れる、先行技術による、空間的にバランスを取られた境
界ボックスの階層を示す図である。
【図7】(A)および(B)は、図2に示される複雑な
構造を、空間的にバランスを取られた境界ボックスによ
って囲まれるオブジェクトに分割して示した図である。
【図8】(A)、(B)、(C)および(D)は、図2
に示された複雑な構造を、空間的にバランスを取られた
境界ボックスによって囲まれるオブジェクトに、およ
び、空間的にバランスを取られたシュリンクラップボッ
クスによって囲まれるオブジェクトの部分に、分割して
示した図である。
【図9】図2に示される複雑な構造を、空間的にバラン
スを取られたシュリンクラップボックスによって囲まれ
るオブジェクトの各部分に分割して示した図である。
【図10】図6に示される階層の葉をルートとする、オ
ブジェクトの表面をさらに規定するシュリンクラップボ
ックスの下位階層構造を示す図である。
【図11】複雑な構造の各オブジェクトのためにシュリ
ンクラップボックスの下位階層構造を構築するために使
用される、論理を示すフロー図である。
【図12】図10に示されるシュリンクラップ下位階層
構造の最も低いレベルにおけるシュリンクラップボック
スを作成するのに使用される論理の一部を示すフロー図
である。
【図13】図10に示されるシュリンクラップ下位階層
構造の最低レベルにおけるシュリンクラップボックスを
作成するのに使用される論理の残りの部分を示すフロー
図である。
【図14】図10に示されるシュリンクラップ下位階層
構造の残りのレベルにおけるシュリンクラップボックス
を作成するのに使用される、論理を示すフロー図であ
る。
【図15】図10に示されるシュリンクラップ下位階層
構造にシュリンクラップボックスを付加するのに使用さ
れる、論理の一部を示すフロー図である。
【図16】図10に示されるシュリンクラップ下位階層
構造にシュリンクラップボックスを付加するのに使用さ
れる、論理の残りの部分を示すフロー図である。
【図17】どのオブジェクトが観測者にとって可視であ
るかを判定するために、複雑な構造を構成するオブジェ
クトに対して特定の視点から光線を投射するのに使用さ
れる、論理を示すフロー図である。
【図18】光線と交差するどのオブジェクトがその光線
の起点に最も近いかを判定するのに使用される、論理の
一部を示すフロー図である。
【図19】光線と交差するどのオブジェクトがその光線
の起点に最も近いかを判定するのに使用される、論理の
残りの部分を示すフロー図である。
【図20】光線の起点と特定のオブジェクトとの間の距
離を判定するのに使用される、論理を説明するためのフ
ロー図である。
【図21】可視オブジェクトを表示上に描くために使用
される論理を示すフロー図である。
【符号の説明】
20 画像レンダリングシステム 22 データベース 24 オブジェクト階層構造構築プロセス 26 データベース 28 レイキャスティングプロセス 30 データベース 33 コンピュータ 34 オブジェクトレンダリングプロセス 36 表示
フロントページの続き (72)発明者 カレル・ズィカン アメリカ合衆国、98103 ワシントン州、 シアトル、サニーサイド・アベニュ・エ ヌ、4640

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 複数のオブジェクトによって表わされる
    複雑な構造のグラフィック画像を表示上にレンダリング
    するための方法であって、前記方法は、 (a) 所与の視覚座標から複数の光線を投射するステ
    ップを含み、これは、投射された各光線について、
    (i) どのオブジェクトが光線と交差するかを判定す
    るステップと、(ii) 光線が交差したオブジェクトの
    うち、どのオブジェクトが所与の視覚座標に最も近いか
    を判定するステップと、(iii ) その最も近いオブジ
    ェクトを可視オブジェクトの集合に追加するステップと
    を含み、前記方法はさらに、 (b) オブジェクトが可視オブジェクトの集合に追加
    されるのとともに、可視オブジェクトの集合内の各オブ
    ジェクトを、現時点の視覚座標に従って表示上にレンダ
    リングするステップを含む、方法。
  2. 【請求項2】 光線が交差したオブジェクトのうち、ど
    のオブジェクトが所与の視覚座標に最も近いオブジェク
    トであるかを判定する前記ステップは、 (a) 光線が交差した各オブジェクトと所与の視覚座
    標との間の距離を判定するステップと、 (b) 光線が交差したどのオブジェクトが所与の視覚
    座標に対して最小の距離を有するかを判定するステップ
    とを含む、請求項1に記載の方法。
  3. 【請求項3】 複数のオブジェクトを、複雑な構造を囲
    むルートボリュームから、各々が複数のオブジェクトの
    各々を囲む複数の下位ボリュームへ、さらに、各々が各
    オブジェクトの一部分を囲む複数の縮小下位ボリューム
    への、オブジェクトの階層構造に組織化するステップを
    さらに含む、請求項2に記載の方法。
  4. 【請求項4】 光線が交差した各オブジェクトと所与の
    視覚座標との間の距離を判定する前記ステップは、 (a) オブジェクトの階層を探索してどの縮小下位ボ
    リュームと光線が交差するかを判定するステップと、 (b) 光線と交差した各縮小下位ボリュームについ
    て、(i) その縮小下位ボリュームと所与の視覚座標
    との間の距離を判定するステップと、(ii) どの縮小
    下位ボリュームが所与の視覚座標に対して最小の距離を
    有するかを判定するステップとを含む、請求項3に記載
    の方法。
  5. 【請求項5】 可視オブジェクトの集合内の各オブジェ
    クトをレンダリングする前記ステップは、可視オブジェ
    クトの集合内の各オブジェクトについて、 (a) オブジェクトが可視オブジェクトの集合に追加
    されるのとともに、可視オブジェクトの集合からオブジ
    ェクトを読出すステップと、 (b) もしそのオブジェクトが現時点の視覚座標から
    可視であれば、そのオブジェクトを表示上に描くステッ
    プとを含む、請求項1に記載の方法。
  6. 【請求項6】 もしオブジェクトが現時点の視覚座標か
    らもはや可視でない場合には、そのオブジェクトは可視
    オブジェクトの集合から廃棄される、請求項5に記載の
    方法。
  7. 【請求項7】 前記(a)および(b)のステップが、
    連続する視覚座標に対して繰返される、請求項1に記載
    の方法。
  8. 【請求項8】 コンピュータの可読媒体が前記(a)お
    よび(b)のステップを実行するよう符号化される、請
    求項1に記載の方法。
  9. 【請求項9】 前記(a)のステップが複数のレイキャ
    スティングプロセッサによって並行に実行される一方
    で、前記(b)のステップは複数の別個のオブジェクト
    レンダリングプロセッサによって並行に実行され、それ
    により、複数のレイキャスティングプロセッサの各々に
    よってオブジェクトが可視オブジェクトの集合に同時に
    追加されるとともに、オブジェクトレンダリングプロセ
    ッサの各々によってオブジェクトが表示の組上に非同期
    でレンダリングされる、請求項1に記載の方法。
  10. 【請求項10】 複雑な構造のグラフィック画像を表示
    上にレンダリングするための画像レンダリングシステム
    であって、複雑な構造は複数のオブジェクトによって表
    わされ、前記画像レンダリングシステムは、 (a) オブジェクトの階層構造に組織化された複数の
    オブジェクトを記憶し、かつ、可視オブジェクトの集合
    を記憶するための、記憶媒体と、 (b) 前記記憶媒体に結合されて、オブジェクトの階
    層内の、所与の視点から可視であるオブジェクトを、前
    記記憶媒体内に記憶される可視オブジェクトの集合に追
    加するための少なくとも1つの処理装置と、 (c) 前記記憶媒体に結合されて、前記他の少なくと
    も1つの処理装置が可視オブジェクトを可視オブジェク
    トの集合に追加するのとともに、可視オブジェクトの集
    合内の各可視オブジェクトを現時点の視点に従って表示
    上にレンダリングするための、少なくとも1つの処理装
    置とを含む、画像レンダリングシステム。
  11. 【請求項11】 可視オブジェクトを可視オブジェクト
    の集合に追加するための前記少なくとも1つの処理装置
    は、 (a) 所与の視点から複数の光線を投射するステップ
    と、 (b) 投射される各光線について、(i) オブジェ
    クトの階層内のどのオブジェクトと光線が交差するかを
    判定するステップと、(ii) 光線と交差するオブジェ
    クトのうち、どのオブジェクトが所与の視点に最も近い
    かを判定するステップと、(iii ) その最も近いオブ
    ジェクトを可視オブジェクトの集合に追加するステップ
    とによって、可視オブジェクトを可視オブジェクトの集
    合に追加する、請求項10に記載の画像レンダリングシ
    ステム。
  12. 【請求項12】 前記少なくとも1つの処理装置は、 (a) 光線と交差した各オブジェクトと所与の視点と
    の間の距離を判定するステップと、 (b) 光線と交差したどのオブジェクトが所与の視点
    に対して最小の距離を有するかを判定するステップとに
    よって、光線と交差したオブジェクトのうちどのオブジ
    ェクトが所与の視覚座標に最も近いオブジェクトである
    かを判定する、請求項11に記載の画像レンダリングシ
    ステム。
  13. 【請求項13】 可視オブジェクトの集合内の可視オブ
    ジェクトの各々をレンダリングするための前記少なくと
    も1つの処理装置は、 (a) オブジェクトが前記他の少なくとも1つの処理
    装置によって可視オブジェクトの集合に追加されるとと
    もに、可視オブジェクトの集合からオブジェクトを読出
    すステップと、 (b) そのオブジェクトが現時点の視点から可視であ
    る場合にはそのオブジェクトを表示上に描くステップと
    によって、可視オブジェクトの各々をレンダリングす
    る、請求項12に記載の画像レンダリングシステム。
  14. 【請求項14】 複数の処理装置は記憶媒体に結合され
    て、オブジェクトの階層構造内のオブジェクトのうち所
    与の視点から可視であるオブジェクトを、記憶媒体内に
    記憶される可視オブジェクトの集合に追加する、請求項
    10に記載の画像レンダリングシステム。
  15. 【請求項15】 複数の処理装置は記憶媒体に結合され
    て、前記他の処理装置が可視オブジェクトを可視オブジ
    ェクトの集合に追加するのとともに、可視オブジェクト
    の集合内の各可視オブジェクトを現時点の視点に従って
    レンダリングする、請求項14に記載の画像レンダリン
    グシステム。
  16. 【請求項16】 可視オブジェクトの集合内の各可視オ
    ブジェクトをレンダリングするための前記複数の処理装
    置の各々は、各可視オブジェクトを別個の表示上にレン
    ダリングする、請求項15に記載の画像レンダリングシ
    ステム。
  17. 【請求項17】 複雑な構造のグラフィック画像を表示
    の組上に生成するための方法であって、複雑な構造は複
    数のオブジェクトによって表わされ、前記方法は、 (a)(i)所与の視覚座標から複数の光線を投射し、
    (ii)投射された各光線について、投射された光線と交
    差する、所与の視覚座標に最も近いオブジェクトを可視
    オブジェクトの集合に追加する、レイキャスティングル
    ーチンを実行するステップと、 (b) オブジェクトが可視オブジェクトの集合に追加
    されるのとともに、可視オブジェクトの集合内の各オブ
    ジェクトを現時点の視覚座標に従って表示上にレンダリ
    ングする、オブジェクトレンダリングルーチンを実行す
    るステップとを含む、方法。
  18. 【請求項18】 複数のレイキャスティングルーチン
    は、各レイキャスティングルーチンがオブジェクトを可
    視オブジェクトの集合に追加するように、並行に実行さ
    れる、請求項17に記載の方法。
  19. 【請求項19】 複数のオブジェクトレンダリングルー
    チンは、各レイキャスティングルーチンがオブジェクト
    を可視オブジェクトの集合に追加するのとともに、各オ
    ブジェクトレンダリングルーチンが可視オブジェクトの
    集合内の各オブジェクトを現時点の視覚座標に従って表
    示上にレンダリングするように、並行に実行される、請
    求項18に記載の方法。
  20. 【請求項20】 各レイキャスティングルーチンは、 レイキャスティングルーチンによって投射される各光線
    について、 (a) どのオブジェクトが投射された光線と交差する
    かを判定するステップと、 (b) 投射された光線と交差したオブジェクトのう
    ち、どのオブジェクトが所与の視点に最も近いかを判定
    するステップと、 (c) その最も近いオブジェクトを可視オブジェクト
    の集合に追加するステップとによって、可視オブジェク
    トの集合にオブジェクトを追加する、請求項19に記載
    の方法。
  21. 【請求項21】 各レイキャステングルーチンは、 (a) 投射された光線と交差する各オブジェクトと付
    与の視覚座標との間の距離を判定するステップと、 (b) 投射された光線と交差するどのオブジェクトが
    所与の視覚座標までの最小距離を有するかを判定するス
    テップとによって、光線と交差したオブジェクトのうち
    どのオブジェクトが所与の視覚座標に最も近いオブジェ
    クトであるかを判定する、請求項20に記載の方法。
  22. 【請求項22】 各オブジェクトレンダリングルーチン
    は、 (a) レイキャスティングルーチンの各々によってオ
    ブジェクトが可視オブジェクトの集合に追加されるのと
    ともに、オブジェクトを可視オブジェクトの集合から読
    出すステップと、 (b) もしそのオブジェクトが現時点の視点から可視
    である場合にはそのオブジェクトを表示上に描くステッ
    プとによって、可視オブジェクトの集合内の各可視オブ
    ジェクトをレンダリングする、請求項21に記載の方
    法。
  23. 【請求項23】 オブジェクトが現時点における視覚座
    標からもはや可視ではないと判定されると、各オブジェ
    クトレンダリングルーチンは可視オブジェクトの集合か
    らそのオブジェクトを廃棄する、請求項22に記載の方
    法。
  24. 【請求項24】 複雑な構造を表わす複数のオブジェク
    トは、その複雑な構造を囲むルートボリュームから、そ
    の複数のオブジェクトの各々を囲む下位ボリューム、さ
    らに各オブジェクトの点を囲む縮小下位ボリュームへ
    の、オブジェクトの階層構造に組織化される、請求項2
    0に記載の方法。
  25. 【請求項25】 各レイキャスティングルーチンは、 (a) オブジェクトの階層を探索して、投射された光
    線と交差する縮小下位ボリュームを突き止めるステップ
    と、 (b) 光線と交差した各縮小下位ボリュームについ
    て、どの縮小下位ボリュームが所与の視覚座標までの最
    小距離を有するかを判定するステップと、 (c) その縮小下位ボリュームに関連するオブジェク
    トを可視オブジェクトの集合内に記憶するステップとに
    よって、どのオブジェクトが所与の視覚座標に最も近い
    かを判定する、請求項24に記載の方法。
JP10002360A 1997-01-09 1998-01-08 グラフィック画像を表示上にレンダリングするための方法および画像レンダリングシステム、ならびにグラフィック画像を表示上に生成するための方法 Pending JPH10208077A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/781104 1997-01-09
US08/781,104 US6023279A (en) 1997-01-09 1997-01-09 Method and apparatus for rapidly rendering computer generated images of complex structures

Publications (1)

Publication Number Publication Date
JPH10208077A true JPH10208077A (ja) 1998-08-07

Family

ID=25121711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10002360A Pending JPH10208077A (ja) 1997-01-09 1998-01-08 グラフィック画像を表示上にレンダリングするための方法および画像レンダリングシステム、ならびにグラフィック画像を表示上に生成するための方法

Country Status (5)

Country Link
US (1) US6023279A (ja)
EP (1) EP0854441B1 (ja)
JP (1) JPH10208077A (ja)
CA (1) CA2225017C (ja)
DE (1) DE69812732T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009525526A (ja) * 2006-02-01 2009-07-09 レッドウェイ・3・ディー ビーム放出によって仮想画像を合成するための方法

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6762778B1 (en) * 1999-06-10 2004-07-13 Dassault Systemes Three dimensional graphical manipulator
SG93211A1 (en) 1999-07-28 2002-12-17 Univ Singapore Method and apparatus for generating atomic parts of graphic representation through skeletonization for interactive visualization applications
US6577769B1 (en) * 1999-09-18 2003-06-10 Wildtangent, Inc. Data compression through adaptive data size reduction
US7133043B1 (en) * 1999-11-29 2006-11-07 Microsoft Corporation Computer graphics methods and apparatus for ray intersection
US7184042B2 (en) * 2000-06-19 2007-02-27 Mental Images Gmbh Computer graphic system and computer-implemented method for generating images using a ray tracing methodology that makes use of a ray tree generated using low-discrepancy sequences and ray tracer for use therewith
DE60103155T2 (de) * 2000-06-29 2005-04-21 Sun Microsystems Inc Bestimmung sichtbarer objekte
US7130774B2 (en) * 2001-05-15 2006-10-31 Metron Media, Inc. System for creating measured drawings
US6806876B2 (en) 2001-07-11 2004-10-19 Micron Technology, Inc. Three dimensional rendering including motion sorting
EP1437687B1 (en) * 2001-10-15 2008-11-05 Fujitsu Limited Hierarchical sort of objects linked in virtual three-dimensional space
US7088358B2 (en) * 2002-02-19 2006-08-08 Siemens Corporate Research, Inc. Collision detection method for deformable objects in a scene
US7244891B2 (en) * 2002-06-06 2007-07-17 Leviton Manufacturing Co., Inc. Shaped wall plate for wiring device
EP1635297B1 (en) * 2003-05-30 2012-06-13 Lattice Technology, Inc. 3-dimensional graphics data display device
GB2410663A (en) * 2004-01-29 2005-08-03 Univ London 3d computer graphics processing system
US7714855B2 (en) * 2004-05-17 2010-05-11 Siemens Medical Solutions Usa, Inc. Volume rendering processing distribution in a graphics processing unit
US7852335B2 (en) * 2005-05-09 2010-12-14 Siemens Medical Solutions Usa, Inc. Volume rendering processing distribution in a graphics processing unit
US7408553B1 (en) * 2005-12-15 2008-08-05 Nvidia Corporation Inside testing for paths
US7830379B2 (en) * 2006-09-19 2010-11-09 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
US9478062B2 (en) 2006-09-19 2016-10-25 Imagination Technologies Limited Memory allocation in distributed memories for multiprocessing
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
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
US8674987B2 (en) * 2006-09-19 2014-03-18 Caustic Graphics, Inc. Dynamic ray population control
US7852336B2 (en) * 2006-11-28 2010-12-14 International Business Machines Corporation Dynamic determination of optimal spatial index mapping to processor thread resources
US8384711B2 (en) * 2006-11-29 2013-02-26 The University Of Utah Research Foundation Ray tracing a three dimensional scene using a grid
US8547395B1 (en) 2006-12-20 2013-10-01 Nvidia Corporation Writing coverage information to a framebuffer in a computer graphics system
US8004522B1 (en) 2007-08-07 2011-08-23 Nvidia Corporation Using coverage information in computer graphics
US8325203B1 (en) 2007-08-15 2012-12-04 Nvidia Corporation Optimal caching for virtual coverage antialiasing
US8786628B2 (en) * 2007-09-14 2014-07-22 Microsoft Corporation Rendering electronic chart objects
US8237711B2 (en) * 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
GB0810205D0 (en) 2008-06-04 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
US9250926B2 (en) * 2009-04-30 2016-02-02 Microsoft Technology Licensing, Llc Platform extensibility framework
US8638343B2 (en) * 2009-04-30 2014-01-28 Microsoft Corporation Data visualization platform performance optimization
US20110183301A1 (en) * 2010-01-27 2011-07-28 L-3 Communications Corporation Method and system for single-pass rendering for off-axis view
US8988433B2 (en) * 2010-04-29 2015-03-24 Imagination Technologies, Limited Systems and methods for primitive intersection in ray tracing
US10061618B2 (en) 2011-06-16 2018-08-28 Imagination Technologies Limited Scheduling heterogenous computation on multithreaded processors
GB2505818B (en) 2011-06-16 2016-02-10 Imagination Tech Ltd Graphics processor with non-blocking concurrent architecture
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US10970429B2 (en) * 2013-01-07 2021-04-06 Magma Giessereitechnologie Gmbh Method and algorithm for simulating the influence of thermally coupled surface radiation in casting processes
GB2513698B (en) 2013-03-15 2017-01-11 Imagination Tech Ltd Rendering with point sampling and pre-computed light transport information
DK178380B1 (en) * 2014-07-01 2016-01-25 Magma Giessereitechnologie Gmbh Method of beam tracking for use in a simulation or calculation process
US11176752B1 (en) * 2020-03-31 2021-11-16 Amazon Technologies, Inc. Visualization of a three-dimensional (3D) model in augmented reality (AR)
US11250629B2 (en) * 2020-05-22 2022-02-15 Seek Xr, Llc Systems and methods for optimizing a model file
CN113487714A (zh) * 2021-06-23 2021-10-08 北京奇岱松科技有限公司 空间对象的渲染方法、装置、计算设备及存储介质
CN115111970B (zh) * 2022-07-05 2023-11-10 湖南工商大学 一种融合2d与3d视觉感知的烟花成型检测装置及其检测方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4570233A (en) * 1982-07-01 1986-02-11 The Singer Company Modular digital image generator
US4594673A (en) * 1983-06-28 1986-06-10 Gti Corporation Hidden surface processor
US4901252A (en) * 1984-07-13 1990-02-13 International Business Machines Corporation Method for producing planar geometric projection images
US4952922A (en) * 1985-07-18 1990-08-28 Hughes Aircraft Company Predictive look ahead memory management for computer image generation in simulators
US4928250A (en) * 1986-07-02 1990-05-22 Hewlett-Packard Company System for deriving radiation images
DE3782160T2 (de) * 1986-09-11 1993-02-11 Hughes Aircraft Co Digitales simulationssystem zur erzeugung von realistischen szenen.
JPH0769972B2 (ja) * 1987-07-16 1995-07-31 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション 画像生成方法
JP2659372B2 (ja) * 1987-07-20 1997-09-30 ファナック株式会社 構造物の三次元表示方法
US4912659A (en) * 1987-10-30 1990-03-27 International Business Machines Corporation Parallel surface processing system for graphics display
US4918626A (en) * 1987-12-09 1990-04-17 Evans & Sutherland Computer Corp. Computer graphics priority system with antialiasing
US5088054A (en) * 1988-05-09 1992-02-11 Paris Ii Earl A Computer graphics hidden surface removal system
FR2635393B1 (fr) * 1988-08-10 1990-10-19 Thomson Csf Procede d'elimination des faces cachees, pour la synthese d'une image filaire tridimensionnelle
US5091960A (en) * 1988-09-26 1992-02-25 Visual Information Technologies, Inc. High-speed image rendering method using look-ahead images
EP0459761A3 (en) * 1990-05-31 1993-07-14 Hewlett-Packard Company Three dimensional computer graphics employing ray tracking to compute form factors in radiosity
US5305430A (en) * 1990-12-26 1994-04-19 Xerox Corporation Object-local sampling histories for efficient path tracing
US5299298A (en) * 1991-02-28 1994-03-29 Hewlett-Packard Company Accelerated shadow testing method for three dimensional graphics rendering system
US5764228A (en) * 1995-03-24 1998-06-09 3Dlabs Inc., Ltd. Graphics pre-processing and rendering system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009525526A (ja) * 2006-02-01 2009-07-09 レッドウェイ・3・ディー ビーム放出によって仮想画像を合成するための方法

Also Published As

Publication number Publication date
DE69812732T2 (de) 2003-10-16
US6023279A (en) 2000-02-08
EP0854441A2 (en) 1998-07-22
EP0854441B1 (en) 2003-04-02
CA2225017C (en) 2007-02-20
EP0854441A3 (en) 1999-01-13
DE69812732D1 (de) 2003-05-08
CA2225017A1 (en) 1998-07-09

Similar Documents

Publication Publication Date Title
JPH10208077A (ja) グラフィック画像を表示上にレンダリングするための方法および画像レンダリングシステム、ならびにグラフィック画像を表示上に生成するための方法
Meyer et al. Interactive volumetric textures
US5579454A (en) Three dimensional graphics processing with pre-sorting of surface portions
US20010012018A1 (en) Occlusion culling for complex transparent scenes in computer generated graphics
Hanson et al. Interactive visualization methods for four dimensions
WO2002045025A9 (en) Multiple processor visibility search system and method
JP3721419B2 (ja) 複合構造のコンピュータ生成ディスプレイに用いるための、空間的に均衡した境界ボリュームハイアラーキを作成するための方法
US20080225048A1 (en) Culling occlusions when rendering graphics on computers
WO2002054351A2 (en) Using ancillary geometry for visibility determination
US6862025B2 (en) Recursive ray casting method and apparatus
Neyret Synthesizing verdant landscapes using volumetric textures
US6664957B1 (en) Apparatus and method for three-dimensional graphics drawing through occlusion culling
Chen et al. Perturbation methods for interactive specular reflections
KR100256472B1 (ko) 사용자가 정의한 룸 및 윈도우를 이용하는 효율적인 렌더링
Erikson et al. Simplification culling of static and dynamic scene graphs
Funkhouser A visibility algorithm for hybrid geometry-and image-based modeling and rendering
Lee et al. On enhancing the speed of splatting using both object-and image-space coherence
Meyer et al. Real-time reflection on moving vehicles in urban environments
Roettger et al. Fast volumetric display of natural gaseous phenomena
Dzik et al. Representing surfaces with voxels
Swan et al. Slice-based volume rendering
Popescu et al. Sample-based cameras for feed forward reflection rendering
Mesquita et al. Non-overlapping geometric shadow map
Chen Perturbation methods for image synthesis
Yilmaz et al. Modeling and visualization of complex geometric environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071016