(57)【特許請求の範囲】
【請求項１】
ホストがシーン中の物体モデルの表面をパッチとして定義する工程と、前記ホストが前記シーン中の形状モデルを複数のノードを有するプロセッサの全ての前記ノードに伝送する工程と、前記ホストが前記定義されたパッチを複数のノードを有するプロセッサの前記各ノードに割り当てる工程と、前記ホストが前記各ノードに既に割り当てられた前記パッチの総面積の大小関係を判断する工程と、前記ホストが既に割り当てられた前記パッチの総面積が最小であるノードに次のパッチを割り当てる工程と、を備えるとともに、前記各工程の後に各ノードが伝送された前記シーン中の物体モデルに基づいて割り当てられた前記パッチのフォームファクタ計算を行う工程とをさらに備えたラジオシティの並列処理方法。
【請求項２】
複数のノードを有するプロセッサと、前記複数のノードが並列処理を行うよりも前にシーン中の形状モデルの表面をパッチとして定義する手段と、前記複数のノードが並列処理を行うよりも前に前記各ノードに既に割り当てられた前記パッチの総面積の大小関係を判断する手段と、前記複数のノードが並列処理を行うよりも前に既に割り当てられた前記パッチの総面積が最小であるノードに次のパッチを割り当てる手段とを備えたラジオシティの並列処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ラジオシティの並列処理方法及びその装置に関し、さらに詳しくは、ラジオシティ３次元コンピュータ・グラフィックス処理の高速処理化を可能とするラジオシティの並列処理方法及びその装置に関する。
【０００２】
【従来の技術】
ＢＳデジタル放送では、ＨＤ（ハイビジョン）画像処理通信技術（放送技術）が中核技術となっており、高精細な実画像処理通信（放送）を実現している。一方、「実画像」に比べて、コンピュータ・グラフィックス（ＣＧ）の高画質化・リアルタイム処理化技術はあまり進んでいない。
【０００３】
ネットワーク技術は、ギガビットレベルからテラレベルに数年内に移行するであろう。すなわち、次世代の通信では、ＨＤを超える超高精細画像が、現在の放送のような無線だけではなく、広帯域のネットワークを用いてデータ通信されるであろう。このような次世代の超高精細画像データ通信では、実画像はもちろん、ＣＧに関しても超高画質化かつリアルタイム処理伝送が強く求められるであろう。
【０００４】
近年の工業製品のデザイン・設計は、ＣＧなしでは考えられない。しかしながら、現在のＣＧシステムでは、画質（解像度）、処理速度等、まだまだいろんな点で不十分である。例えば、自動車設計の場合、ＣＧモデルと、実物をスチルカメラで取った写真とを比較すると、前者の方がリアリティ、質感の点でまだまだかなり劣る。また、建築分野においては、高いリアリティを持つ光のシミュレーション機能を利用した、建築物等の景観シミュレーション、インテリアデザイン機能が強く望まれている。
【０００５】
さらに、最近では、遠隔地間で３次元ＣＧデータを伝送し、工業製品のデザイン・設計を行うことが増えているが、データ量が大きいためリアルタイムでこれを行うレベルにはまだ達していない。
【０００６】
リアルな３次元ＣＧ空間を生成するには、光の物理的な振る舞いを計算機上でシミュレーションし、実写映像に迫るリアリティを追求することが必要不可欠である。このようなリアルな３次元ＣＧ空間を生成する技術であるラジオシティ法は、光の物理的な振る舞い（反射、拡散、写り込み、陰影  等）を計算機上の数理物理モデルを用いて計算し、間接光による光をシミュレーションすることにより、フォトリアリスティックな空間を生成する手法である。
【０００７】
【発明が解決しようとする課題】
３次元ＣＧのレンダリング手法の一つであるラジオシティ法は、伝熱工学を応用した大域照明モデルによる画像生成手法であり、室内照明の高品位ＣＧを生成する際などによく用いられている方法である。ラジオシティ法では、光源からの直接光だけでなく物体間の相互拡散反射も考慮に入れて画像を計算するため、線光源・面光源が作る不均一な影や、間接照明が多い室内などの表現に適し、非常に現実感の高い画像を生成できるのが特徴である。しかし、ラジオシティ法では、フォームファクタを求めるのに計算時間の大部分を占めている。フォームファクタ計算の並列化による高速化が重要である。
【０００８】
本発明が解決しようとする課題は、ラジオシティ法を用いてシミュレーションする際に、処理中の通信データ量を少なくし、効率の良い負荷分散を実現することができるラジオシティの並列処理方法及びその装置を提供することにある。
【０００９】
【課題を解決するための手段】
上記課題を解決するために、本発明に係るラジオシティの並列処理方法は、ホストがシーン中の物体モデルの表面をパッチとして定義する工程と、前記ホストが前記シーン中の形状モデルを複数のノードを有するプロセッサの全ての前記ノードに伝送する工程と、前記ホストが前記定義されたパッチを複数のノードを有するプロセッサの前記各ノードに割り当てる工程と、前記ホストが前記各ノードに既に割り当てられた前記パッチの総面積の大小関係を判断する工程と、前記ホストが既に割り当てられた前記パッチの総面積が最小であるノードに次のパッチを割り当てる工程と、を備えるとともに、前記各工程の後に各ノードが伝送された前記シーン中の物体モデルに基づいて割り当てられた前記パッチのフォームファクタ計算を行う工程とをさらに備えていることを要旨とする。
【００１０】
また、本発明に係るラジオシティの並列処理装置は、複数のノードを有するプロセッサと、前記複数のノードが並列処理を行うよりも前にシーン中の形状モデルの表面をパッチとして定義する手段と、前記複数のノードが並列処理を行うよりも前に前記各ノードに既に割り当てられた前記パッチの総面積の大小関係を判断する手段と、前記複数のノードが並列処理を行うよりも前に既に割り当てられた前記パッチの総面積が最小であるノードに次のパッチを割り当てる手段とを備えていることを要旨とする。
【００１１】
本発明は、形状を構成する面をグループ化し、この面グループを各ＣＰＵに分配し並列処理する方法及び装置に関する。この並列処理手法の特徴は、ＣＰＵ間のデータ通信量が少なくて済むことである。すなわち、各ＣＰＵ間で通信されるのは、各面グループ（各ＣＰＵ）において、受光面のエネルギー値が最大となる面データ（１面）のみである。
【００１２】
本発明は、この演算量の均等化基準として、合計面積同一化基準を採用した。この基準は、各面グループに含まれる面の面積の総和が、他の面グループとできる限り同一となるように、面をグループ化する方法である。そのため、各ＣＰＵの演算量が均等化され、高い並列処理度を実現することができる。
【００１３】
【発明の実施の形態】
以下に、本発明の一実施の形態について図面を参照しながら詳細に説明する。本発明では、負荷分散を考慮に入れたラジオシティ法の並列計算モデルを提案し、その特性を明らかにする。基本となるアルゴリズムは、フォームファクタの計算の際に物体を構成する形状の面（以下：パッチ）を均等に分散する方法を用いる。この方法は、各プロセッサ間の通信量がすくなくて良いため、ＰＣクラスタ計算機システムのように通信速度が比較的遅い分散メモリ型の並列計算機で有効であると考えられる。
【００１４】
ただし、単純に初期面を各プロセッサに分割したのでは、ラジオシティ計算のための細分割のメッシュ（以下：エレメント）の偏りが原因となり各プロセッサ間の処理時間に差が生じる。そのため、各プロセッサの処理時間を均等になるように割り当てる必要がある。このアルゴリズムを超並列計算機ＰＣ−クラスタに実装し、アルゴリズムの有効性と超並列計算上で実行する際の問題点について検討を行う。
【００１５】
１．  超並列計算機ＰＣ−クラスタ
並列計算機では、ＣＰＵとメモリの位置関係によって、共有メモリ型と分散メモリ型に大別される。  共有メモリ型（図１）では、１つのメモリを中心として複数のプロセッサがこれにつながっている。  この型の利点は、プログラミング時にデータ分割を考慮に入れる必要がないため、自動並列化を容易に行うことができる点である。さらに、メモリ間通信が必要ないため、プロセッサ数が少ない場合は性能が高まるのも利点である。しかし、プロセッサ数が多くなると、他タスク・他ジョブとのメモリアクセス競合により通信が混み合い、性能が低下してしまうという欠点もある。
【００１６】
分散メモリ型（図２）では、１つのメモリと１つのプロセッサを１つの節（ノード）として、このノードを相互結合網で複数接続している。  この型の利点は、他タスク・他ジョブとのメモリアクセス競合により通信が混み合うことがないため、全体的に性能が高まる点である。しかし、複数あるメモリの管理が難しい問題もある。
【００１７】
ラジオシティ法の並列処理を行うために図３のような超並列計算機ＰＣ−クラスタに実装した。また，並列化ライブラリとしてＭＰＩＣＨを用いた。実装した超並列計算機ＰＣ−クラスタシステムの仕様を表１に示す。
【００１８】
【表１】
0004122379.tif 000002
【００１９】
２．  面分配による並列処理
本発明ではパッチを分割し、それを各ノードに分散して並列化する手法を考案した。この手法ではデータ管理を行うホストとラジオシティ計算を行うノードによって並列に処理を行う。
【００２０】
まず、ホストはシーンを構成している物体モデルの入力データを読み込みそれをパッチとしての部分領域に分割し、それによって出来た各部分領域のデータを作る。そして各部分領域のラジオシティ計算する担当ノードを決める。次に、各部分領域のラジオシティ計算に必要なデータを作成しそしてラジオシティ計算用データをそれぞれの決められたノードに送信する。データを送信した後はラジオシティ計算結果が戻って来るのを待つ。そしてすべての部分領域のラジオシティ計算結果を受信した後、ラジオシティの値を更新して、ラジオシティの値が収束しているかどうかを判定する。収束していれば計算は終了、していなければ各部分領域のラジオシティ計算を作成するところに戻り同じ計算を行う。
【００２１】
一方、部分領域のラジオシティ計算を担当する各ノードはラジオシティ計算用データを受信して計算を行い、計算終了後、計算結果をホストとほかのノードに送信する。これを収束するまで繰り返し行う。  ラジオシティの処理には計算効率のよい漸進法を用いる。
【００２２】
２．１  各プロセッサへのデータ配置処理
シーンデータの配置では、ポリゴンデータのコピーを全ノードに持たせ、パッチデータを各ノードに面積の均等化に分散させる。エレメントデータは、それを含むパッチデータが置かれるプロセッサが保持する。この方法では、全プロセッサがシーンへの描画に必要なポリゴンデータを保持するため、並列フォームファクタ計算の際に座標のデータをノード間で転送する必要なない。
【００２３】
さらに、パッチデータとエレメントデータを各ノードに分散して配置し、各ノードは分散されたパッチ内の最大ラジオシティ値を持つパッチの検索や各エレメントのラジオシティ値の更新を、保持するノードに分散して行わせることで通信時間とメモリの節約できる。
【００２４】
２．２  分散パッチの面積均等化
シーン中の形状モデルの表面を四角形と三角形のパッチとして定義し、このパッチを各ノードに割り当てる時、各々ノードのパッチの総面積が均等になるように各パッチを分散する。例えば、図４のようなシーンのパッチデータをノード数が３台で並列化する場合のプロセッサへの割り当て方法を考える。ただし、
（１）  パッチＡからＫまで順に分散させることにする。
（２）  この処理は全てホストプロセッサのみで処理を行う。
【００２５】
ステップ１．  図５のように最初はデータ配列の順番にパッチを１つずつ各ノードへ割り当てる。
ステップ２．  次は各ノードに割り当てられたパッチの総面積の小さいものから次のパッチを割り当てていく（図６参照）。
以上処理を繰り返すと、大まかに図７の様な結果となるとする。
【００２６】
この時点でどのパッチをどのノードに分散計算処理させるかが決定されるのでパッチの情報を保持するパッチデータの構造体に表２のように反映する。
【００２７】
【表２】
0004122379.tif 000003
【００２８】
ここまでの処理が終わったら「data.rad」としてその他の全ての情報を含めてファイルに保持する。この「data.rad」ファイルをホストプロセッサから全てのノードプロセッサにブロードキャストする（図８参照）。以上から、各ノードは担当させたパッチのみについてラジオシティの計算処理を行えばよい。
【００２９】
２．３  並列フォームファクタ計算
まず、最初はホストから最大の未放射エネルギーを持つパッチ、すなわち光源パッチ（以下、Shoot  Patch）について各ノードにShoot  Patchの情報をブロードキャストする。次に各ノードは受けとったShoot  Patchの情報を基に担当のパッチのみフォームファクタ計算を行う。
【００３０】
フォームファクタ計算処理後、各ノードで担当したパッチが保持しているエネルギーを求める。各ノードから「担当のパッチの総エネルギー：Ｅｎ」と「担当のパッチの最大エネルギー：Ｅｍａｘｎ」をホストに送信する。ホストは受けとったＥｎを全て加算する事で「総エネルギー：Ｅｔｏｔａｌ」を求める（数１の式）。
【００３１】
【数１】
Ｅｔｏｔａｌ＝Ｅ１＋Ｅ２＋…＋Ｅｎ
【００３２】
ホストはＥｔｏｔａｌからどれだけエネルギーが減衰したかがわかる。また、Ｅｍａｘｎを比較することにより最大未放射エネルギー値と次回のShoot  Patchを担当させるかのノードのＩＤを取得する。例（図９）としてＥｍａｘ３＜Ｅｍａｘ１＜Ｅｍａｘ２となると、ノード２が次回のShoot  Patchを担当することになる。
【００３３】
次にShoot  Patchを担当しているノードはShoot  Patchの情報を各ノードに送信する。Shoot  Patchを担当していないノードはShoot  Patchの情報を受信する。この作業を未放射エネルギーが閾値以下になるまで繰り返す。その結果得られたラジオシティ値をホストプロセッサに送信して、ホストプロセッサは各ノードプロセッサから送信されてきたデータをレンダリングし結果を表示させる。
【００３４】
【実施例】
本実験ではCornelBox、TestModel01、TestModel02の３種類のデータを用いて、考案したラジオシティ法の並列処理の評価を行う。CornelBoxの場合、シーンデータが非常に単純なのである領域からラジオシティ処理時間よりもノード数が増えたために必要になる部分フォームファクタ送信時間の負荷のほうが大きくなってきて、ノード数が８台以上になると、全体の処理時間が遅くなっている（図１０参照）。
【００３５】
図１１と図１２より、シーンデータが複雑になるほど多くの放射回数が必要となるので、通信時間が占める割合が少ないため、ノード数にしたがって速度向上がよくなっていると考えられる。しかし、ノードが増えても線形的に、速度向上が見られないことがわかる。
【００３６】
図１３は全ノードの中の最短の処理時間Ｔminを、最長の処理時間Ｔmaxをとしたときの負荷均衡度を示している。負荷均衡が完全にとれていると１となり、不均衡になるにつれて値が小さくなる。本発明で用いた方法は、形状面（パッチ）を各ノードに分散させておき、各ノードが自分が担当する部分についてラジオシティ計算処理を行う。この際に、パッチの場所によって、細分化メッシュ（エレメント）の数に大きい偏りがあるため、図１３のように各ノードごとの処理時間が不均衡になる。この問題を解決するために、本発明では、単純４分木分割で初期パッチを負荷分散に最適な大きさまで分割してから、ラジオシティの並列処理を行ってみた。図１４はその結果を示す。
【００３７】
形状面（パッチ）の面積を基準とする本手法で並列処理した結果、１６台で約８．５倍の速度向上を得られた。しかし、負荷分散の問題によってノード数が増えても線形的な速度向上が得られなかった。
【００３８】
以上の結果から、ラジオシティ法の並列計算をするために、パッチの面積を基準とし、面積が均等に分散する手法を用いることにより、通常のラジオシティ計算における逐次計算より、約８．５の速度向上が得られることがわかった。しかし、負荷分散をうまく均衡にすることができなかったことで線形的な高速化は得られなかった。
【００３９】
以上、本発明の実施の形態について詳細に説明したが、本発明は、上記実施の形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改変が可能である。
【００４０】
【発明の効果】
本発明は、ラジオシティ法の並列計算をするために、パッチの面積を基準とし、面積が均等に分散する手法を用いているので、効率の良い負荷分散を実現することができ、従来の方法に比して高速処理が可能となるという効果がある。
【図面の簡単な説明】
【図１】  共有メモリ型並列計算機の概略構成図である。
【図２】  分散メモリ型並列計算機の概略構成図である。
【図３】  実装した超並列計算機ＰＣ−クラスタシステムを示す図である。
【図４】  形状モデルの一例を示す図である。
【図５】  最初の各パッチの各ノードへの割り当て方法を示す概略構成図である。
【図６】  ２回目以降の各パッチの各ノードへの割り当て方法を示す概略構成図である。
【図７】  各パッチの各ノードへの割り当て結果を示す概略構成図である。
【図８】  保持する情報をブロードキャストする方法を示すブロック図である。
【図９】  ３台のノードによる並列処理の例を示すブロック図である。
【図１０】  Cornel  Boxの実験結果を示す図である。
【図１１】  Test  Model  01の実験結果を示す図である。
【図１２】  Test  Model  02の実験結果を示す図である。
【図１３】  ノード数による負荷均衡の評価を示す図である。
【図１４】  単純４分木追加による負荷分散の結果を示す図である。
【図１】
0004122379.tif 000004
【図２】
0004122379.tif 000005
【図３】
0004122379.tif 000006
【図４】
0004122379.tif 000007
【図５】
0004122379.tif 000008
【図６】
0004122379.tif 000009
【図７】
0004122379.tif 000010
【図８】
0004122379.tif 000011
【図９】
0004122379.tif 000012
【図１０】
0004122379.tif 000013
【図１１】
0004122379.tif 000014
【図１２】
0004122379.tif 000015
【図１３】
0004122379.tif 000016
【図１４】
0004122379.tif 000017