(57)【要約】【課題】  マップ情報を管理する計算機を設け、追跡を行う計算機はそこに問い合わせを行う方法では、マップ情報管理計算機に問い合わせが集中し、オブジェクトが全く無い分割空間を参照した時にも、マップ情報管理計算機に問い合わせを行う問題がある。【解決手段】  空間追跡ネットワーク装置１４は、視点又は光源からの光線がぶつかるオブジェクトが存在する分割空間の位置を示す特定パターンのパケットを、分割空間管理計算機１１〜１３のうち、対応する分割空間管理計算機を探し出して転送する。分割空間管理計算機１１〜１３は特定パターンのパケットを受け取った時には、管理する分割空間内に交差するオブジェクトが存在するかどうか交差判定を行い、判定結果を示す追跡応答パケットを空間追跡ネットワーク装置１４を介して追跡計算機１６〜１９へ通知し、追跡計算機１６〜１９は追跡応答パケットに基づき３次元画像情報を生成して格納する。【選択図】            図１
2005327146.tif 000002
【特許請求の範囲】
【請求項１】
視点又は光源からの光線を追跡する複数の第１の計算機と、
物体が存在する３次元仮想空間を均等に分割し、分割された空間にオブジェクトが存在する時に、その分割空間のオブジェクトデータを格納する複数の第２の計算機と、
前記第１の計算機と前記第２の計算機とをネットワーク接続し、前記第１の計算機により生成された、前記視点又は光源からの光線がぶつかる前記オブジェクトが存在する前記分割空間の位置を示す特定パターンのパケットを、前記複数の第２の計算機のうち、そのパケットを処理し送るべき空間を担当する第２の計算機を探し出して転送するネットワーク接続装置と
を有し、前記第２の計算機は前記特定パターンのパケットを受け取った時には、管理する分割空間内に交差するオブジェクトが存在するかどうか交差判定を行い、判定結果を示す追跡応答パケットを前記ネットワーク接続装置を介して前記第１の計算機へ通知し、前記第１の計算機は前記追跡応答パケットに基づき３次元画像情報を生成して格納することを特徴とする３次元画像生成システム。
【請求項２】
視点又は光源からの光線を追跡する複数の第１の計算機と、
互いに上位と下位の関係に接続された複数のネットワーク接続装置と、
前記複数のネットワーク接続装置の各々に接続されており、物体が存在する３次元仮想空間を均等に分割し、分割された空間にオブジェクトが存在する時に、その分割空間のオブジェクトデータを格納する複数の第２の計算機と
を有し、上位の前記ネットワーク接続装置は、前記第１の計算機と前記第２の計算機とをネットワーク接続し、前記第１の計算機により生成された、前記視点又は光源からの光線がぶつかる前記オブジェクトが存在する前記分割空間の位置を示す特定パターンのパケットを、前記複数の第２の計算機のうち、そのパケットを処理し送るべき空間を担当する第２の計算機を探し出して転送し、特定の分割空間に前記オブジェクトが予め定めた数以上存在するときには、下位の前記ネットワーク接続装置を割り当て、前記特定の分割空間を更に均等に分割した細分割空間に前記オブジェクトが存在するときには、そのオブジェクトが存在する前記特定パターンのパケットを、前記下位のネットワーク接続装置に接続された前記第２の計算機のうち、そのパケットを処理し送るべき空間を担当する第２の計算機を探し出して転送し、前記第２の計算機は前記特定パターンのパケットを受け取った時には、管理する分割空間内に交差するオブジェクトが存在するかどうか交差判定を行い、判定結果を示す追跡応答パケットを前記下位のネットワーク接続装置及び前記上位のネットワーク装置をそれぞれ介して、又は前記上位のネットワーク装置のみを介して前記第１の計算機へ通知し、前記第１の計算機により前記追跡応答パケットに基づき生成した３次元画像情報を格納させることを特徴とする３次元画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は３次元画像生成システムに係り、特にコンピュータ・グラフィックス（ＧＧ）や各種の画像生成・画像処理分野において、ネットワーク（空間追跡ネットワーク装置）を介して接続された複数の計算機を用い高速に３次元画像を生成する３次元画像生成システムに関する。
【背景技術】
【０００２】
コンピュータ・グラフィックス（ＣＧ）や各種の画像生成・画像処理分野において、計算機を使い、現実世界に近い画像を生成する手法として、レイトレーシング、ラジオシティ法、フォトンマッピングなどのアルゴリズムが開発されている（例えば、非特許文献１、２及び３参照）。このようなアルゴリズムは、高画質の映像生成を行うことができるが、計算時間が非常にかかるため、ゲームやＶＲ（バーチャルリアリティ）のように応答性が重視されるアプリケーションにおいては、利用できなかった。
【０００３】
そのため、並列計算機を使った高速化のための手法が開発されており、例えば、オブジェクトが存在する空間を分割して複数の計算機で管理し、表示エリアを分割して複数の計算機を使いエリア毎に映像を計算するといったことがなされている（前記非特許文献３参照）。
【０００４】
レイトレーシングやフォトンマップは、追跡を基本としており、レイと物体の交差判定に、多くの計算時間がかかる。一方、各追跡は独立しており、他の追跡に影響されず行えるため、並列性の高いアルゴリズムとされている。交差判定は、追跡しようとする光線と物体との間で行われるため、物体の存在する空間に依存している。交差判定の高速化の一手法として空間を複数台の計算機に分割管理させて、交差判定処理を分散する方法がある。
【０００５】
この交差判定処理を分散する方法では、視点移動に伴って、視点から光線追跡によって参照される分割空間が変化するため、参照された空間を管理している各計算機の交差判定回数が変動する。また、各分割空間に存在するオブジェクトの数や形状、分布の仕方、追跡する軌跡と空間との関係等の要因により、一回の交差判定にかかる処理時間が変わってくる。そのため、各計算機での処理時間にばらつきが出る。この処理時間は最も遅い計算機によって決まるため、同一空間内容を持つ計算機を複数台用意し、ばらつきを抑えることが行われる。
【０００６】
前記非特許文献３に記載されているように、簡略化された光線追跡法（レイトレース）では、図１４に示すように視点１と仮想のスクリーン２を配置する。視点１から対応する仮想スクリーン２上の点３への視線を追跡し、一番初めに物体にぶつかった点の色を求めて、その色を仮想スクリーン２上の点３の色として、４に示すように映像化することができる。
【０００７】
また、等間隔に分割された空間を直線が通る時、交わる空間を求める方法として、３ＤＤＤＡ（3D Digital Differential Analyzer）と呼ばれる３次元デジタル直線の高速な発生アルゴリズムが知られている（前記非特許文献１参照）。このアルゴリズムを用いて、視線が通る分割空間を求めると、図１５に示すように、まず視点１から対応する仮想スクリーン２への視線５を追跡し、物体の存在する仮想空間を分割した空間の中で一番初めにぶつかる空間を求める。このぶつかった空間を始点として、３ＤＤＤＡアルゴリズムにより、視線が通る分割空間を６に示すように順次求めることができる。
【０００８】
【非特許文献１】千葉則茂／村岡一信著「ＣによるＣＧレイトレーシング」サイエンス社  １９９１年
【非特許文献２】Henrik Wann Jensen著  苗村健訳「フォトンマッピング−実写に迫るコンピュータグラフィックス」  オーム社  ２００２年
【非特許文献３】James D.Foley,Andries van Dam,Steven K.Feiner,John F.Hughes共著  佐藤義男  監訳「コンピュータグラフィックス理論と実践」  オーム社
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、前記の並列計算機を使った高速化のための手法である、空間分割して複数の計算機に負荷分散する方式では、個々の分割空間と計算機の対応をとるマップ情報の参照の仕方として、以下の２つの方法があるがいずれも問題がある。
【００１０】
すなわち、第１の方法は、マップ情報を管理する計算機を設け、追跡を行う計算機はそこに問い合わせを行う方法である。しかし、この方法では、マップ情報管理計算機に問い合わせが集中し、そこが処理のボトルネックの一つとなる。また、オブジェクトが全く無い分割空間を参照した時にも、マップ情報管理計算機に問い合わせを行い、無駄な処理が発生するという問題がある。
【００１１】
また、第２の方法は、マップ情報を、追跡を行う計算機に事前に配布しておき、その配布されたマップ情報を参照する方法である。しかし、この方法は、負荷に応じて動的に空間管理する計算機を増やした時に、追跡を行っている複数の計算機に、個々の分割空間と計算機のマップ情報を更新する必要があり、リアルタイム性に欠ける。また、どの分割空間管理計算機が空いているのかという情報が分からない。
【００１２】
また、均等に分割した空間では、オブジェクトの配置やオブジェクトの複雑さの違いにより、分割空間毎の交差判定処理にかかる時間がまちまちである。例えば、宇宙空間をＣＧの仮想空間内で表現しようとすると、銀河の星々が集まる分割空間と、銀河の果ての星が一つあるかないかのところでは、交差判定に要する時間が異なる。
【００１３】
星々が集まる分割空間を基準に空間分割を行うと、適切な処理時間に収めるため、非常に細かく空間分割を行わなければならず、マップ情報に使用するメモリの大きさが膨大になり、また光線追跡による交わる分割空間の数が分割する細かさに比例して増えるため、交差判定回数が増えてしまうため、高速化に限界が来てしまう。
【００１４】
本発明は以上の点に鑑みなされたもので、リアルタイムにマップ情報を参照でき、特定計算機へのアクセス集中を防ぎ、オブジェクトが全く無い分割空間の参照を無くし得る３次元画像生成システムを提供することを目的とする。
【００１５】
また、本発明の他の目的は、空間内のオブジェクトの存在や複雑さに偏りがあっても、空間分割に必要なマップ情報格納に必要なメモリや交差判定処理を削減し、広大な空間を効率良くレンダリングし得る３次元画像生成システムを提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明は、視点又は光源からの光線を追跡する複数の第１の計算機と、物体が存在する３次元仮想空間を均等に分割し、分割された空間にオブジェクトが存在する時に、その分割空間のオブジェクトデータを格納する複数の第２の計算機と、第１の計算機と第２の計算機とをネットワーク接続し、第１の計算機により生成された、視点又は光源からの光線がぶつかるオブジェクトが存在する分割空間の位置を示す特定パターンのパケットを、複数の第２の計算機のうち、そのパケットを処理し送るべき空間を担当する第２の計算機を探し出して転送するネットワーク接続装置とを有し、第２の計算機は特定パターンのパケットを受け取った時には、管理する分割空間内に交差するオブジェクトが存在するかどうか交差判定を行い、判定結果を示す追跡応答パケットをネットワーク接続装置を介して第１の計算機へ通知し、第１の計算機は追跡応答パケットに基づき３次元画像情報を生成して格納することを特徴とする。
【００１７】
本発明では、予め分割した空間毎に第２の計算機を複数割り当て、ラウンドロビンを実現することにより、複数の第１の計算機間で同一分割空間を参照した場合にでも、適切に負荷分散を行うことができる。また、第１の計算機は追跡応答パケットが交差するオブジェクトが存在しないことを示しているときには、検索を打ち切ることができる。
【００１８】
また、上記の目的を達成するため、本発明は、視点又は光源からの光線を追跡する複数の第１の計算機と、互いに上位と下位の関係に接続された複数のネットワーク接続装置と、複数のネットワーク接続装置の各々に接続されており、物体が存在する３次元仮想空間を均等に分割し、分割された空間にオブジェクトが存在する時に、その分割空間のオブジェクトデータを格納する複数の第２の計算機とを有し、上位のネットワーク接続装置は、第１の計算機と第２の計算機とをネットワーク接続し、第１の計算機により生成された、視点又は光源からの光線がぶつかるオブジェクトが存在する分割空間の位置を示す特定パターンのパケットを、複数の第２の計算機のうち、そのパケットを処理し送るべき空間を担当する第２の計算機を探し出して転送し、特定の分割空間にオブジェクトが予め定めた数以上存在するときには、下位のネットワーク接続装置を割り当て、特定の分割空間を更に均等に分割した細分割空間にオブジェクトが存在するときには、そのオブジェクトが存在する特定パターンのパケットを、下位のネットワーク接続装置に接続された第２の計算機のうち、そのパケットを処理し送るべき空間を担当する第２の計算機を探し出して転送し、第２の計算機は特定パターンのパケットを受け取った時には、管理する分割空間内に交差するオブジェクトが存在するかどうか交差判定を行い、判定結果を示す追跡応答パケットを下位のネットワーク接続装置及び上位のネットワーク装置をそれぞれ介して、又は上位のネットワーク装置のみを介して第１の計算機へ通知し、第１の計算機により追跡応答パケットに基づき生成した３次元画像情報を格納させることを特徴とする。
【００１９】
この発明では、複数のネットワーク接続装置が上位と下位の関係があり、上位の管理する分割された空間の一部を下位に管理させることができるため、空間内に存在するオブジェクトの分布に偏りがあっても対応できる。
【発明の効果】
【００２０】
本発明によれば、予め分割した空間毎に第２の計算機を複数割り当て、ラウンドロビンを実現することにより、複数の第１の計算機間で同一分割空間を参照した場合にでも、特定計算機へのアクセス集中を防ぎ、適切に負荷分散を行うことができる。また、本発明によれば、第１の計算機は追跡応答パケットが交差するオブジェクトが存在しないことを示しているときには、検索を打ち切るようにしたため、オブジェクトが全く無い分割空間の無駄な空間参照処理を無くすことができる。
【００２１】
また、本発明によれば、複数のネットワーク接続装置が上位と下位の関係があり、上位の管理する分割された空間の一部を下位に管理させることにより、空間内のオブジェクトの存在や複雑さに偏りがあっても、空間分割に必要なマップ情報格納に必要なメモリや交差判定処理を削減し、広大な仮想３次元空間を効率良くレンダリングすることができる。
【発明を実施するための最良の形態】
【００２２】
次に、本発明の各実施の形態について、図面と共に説明する。
【００２３】
（第１の実施の形態）
図１は本発明になる３次元画像生成システムの第１の実施の形態の要部のブロック図、図２は本発明になる３次元画像生成システムの第１の実施の形態の他の要部のブロック図を示す。両図中、同一構成部分には同一符号を付してある。本実施の形態はレイトレースを実装した例で、図１に示すように、分割された空間内のオブジェクト情報を持った分割空間管理計算機１１、１２及び１３と、空間追跡ネットワーク装置１４と、システム全体を管理する並列画像処理管理計算機１５と、視点からの光線を追跡する追跡計算機１６、１７、１８及び１９とより構成されている。空間追跡ネットワーク装置１４は、追跡計算機１６〜１９からのパケットを解析して、分割空間管理計算機１１〜１３のうち適切な分割空間管理計算機に転送する機能を持つ。
【００２４】
本実施の形態では、まず、物体の存在する３次元仮想空間を図３に２０で示すように、任意区間に均等に分割する。分割された空間にオブジェクトが存在する場合、その分割された空間のオブジェクトデータを分割空間管理計算機１１〜１３のうち、その分割された空間に対応して予め割り当てた適切な一台以上の分割空間管理計算機に格納しておく。上記のオブジェクトデータは、オブジェクトを構成する複数の頂点の座標値、色、材質などのデータからなる。
【００２５】
光線追跡法（レイトレース）では、図１５に示したように視点１と仮想スクリーン２を配置する。仮想スクリーン２は領域分割され、その分割領域毎に追跡計算機１６〜１９が一台ずつ配置される（割り当てられる）。追跡計算機１６〜１９の各出力パケットは、図２に示すように、映像合成装置２６で一つの画像に合成されてコンピュータのディスプレイやプロジェクタ等からなる映像表示装置２７に供給されることにより、仮想スクリーン２の３次元映像が映像表示装置２７に表示される。この映像表示装置２７上の画像の点（ｐｉｘｅｌ）は、仮想スクリーン２上の点に対応する。
【００２６】
映像表示装置２７上の各々の点（ｐｉｘｅｌ）の色を求めるため、追跡計算機１６〜１９では、映像表示装置２７上の点に対応する仮想スクリーン２上の各分割領域の座標を求める。ここでは、追跡計算機１６、１７、１８、１９は、図４に示すように、映像表示装置の映像表示エリアを４分割したときの映像表示エリア２１、２２、２３、２４に対応したエリアに表示する。
【００２７】
次に、追跡計算機１６〜１９では、図１５に示した視点１から対応する仮想スクリーン２上の座標方向へ視線（追跡方向ベクタ）を伸ばしていき、物体の存在する仮想空間６を分割した空間の中で、一番初めにぶつかる空間と座標（追跡開始点）を求めて得たアプリケーションデータを、図５の構造のパケット中に３４で示すように含めて図１の空間追跡ネットワーク装置１４へ供給する。なお、視点１が物体の存在する空間の中にあるときには、視点を追跡開始点とする。
【００２８】
図５に示すパケットは、先頭から順にイーサネット（Ethernet：登録商標）ヘッダ３１、ＩＰ（Internet Protocol）ヘッダ３２、ＵＤＰ（User Datagram Protocol）ヘッダ３３及びアプリケーションデータ３４が配置された構造である。
【００２９】
上記のアプリケーションデータ３４は、例えば、図６に示すパケット構造とされている。同図に示すように、アプリケーションデータ３４は、「パケット種別」３４１、「パケット識別子」３４２、「追跡開始点」３４３、「追跡方向ベクタ」３４４、「追跡空間ブロック数」３４５、「その他のデータ」３４６から構成されている。「パケット種別」３４１は、光線追跡パケット、フォトン追跡パケット、光線追跡応答パケット、フォトン追跡応答パケット等、パケットの種別を表している。
【００３０】
「パケット識別子」３４２は、個々のパケットを識別するためのＩＤ番号である。応答パケットの場合、この「パケット識別子」３４２により、どの追跡パケットに対する応答かが、空間追跡ネットワーク装置１４で分かる。「追跡開始点」３４３は、先の追跡開始点を示し、３次元座標値である。また、「追跡方向ベクタ」３４４は、視点からの追跡方向を表した、３次元ベクタである。また、「追跡空間ブロック数」３４５は、３ＤＤＤＡで空間を追跡する際に、始めにスキップする空間の数、すなわち、パケットを送る際に求められた空間までいくつ跳び越したかという情報を示す。
【００３１】
更に、「その他のデータ」３４６は、３ＤＤＤＡで視線が通る空間を求める際には必要がないが、レイトレースでは必要なデータ、例えば、視線の反射回数のカウントなどのデータである。以上の情報をアプリケーションデータ３４に持つ図５の構造のＩＰｖ４のＵＤＰパケットを追跡計算機１６〜１９から空間追跡ネットワーク装置１４のＩＰアドレス，事前に決められた追跡用のＵＤＰポート番号に対して送出する。
【００３２】
次に、上記のパケットを受信する空間追跡ネットワーク装置１４について説明する。図７は空間追跡ネットワーク装置１４の一実施の形態のブロック図を示す。同図に示すように、空間追跡ネットワーク装置１４は、ネットワークのパケットを操作するネットワーク・プロセッサ１４１に、プログラムを格納しているリード・オンリ・メモリ（ＲＯＭ）１４２、作業領域用のランダム・アクセス・メモリ（ＲＡＭ）１４３、処理するパケットを専用に格納するパケットメモリ１４４、そしてバスを経由して接続された複数のネットワークＩＦ（インタフェース）１４５、１４６、１４７及び１４８とから構成されている。
【００３３】
予め分割した空間から分割空間管理計算機１１〜１３のＩＰアドレスへの空間管理マップを、図１に示した並列画像処理管理計算機１５から空間追跡ネットワーク装置１４に設定する。空間管理マップは、図８のような構造を持っている。同図において、分割数によって決まるｉｎｄｅｘ３次元配列の要素は、その空間にマシン、すなわち分割空間管理計算機１１〜１３が存在しなければヌル（ＮＵＬＬ）となり、存在すれば分割空間管理計算機１１〜１３のＩＰアドレスのリストを指す。アドレス管理をリスト構造で行うため、同一空間に複数台の分割空間管理計算機１１〜１３を割り当てて、リクエストをアサインしたらリストの最後に移動させることにより、簡単にラウンドロビンが実現できる。
【００３４】
また、空間追跡ネットワーク装置１４では、装置宛のＩＰアドレス及び事前に決められた追跡用のＵＤＰポート番号に一致しないパケットについては、通常のレイヤ２イーサネット・スイッチやルータなどのネットワーク装置と同様の処理を行う。装置宛のＩＰアドレス及び事前に決められた追跡用のＵＤＰポート番号に一致したパケットについては、空間追跡ネットワーク装置１４はパケット種別に応じた処理内容の処理を行う。
【００３５】
光線追跡パケットの場合、図６のパケット構造の中の「追跡開始点」３４３から分割された空間へのインデックス（index）が求められ、「追跡方向ベクタ」３４４から増分係数、そして現在の光線の位置を求め、３ＤＤＤＡのアルゴリズムに必要なパラメータを算出する。その空間から、３ＤＤＤＡのアルゴリズムを使い、「追跡空間ブロック数」３４５で示された値だけ先に進んだブロックを求め、そこから３ＤＤＤＡのアルゴリズムを使い、オブジェクトが存在する空間が見付かるまで空間管理マップを１ブロックずつ進めながら調べていく。
【００３６】
オブジェクトが存在する空間が見付からず、管理している空間の外に出てしまった時には、空間追跡ネットワーク装置１４は、追跡計算機１６〜１９にオブジェクトが存在する空間が見付からなかった旨、追跡空間ブロック数を無限大とした光線追跡応答パケット（すなわち、否定応答パケット）を生成し、パケット送出元に通知する。
【００３７】
他方、オブジェクトが存在する空間が見付かった場合は、空間追跡ネットワーク装置１４は、空間管理マップの中で対応する分割空間管理計算機ＩＰアドレスリストの先頭をアクセスし、ラウンドロビンのためリスト最後尾に移動させた後、そのＩＰアドレスをコピーする。次に、空間追跡ネットワーク装置１４は、処理を行っている光線追跡パケットの追跡空間ブロック数（図６の３４５）を、先のオブジェクトが存在する空間を求めるためにカウントアップされたブロック数に置き換え、次に先ほどコピーしておいたＩＰアドレスとそれに対応するイーサネット（Ethernet：登録商標）ヘッダ内のＭＡＣアドレスを書き換えて分割空間管理計算機１１〜１３のうち、パケットを処理すべき空間に割り当てられた分割空間管理計算機に送る。
【００３８】
分割空間管理計算機１１〜１３のうち、パケットを処理すべき空間に割り当てられた分割空間管理計算機では、光線追跡パケットから管理される分割空間へのトレース軌跡を求め、交差判定を行う。交差判定の結果、交差するオブジェクトが存在しない場合、追跡計算機１６〜１９に見付からなかった旨の光線追跡応答パケットを生成し通知する。交差判定の結果、交差するオブジェクトが存在した場合、追跡計算機１６〜１９に見付かった旨の光線追跡応答パケットを生成し通知する。光線追跡応答パケットには、最も手前で見付かったオブジェクトのＩＤ及び交差した位置の直接光や間接光から求めた色情報を計算した結果を載せる。
【００３９】
追跡計算機１６〜１９は、上記の光線追跡応答パケットを受け取り、その光線追跡応答パケットが交差するオブジェクトが見付かった旨の通知である場合は、オブジェクトが交差した位置の直接光や間接光から求めた色情報を仮想スクリーン上の色とする。一方、受け取った上記の光線追跡応答パケットが、交差するオブジェクトが見付からなかった旨の通知である場合は、追跡計算機１６〜１９は、光線追跡応答パケット中の追跡空間ブロック数を見て、規定のブロック数以上であった場合、そこで検索を打ち切り、背景色として設定された色を仮想スクリーン上の色とする。これにより、無駄な空間参照処理を省略できる。
【００４０】
また、受け取った光線追跡応答パケットが、交差するオブジェクトが見付からなかった旨の通知である場合、追跡計算機１６〜１９は、その応答パケット中の追跡空間ブロック数を見て、規定のブロック数未満であった場合、応答パケットの追跡空間ブロック数を設定した光線追跡パケットを生成し、空間追跡ネットワーク装置１４へ送出する。このようにして生成された３次元画像情報は、追跡計算機１６〜１９のメモリに格納される。
【００４１】
このように、本実施の形態によれば、予め分割した空間毎に分割空間管理計算機１１〜１３を複数割り当てることができ、それは図８に示したリスト構造の空間管理マップで管理されており、そのリスト構造の先頭の分割空間管理計算機に光線追跡パケットを転送すると、リストの最後尾に移動させることにより、ラウンドロビンが実現できるため、複数の追跡計算機１６〜１９間で同一分割空間を参照した場合にでも、適切に負荷分散を行うことができ、また、追跡する光線の軌跡がオブジェクトが存在しない分割空間を通る場合に、無駄な空間参照処理を無くすことができる。
【００４２】
（第２の実施の形態）
図９は本発明になる３次元画像生成システムの第２の実施の形態の要部のブロック図を示す。本実施の形態はフォトンマップの実装の実施の形態で、同図中、図１と同一構成部分には同一符号を付し、その説明を省略する。図９において、空間追跡ネットワーク装置１４には、光源からの光線を追跡する光源追跡計算機５１、５２、５３及び５４が接続されている。
【００４３】
本実施の形態では、まず、物体の存在する仮想空間を図３に２０で示すように、任意区間に均等に分割する。分割された空間にオブジェクトが存在する場合、その分割空間のオブジェクトデータを分割空間管理計算機１１〜１３のうち、分割空間に予め割り当てられた一台以上の分割空間管理計算機に格納しておく。オブジェクトデータは、オブジェクトを構成する複数の頂点の座標値、色、材質などのデータからなる。
【００４４】
フォトンマップ法では、光源からの追跡は独立して処理できるため、複数台の光源追跡計算機（図９では４台の光源追跡計算機５１〜５４）を用いる。個々のフォトンの出力は均等であることが望ましいため、光源のエネルギーに応じて、生成されるフォトン数を決める。光源追跡計算機５１〜５４に対しては、フォトン数が均等になるように、割り当てをすることにより、簡易的なロードバランスを行うことができる。
【００４５】
また、物体の存在する空間の照度分布を求めるため、光源追跡計算機５１〜５４では、光源の強度分布情報と乱数からフォトンの放出方向を決め、光源の色及びエネルギーからフォトンの出力を決める。
【００４６】
次に、光源追跡計算機５１〜５４では、光源からフォトンの放出方向（追跡方向ベクタ）へトレースを行い、物体の存在する仮想空間を分割した空間の中で、一番初めにぶつかる空間と座標（追跡開始点）を求めて得たアプリケーションデータを、図５の構造のパケット中に含めて空間追跡ネットワーク装置１４へ供給する。なお、光源が物体の存在する空間の中にあるときには、光源を追跡開始点とする。
【００４７】
図５に示すパケット中のアプリケーションデータ３４は、本実施の形態では、例えば、図１０に示すパケット構造とされている。同図中、図６と同一部分には同一符号を付し、その説明を省略する。図１０に示すパケット構造は、図６のパケット構造に比べて、「オブジェクトぶつかった回数」３４７が追加されている。「オブジェクトぶつかった回数」３４７は、フォトンがオブジェクトとぶつかり、反射や屈折をした回数を示す。
【００４８】
図１０において、「追跡方向ベクタ」３４４は、光源からの追跡方向を表した、３次元ベクタである。また、「その他のデータ」３４６は、３ＤＤＤＡで視線が通る空間を求める際には必要がないが、フォトンマップでは必要なデータ、例えば、フォトンの色や強度などのデータである。以上の情報をアプリケーションデータ部分に持つＩＰｖ４のＵＤＰパケットを光源追跡計算機５１〜５４から空間追跡ネットワーク装置１４のＩＰアドレス、事前に決められた追跡用のＵＤＰポート番号に対して送出する。
【００４９】
次に、上記のＵＤＰパケットを受信する空間追跡ネットワーク装置１４について説明する。空間追跡ネットワーク装置１４の構成は、図７に示した構成と同一であり、予め分割した空間から分割空間管理計算機１１〜１３のＩＰアドレスへの空間管理マップを並列画像処理管理計算機１５から空間追跡ネットワーク装置１４に設定する点も第１の実施の形態と同様である。
【００５０】
空間管理マップは、前述した図８のような構造を持っている。図９の空間追跡ネットワーク装置１４では、装置宛のＩＰアドレス及び事前に決められた追跡用のＵＤＰポート番号に一致しないパケットについては、通常のレイヤ２イーサネット（登録商標）・スイッチやルータなどのネットワーク装置同様の処理を行う。一致したパケットについては、パケット種別によって処理内容が変わる。
【００５１】
フォトン追跡パケットの場合、追跡開始点から分割された空間へのインデックスが求められ追跡方向ベクタから増分係数、そして現在のフォトン追跡の位置を求め、３ＤＤＤＡのアルゴリズムに必要なパラメータを算出する。その空間から、３ＤＤＤＡのアルゴリズムを使い、追跡空間ブロック数分だけ先に進んだブロックを求め、そこから３ＤＤＤＡのアルゴリズムを使いオブジェクトが存在する空間が見付かるまで空間管理マップを１ブロックずつ進めながら調べていく。
【００５２】
オブジェクトが存在する空間が見付からず、管理している空間の外に出てしまった時には、図９の空間追跡ネットワーク装置１４は、光源追跡計算機５１〜５４にオブジェクトが存在する空間が見付からなかった旨、追跡空間ブロック数を無限大としたフォトン追跡応答パケットを生成し通知する。
【００５３】
他方、オブジェクトが存在する空間が見付かった場合は、図９の空間追跡ネットワーク装置１４は、空間管理マップの中で対応する分割空間管理計算機ＩＰアドレスリストの先頭をアクセスし、ラウンドロビンのためリスト最後尾に移動させた後、そのＩＰアドレスをコピーする。
【００５４】
次に、空間追跡ネットワーク装置１４は、処理を行っているフォトン追跡パケットの追跡空間ブロック数（図１０の３４５）を、先のオブジェクトが存在する空間を求めるためにカウントアップされたブロック数に置き換え、次に先ほどコピーしておいたＩＰアドレスとそれに対応するイーサネット（Ethernet：登録商標）ヘッダ内のＭＡＣアドレスを書き換えて図９の分割空間管理計算機１１〜１３のうち、割り当てられた分割空間管理計算機に送る。
【００５５】
図９の分割空間管理計算機１１〜１３のうち、割り当てられた分割空間管理計算機では、フォトン追跡パケットから管理される空間へのトレース軌跡を求め、交差判定を行う。交差判定の結果、交差するオブジェクトが存在しない場合、光源追跡計算機５１〜５４に見付からなかった旨のフォトン追跡応答パケットを生成し通知する。
【００５６】
交差判定の結果、交差するオブジェクトが存在した場合、光源追跡計算機５１〜５４に見付かった旨のフォトン追跡応答パケットを生成し通知する。フォトン追跡応答パケットには、最も手前で見付かったオブジェクトのＩＤ及び交差した位置の座標情報、フォトンの反射や屈折が発生したか、発生したならばその方向、オブジェクトぶつかった回数（図１０の３４７）をインクリメントして載せる。そして、フォトン追跡パケットの情報を第１の実施の形態の間接光計算のために、分割空間管理計算機１１〜１３に記憶する。
【００５７】
光源追跡計算機５１〜５４は、上記のフォトン追跡応答パケットを受け取り、そのフォトン追跡応答パケットが、交差するオブジェクトが見付かった旨の通知である場合、そのパケット中の「オブジェクトぶつかった回数」３４７が規定値に達しているかどうか判定し、規定値に達している場合、そこで検索を打ち切る。
【００５８】
他方、「オブジェクトぶつかった回数」３４７が規定値未満の場合、フォトンの反射や屈折が発生していれば、交差した位置を追跡開始点、フォトンの反射や屈折方向を追跡方向ベクタとして、追跡空間ブロック数３４５を０にして、新たにフォトン追跡パケットを生成する。
【００５９】
また、光源追跡計算機５１〜５４は、交差するオブジェクトが見付からなかった旨の上記のフォトン追跡応答パケットを受け取った場合、その応答パケット中の「追跡空間ブロック数」３４５を見て、規定のブロック数以上であるかどうか判定し、規定のブロック数以上である場合、そこで検索を打ち切るが、規定のブロック数未満である場合は、応答パケットの追跡空間ブロック数の値を設定したフォトン追跡パケットを生成し送出する。
【００６０】
一連の処理終了後に、空間追跡ネットワーク装置１４は、同一空間を管理している分割空間管理計算機１１〜１３間で、蓄積されたフォトン追跡パケットの情報を交換し、同一内容となるようにする。
【００６１】
このように、本実施の形態によれば、複数の光源追跡計算機５１〜５４間で同一分割空間を参照した場合にでも、適切に負荷分散を行うことができ、また、追跡する光線の軌跡がオブジェクトが存在しない分割空間を通る場合に、無駄な空間参照処理を無くすことができる。
【００６２】
（第３の実施の形態）
次に、本発明の第３の実施の形態について説明する。図１１は本発明になる３次元画像生成システムの第３の実施の形態の要部のブロック図を示す。本実施の形態はレイトレースの実装例で、同図中、図１と同一構成部分には同一符号を付し、その説明を省略する。図１１に示す実施の形態では、第１の実施の形態と同様の構成に加え、空間追跡ネットワーク装置１４に、追跡計算機１６〜１９からのパケットを解析して適切な分割空間管理計算機に転送する機能を持つ第２の空間追跡ネットワーク装置６０が接続され、また、空間追跡ネットワーク装置６０には、分割された空間内のオブジェクト情報を持つ分割空間管理計算機６１〜６３がそれぞれ接続されている。
【００６３】
本実施の形態では、まず、物体の存在する仮想空間を図１２に６５で示すように、任意区間に均等に分割する。分割された空間にオブジェクトが存在する場合、その分割空間のオブジェクトデータをその分割空間に対応して予め割り当てられた一台以上の分割空間管理計算機（ここでは、一例として１１、１２）に格納しておく。オブジェクトデータは、オブジェクトを構成する複数の頂点の座標値、色、材質などのデータからなる。
【００６４】
また、仮想空間６５の複数の分割空間（階層１）の中に多数のオブジェクトデータが含まれる分割空間がある場合、例えば、その分割空間を更に図１２に６６で示すように均等に複数分割する。６６で示すように均等に分割された複数の分割空間（階層２）の一つにオブジェクトが存在する場合、その分割空間のオブジェクトデータを、その分割空間に対応して予め割り当てられた一台以上の分割空間管理計算機６１〜６３に格納する。
【００６５】
光線追跡法（レイトレース）では、前述した図１５のように視点１と仮想のスクリーン２を配置する。仮想スクリーン２は、領域分割され、その分割領域毎に追跡計算機１６〜１９が配置される。追跡計算機１６〜１９は、図２に示したように、映像合成装置２６を介して映像表示装置２７に接続されているので、仮想スクリーン２の画像が映像表示装置２７に表示され、映像表示装置２７上の点（ｐｉｘｅｌ）は、仮想スクリーン２上の点に対応する。
【００６６】
映像表示装置２７上の各々の点（ｐｉｘｅｌ）の色を求めるため、追跡計算機１６〜１９では、映像表示装置２７上の点に対応する仮想スクリーン２上の座標を求める。次に、追跡計算機１６〜１９では、視点１から対応する仮想スクリーン２上の座標方向へ視線（追跡方向ベクタ）を伸ばしていき、物体の存在する仮想空間を分割した空間の中で、一番初めにぶつかる空間と座標（追跡開始点）を求める。視点が物体の存在する空間の中にあるときには、視点を追跡開始点とする。
【００６７】
図１１の追跡計算機１６〜１９は空間追跡ネットワーク装置１４、６０へ図５に示す構造のパケットを送出する。図５に示すパケット中のアプリケーションデータ３４は、本実施の形態では、例えば、図１３に示すパケット構造とされている。同図中、図６と同一部分には同一符号を付し、その説明を省略する。
【００６８】
図１３において、「最大階層数」３５１は、空間追跡ネットワーク装置を最大何段まで経由できるかを示す値であり、「現在の階層」３５２は空間追跡ネットワーク装置を何段経由したかを示す値であり、初期値は０である。また、「追跡空間ブロック数」３５３〜３５５は、階層毎に全部で最大階層数ｎだけあり、３ＤＤＤＡで空間を追跡する際に、始めにスキップする空間の数、すなわち、パケットを送る際に求められた空間までいくつ跳び越したかという情報を示す。更に、「その他のデータ」３５６は、３ＤＤＤＡで視線が通る空間を求める際に必要がないが、レイトレースでは必要なデータであり、例えば、視線の反射回数のカウントなどである。
【００６９】
以上の情報をアプリケーションデータとして持つＩＰｖ４のＵＤＰパケットは、図１１の追跡計算機１６〜１９から空間追跡ネットワーク装置１４、６０のＩＰアドレス、事前に決められた追跡用のＵＤＰポート番号に対して送出される。
【００７０】
次に、上記のＵＤＰパケットを受信する空間追跡ネットワーク装置１４、６０について説明する。空間追跡ネットワーク装置１４及び６０はそれぞれ同一構成であり、図７に示したように、ネットワークのパケットを操作するネットワーク・プロセッサ１４１、プログラムを格納するＲＯＭ１４２、作業領域用のＲＡＭ１４３、処理するパケットを専用に格納するパケットメモリ１４４、複数のネットワークＩＦ１４５〜１４８とからなる。
【００７１】
この空間追跡ネットワーク装置１４及び６０には、予め分割した空間から分割空間管理計算機１１〜１３、６１〜６３のＩＰアドレスへの空間管理マップが、並列画像処理管理計算機１５から設定される。この空間管理マップは、前述した図８のような構造を持っている。
【００７２】
空間追跡ネットワーク装置を本実施の形態の空間追跡ネットワーク装置１４及び６０のように多段で接続した場合、追跡計算機１６〜１９に直接接続された上位の空間追跡ネットワーク装置１４の空間管理マップに、下位の空間追跡ネットワーク装置６０はマシンとして、すなわち分割空間管理計算機として登録される。そのため、上位から下位への問い合わせは、通常の分割空間管理計算機への問い合わせと同一手順で行われる。
【００７３】
図１１の空間追跡ネットワーク装置１４、６０では、装置宛のＩＰアドレス及び事前に決められた追跡用のＵＤＰポート番号に一致しないパケットについては、通常のレイヤ２イーサネット・スイッチやルータなどのネットワーク装置同様の処理を行う。一致したパケットについては、パケット種別によって処理内容が変わる。
【００７４】
光線追跡パケットの場合、追跡開始点から分割された空間へのインデックスが求められ、追跡方向ベクタから増分係数、そして現在の光線の位置を求め、３ＤＤＤＡのアルゴリズムに必要なパラメータを算出する。その空間から、３ＤＤＤＡのアルゴリズムを使い、追跡空間ブロック数分だけ先に進んだブロックを求め、そこから３ＤＤＤＡのアルゴリズムを使いオブジェクトが存在する空間が見付かるまで空間管理マップを１ブロックずつ進めながら調べていく。
【００７５】
すなわち、光線追跡パケット内の階層情報を参照して空間追跡ネットワーク装置の多段接続数（ここでは、２）をインデックスとし、交差する分割された空間を始点側から順番に求める際に、光線追跡パケット内の飛び越す分割空間ブロック数の情報を格納した配列を先のインデックスを用いてアクセスし、飛び越した先から処理を始め、オブジェクトが存在する空間が見付かるまで空間管理マップを１ブロックずつ進めながら調べていく。
【００７６】
オブジェクトが存在する空間が見付からず、管理している空間の外に出てしまった時には、追跡計算機に見付からなかった旨、追跡空間ブロック数を無限大とした光線追跡応答パケットを生成し通知する。オブジェクトが存在する空間が見付かった場合、空間管理マップの中で対応する分割空間管理計算機ＩＰアドレスリストの先頭をアクセスし、ラウンドロビンのためリスト最後尾に移動させた後、そのＩＰアドレスをコピーする。
【００７７】
次に、空間追跡ネットワーク装置１４、６０の処理について説明する。前述したように、２つの空間追跡ネットワーク装置１４及び６０は、上位と下位の関係があり、上位の空間追跡ネットワーク装置１４が管理する空間の一部を下位の空間追跡ネットワーク装置６０に管理させる。下位の空間追跡ネットワーク装置６０は、光線追跡パケットが入ってきた時点で上位の空間追跡ネットワーク装置１４からの問い合わせと認識する。
【００７８】
光線追跡パケットは、追跡計算機１６〜１９から上位の空間追跡ネットワーク装置１４へ供給され、下位の空間追跡ネットワーク装置６０に渡され、更に分割空間管理計算機６１〜６３へ供給される。光線追跡応答パケットは、上記とは逆に分割空間管理計算機６１〜６３から下位の空間追跡ネットワーク装置６０へ供給された後上位の空間追跡ネットワーク装置１４に渡され、その後追跡計算機１６〜１９へ供給される。このようにして、２つの空間追跡ネットワーク装置１４及び６０は、処理対象の光線追跡パケットに以下のような処理を行う。
【００７９】
まず、「現在の階層」３５２の値を１増やす。増やした結果、「現在の階層」３５２の値が最大階層数を超えた場合、図１１の追跡計算機１６〜１９に対し、オブジェクトが存在する空間が見付からなかった旨、「追跡空間ブロック数」３５３〜３５５のうち、担当する階層の「追跡空間ブロック数」を無限大とした光線追跡応答パケットを生成し通知する。担当する階層がどこかは、現在の階層で知ることができる。
【００８０】
続いて、「現在の階層」３５２をインデックスとして「追跡空間ブロック数」３５３〜３５５の配列をアクセスし、先のオブジェクトが存在する空間を求めるためにカウントアップされたブロック数に置き換えた後、先ほどコピーしておいたＩＰアドレスとそれに対応するイーサネット（Ethernet：登録商標）ヘッダ内のＭＡＣアドレスを書き換える。
【００８１】
以上の処理を終えた後に、空間追跡ネットワーク装置１４、６０は、分割空間に対応する分割空間管理計算機１１〜１３、６１〜６３もしくは一方の空間追跡ネットワーク装置に送る。分割空間管理計算機１１〜１３、６１〜６３では、空間追跡ネットワーク装置１４、６０から送出された光線追跡パケットを受信し、その受信光線追跡パケットから管理される空間へのトレース軌跡を求め、交差判定を行う。
【００８２】
交差判定の結果、交差するオブジェクトが存在しない場合、見付からなかった旨の光線追跡応答パケットを生成し追跡計算機１６〜１９に通知する。交差判定の結果、交差するオブジェクトが存在した湯合、見付かった旨の光線追跡応答パケットを生成し追跡計算機に通知する。光線追跡応答パケットには、最も手前で見付かったオブジェクトのＩＤ及び交差した位置の直接光や間接光から求めた色情報を計算した結果を載せる。
【００８３】
図１１の追跡計算機１６〜１９は、光線追跡応答パケットを受け取り、その光線追跡応答パケットが交差するオブジェクトが見付かった旨の通知である場合は、オブジェクトが交差した位置の直接光や間接光から求めた色情報を仮想スクリーン上の色とする。一方、受け取った上記の光線追跡応答パケットが、交差するオブジェクトが見付からなかった旨の通知である場合は、追跡計算機１６〜１９は、光線追跡応答パケット中の追跡空間ブロック数を見て、規定のブロック数以上であった場合、そこで検索を打ち切り、背景色として設定された色を仮想スクリーン上の色とする。
【００８４】
また、受け取った光線追跡応答パケットが、交差するオブジェクトが見付からなかった旨の通知である場合、追跡計算機１６〜１９は、その応答パケット中の現在の階層をインデックスとする追跡空間ブロック数をアクセスし、規定のブロック数未満であった場合、応答パケットの追跡空間ブロック数の配列の内容を設定した光線追跡パケットを生成し、空間追跡ネットワーク装置１４、６０へ送出する。
【００８５】
このように、本実施の形態によれば、階層１の特定の分割空間に多数のオブジェクトが存在するような、空間内に存在するオブジェクトの分布に偏りがある場合でも、多数のオブジェクトが存在する階層１の特定の分割空間を更に階層２の複数の分割空間に均等に分割して、空間追跡ネットワーク装置６０により分割空間管理計算機６１〜６３のうちの一台以上の対応する分割空間管理計算機に割り当てるようにしたため、複数の追跡計算機１６〜１９間で適切に負荷分散を行うことができ、これにより、広大な仮想３次元空間を効率良く扱うことができる。
【００８６】
なお、第３の実施の形態も、フォトンマップの実装は可能であり、特定パターンを持つパケットとしてフォトン追跡パケットの処理に適用可能である。光線追跡パケットかフォトン追跡パケットかの識別は、イーサネットヘッダ及びＩＰヘッダ、ＵＤＰヘッダ及びアプリケーションデータのパケット種別が一致しているかで行う。また、空間追跡ネットワーク装置は最大階層数を越えない範囲であれば、３台以上あってもよい。
【図面の簡単な説明】
【００８７】
【図１】本発明の第１の実施の形態の要部のブロック図である。
【図２】本発明の第１の実施の形態の他の要部のブロック図である。
【図３】本発明の空間分割管理の一例の概念説明図である。
【図４】図２中の追跡計算機の出力と映像表示装置の分割された映像表示エリアとの関係を示す図である。
【図５】追跡計算機が出力するパケットの一例の構造図である。
【図６】図５中のアプリケーションデータの一例の構造図である。
【図７】図１中の空間追跡ネットワーク装置の一例のブロック図である。
【図８】空間管理マップの構成図である。
【図９】本発明の第２の実施の形態の要部のブロック図である。
【図１０】フォトン追跡パケットのアプリケーションデータの一例の構造図である。
【図１１】本発明の第３の実施の形態の要部のブロック図である。
【図１２】図１１における階層空間分割管理の一例の概念図である。
【図１３】追跡パケットのアプリケーションデータの一例の構造図である。
【図１４】光線追跡法（レイトレース）の説明図である。
【図１５】３ＤＤＤＡアルゴリズム説明図である。
【符号の説明】
【００８８】
１１、１２、１３、６１、６２、６３  分割空間管理計算機
１４、６０  空間追跡ネットワーク装置
１５  並列画像処理装置
１６、１７、１８、１９  追跡計算機
２６  映像合成装置
２７  映像表示装置
３４  アプリケーションデータ
５１、５２、５３、５４  光源追跡計算機
１４１  ネットワーク・プロセッサ
１４４  パケットメモリ
１４５〜１４８  ネットワークＩＦ（インタフェース）
【図１】
2005327146.tif 000003
【図２】
2005327146.tif 000004
【図３】
2005327146.tif 000005
【図４】
2005327146.tif 000006
【図５】
2005327146.tif 000007
【図６】
2005327146.tif 000008
【図７】
2005327146.tif 000009
【図８】
2005327146.tif 000010
【図９】
2005327146.tif 000011
【図１０】
2005327146.tif 000012
【図１１】
2005327146.tif 000013
【図１２】
2005327146.tif 000014
【図１３】
2005327146.tif 000015
【図１４】
2005327146.tif 000016
【図１５】
2005327146.tif 000017