JP2008262493A - 情報処理装置および情報処理方法、プログラム、並びに、記録媒体 - Google Patents
情報処理装置および情報処理方法、プログラム、並びに、記録媒体 Download PDFInfo
- Publication number
- JP2008262493A JP2008262493A JP2007106252A JP2007106252A JP2008262493A JP 2008262493 A JP2008262493 A JP 2008262493A JP 2007106252 A JP2007106252 A JP 2007106252A JP 2007106252 A JP2007106252 A JP 2007106252A JP 2008262493 A JP2008262493 A JP 2008262493A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- information
- space
- determination
- storage
- 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.)
- Withdrawn
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
【課題】データの転送の重複を避ける。
【解決手段】ある平面で光線αβγを用いて交差判定を行う場合、従来における場合では、光線αと交差している3つのボクセル、光線βと交差している3つのボクセル、光線γと交差している3つのボクセルの9個のボクセルの情報が、記憶容量は大きいがデータ転送速度がローカルストレージと比較して劣る主記憶から転送される。すなわち、従来における場合では、図中A,B,Cで示される3つのボクセルが重複して転送処理される。これに対して、高速にアクセス可能であるが記憶容量の少ないローカルストレージに、発生された所定数M本の光線と交差したボクセルはいずれのボクセルであるかを示す情報を記録し、3本の光線α、β、γのいずれかと交差している合計5つのボクセルの情報がデータ転送速度が劣る主記憶から転送されるので、データ転送回数を減少させることができる。本発明は、画像処理装置に適用できる。
【選択図】図12
【解決手段】ある平面で光線αβγを用いて交差判定を行う場合、従来における場合では、光線αと交差している3つのボクセル、光線βと交差している3つのボクセル、光線γと交差している3つのボクセルの9個のボクセルの情報が、記憶容量は大きいがデータ転送速度がローカルストレージと比較して劣る主記憶から転送される。すなわち、従来における場合では、図中A,B,Cで示される3つのボクセルが重複して転送処理される。これに対して、高速にアクセス可能であるが記憶容量の少ないローカルストレージに、発生された所定数M本の光線と交差したボクセルはいずれのボクセルであるかを示す情報を記録し、3本の光線α、β、γのいずれかと交差している合計5つのボクセルの情報がデータ転送速度が劣る主記憶から転送されるので、データ転送回数を減少させることができる。本発明は、画像処理装置に適用できる。
【選択図】図12
Description
本発明は、情報処理装置および情報処理方法、プログラム、並びに、記録媒体に関し、特に、空間分割法を利用した交差判定を行う場合に用いて好適な、情報処理装置および情報処理方法、プログラム、並びに、記録媒体に関する。
光の反射や屈折、影などを考慮したリアルな三次元画像を生成するために、レイトレーシング法(光線追跡法または視線探索法とも称される)では、仮想的なスクリーンの各画素に光線を延ばし、一番手前で交差する物体表面の幾何学形状、物理特性により新たな光線を算出し、次々と光線経路を辿ることで前記スクリーンの各画素の色を決定するようになされている。
このとき3次元空間の物体(モデル)の形状はポリゴンと称される多角形面(例えば、三角形)の貼り合わせによって近似される。そして、仮想光線とモデルが交差するか否か、すなわち、仮想光線は、ポリゴンのうちのいずれかと交差するか否かが判定される。しかし、光線とポリゴンとの交差判定には時間がかかり、ポリゴンの数だけ交差判定を実行すると、この交差判定がレイトレーシング処理の大半を占める。そのため、物体の形状が複雑化したり、ポリゴンの数が多くなると処理速度が著しく低下する。
そこで、交差判定の処理速度を上げるため、無駄な交差判定を減少させる空間分割法が知られている。空間分割法は、ポリゴンによって近似された物体が存在する3次元空間を立体要素に分割する方法である。従来の空間分割法としては、例えば、ボクセル分割法、オクトリー分割法などが知られている。
ボクセル分割法は、3次元空間全体をボクセルと呼ばれる立体要素に等分割する方法である。ボクセル分割法では、3次元空間全体が等分割され、3DDDA(three-dimensional digital differential analyzer)法と呼ばれるアルゴリズムによって光線とポリゴンとの交差判定の処理速度を上げることが可能となる。
3DDDA法は、所定の光線が通過した、換言すれば、所定の光線と交差するボクセルを検出するためのアルゴリズムである。
ボクセル分割法を適用した場合の処理について、図1を参照して説明する。ここでは、平面的に図示して説明するが、ボクセル分割法は、3次元空間全体をボクセルと呼ばれる立体要素に等分割するものであり、図中では、3次元空間のうちのある平面を例として説明している。
ボクセル分割法では、まず、立体要素と光線との交差判定が実行される。例えば、図1に示されるように、光線Aと光線Bのそれぞれにおいて、光線が通過するボクセルが判定される。図中、太枠で示されるボクセルが、光線Aまたは光線Bと交差するボクセルである。次に、交差していると判定された立体要素内に含まれるポリゴンと光線との交差判定が行われる。図中、ハッチのかかっている部分が、ポリゴンを含むボクセルである。図1に示される光線Aと光線Bとでは、それぞれ異なるボクセルに関して交差判定が行われる。
図1を用いて説明したように、ボクセル分割法を用いることにより、ポリゴンとの交差判定の処理を最小限に止め、高速処理を実現することができる。
従来、例えば、一般的なパーソナルコンピュータなど、CPU等の内部メモリ(キャッシュメモリ等)を有する情報処理部と主記憶部とを有する装置において、ポリゴンにより構成される3次元空間中のモデルに影を付ける処理が実行される場合、モデル、すなわち、それぞれのポリゴンに関する情報は、主記憶装置に保存された状態において、情報処理部で、その3次元空間がボクセルに分割され、仮想的な光線が発生されて、発生された光線に対して3DDDAが実行されて、光線と交差するボクセルが抽出される。そして、光線と交差するボクセルに含まれるポリゴンの情報が情報処理部から読み出されて、光線とポリゴンとの交差判定が行われるようになされていた。
図2のフローチャートを参照して、従来における影生成処理について説明する。
ステップS1において、処理を実行する装置は、ポリゴンにより構成された3次元画像データを取得し、主記憶部に記憶する。
ステップS2において、情報処理部は、処理を実行する3次元空間を分割し、ボクセルを生成する。
ステップS3において、情報処理部は、影を生成するために必要な仮想的な光線を1本(例えば、図1における光線Aまたは光線B)発生させる。
ステップS4において、情報処理部は、発生させた光線に対して3DDDAを実行し、発生された光線と交差するボクセルを求める。
ステップS5において、情報処理部は、3DDDAで得られたボクセルのうちの1つを抽出する。
ステップS6において、情報処理部は、抽出されたボクセルのデータ(ボクセルに含まれるポリゴンのデータ)を主記憶部から転送して取得する。
ステップS7において、情報処理部は、転送されたボクセルに含まれるポリゴンと光線との交差判定を実行する。
ステップS8において、情報処理部は、その光線が、転送されたボクセルに含まれるいずれかのポリゴンと交差しているか否かを判断する。
ステップS8において、その光線がいずれかのポリゴンと交差していると判断された場合、ステップS9において、情報処理部は、光線とポリゴンとの交差している点の輝度計算を実行する。
ステップS8において、その光線がいずれかのポリゴンと交差していないと判断された場合、または、ステップS9の処理の終了後、ステップS10において、情報処理部は、3DDDAで得られた全てのボクセルの処理が終了したか否かを判断する。ステップS10において、全てのボクセルの処理が終了していないと判断された場合、処理は、ステップS5に戻り、それ以降の処理が繰り返される。
具体的には、例えば、ステップS3において発生された光線が図1の光線Aであるとき、ステップS3乃至ステップS10の処理が、図1に示されたボクセルのうちの7ボクセル分繰り返されて、ステップS3において発生された光線が図1の光線Bであるとき、ステップS3乃至ステップS10の処理が、図1に示されたボクセルのうちの15ボクセル分繰り返される。
ステップS11において、情報処理部は、交差判定処理が必要な全ての光線の処理が終了したか否かを判断する。ステップS11において、全ての光線の処理が終了していないと判断された場合、処理は、ステップS3に戻り、それ以降の処理が繰り返される。
ステップS11において、全ての光線の処理が終了したと判断された場合、ステップS12において、情報処理部は、全ての光線に関する輝度計算結果に基づいて、影の濃度を算出して出力し、処理が終了される。
このような処理により、従来、ボクセル分割法、3DDDA法を用いて、交差判定が実行され、3次元立体画像内のモデルの影が描画されていた。
そして、アンビエントオクルージョン法とは、環境光による自然な影の効果を3次元画像に付与する技法で、影の濃さを求めたい物体表面のある点において、その点を始点とする大量の仮想光線を飛ばし、他の物体と交差した率をもって影の濃さとする技法である。物体と光線の交差判定が出来ればよいため、上述したボクセル分割法などの、レイトレーシング法における高速化技法が使える。
更に、従来、空間分割の方法を改良したり、必要な部分だけ空間分割するための技術が存在する(例えば、特許文献1および特許文献2参照)。
また、レイトレーシング法により直接画像を生成する分野では、周囲の4本の光線が辿った反射経路を履歴として記録しておき、中央の光線に関する計算を不要にすることができる技術(例えば、特許文献3参照)が存在する。
近年の計算機システムは、メモリ転送速度に対してプロセッサの計算速度が相対的にどんどん速くなってきており、一連の処理を高速化するにあたって、演算速度ではなくメモリ転送にかかる時間がボトルネックになりがちである。
従来のように、光線1本について3DDDAによりその光線が通るボクセルを求め、それらのボクセルに含まれるポリゴンのデータを主記憶部からプロセッサ(図2のフローチャートの説明における情報処理部の処理を実行するプロセッサ)に読み込み、ボクセルに含まれるポリゴンと光線の交差判定処理をすると、例えば、図3に示されるように、複数の光線が同一のボクセルを通過している状態では、複数の光線に対するそれぞれの処理において同一のボクセルを何回も転送することとなってしまい、非効率である。このような処理においては、主記憶部からボクセルデータを読み込む際の遅延が処理時間の大半を占めることさえありうる。
また、例えば、画像データ自体が大きかったり、物体の形状が複雑化したり、ポリゴンの数が多くなって、保持しておくべきポリゴンデータが巨大になると、装置内部の主記憶部には収まりきらず、外部記憶装置から必要なデータだけを主記憶部に読み込んで、さらに主記憶部からプロセッサへ転送して処理をするという方法を取らざるを得なくなる。このような処理が行われる場合、外部記憶装置から主記憶部へのデータ転送にかかってしまう時間は主記憶部からプロセッサへのデータ転送にかかる時間の比ではないため、複数の光線の処理において同じボクセルのデータを何回も転送するようになされていた場合、転送時間の遅延問題がより顕著に現れる。
上述した特許文献1および特許文献2においても、主記憶部や外部記憶装置からポリゴンデータを読み込む際の遅延問題を解決する技術は存在しなかった。
また、上述した特許文献3に記載された技術は、整然と等間隔で並んだ画素に対して有効であり、アンビエントオクルージョン法には用いることができなかった。
本発明はこのような状況に鑑みてなされたものであり、空間分割法を利用した交差判定を行う場合に、処理の精度を落とすことなく、分割された空間に関する情報の転送回数を減少させることができるようにするものである。
本発明の一側面の情報処理装置は、画像に対して空間分割法を利用した交差判定を実行する情報処理装置であって、前記画像を記憶する第1の記憶手段に記憶されている前記画像に対して空間分割を行い、所定の単位空間を生成する空間分割手段と、交差判定を実行する対象物と前記空間分割手段により生成された前記単位空間とが交差していることを判定する第1の判定手段と、前記第1の判定手段による判定結果に基づいて、前記対象物に関して、前記単位空間と交差している前記対象物はいずれであるかを示す交差情報を生成し、前記第1の記憶手段よりもデータ転送速度の速い第2の記憶手段に記憶させる生成手段と、前記生成手段により生成され前記第2の記憶手段に記憶された前記交差情報に基づいて、前記対象物のうちのいずれかと交差している前記単位空間の空間情報を、前記第1の記憶手段から読み出す読み出し制御手段と、前記読み出し制御手段により読み出された前記単位空間の前記空間情報を用いて交差判定を実行する第2の判定手段とを備える。
前記第1の記憶手段を更に備えることができる。
前記第2の記憶手段は、前記第1の記憶手段よりも記憶容量が少ないものとすることができる。
前記第1の判定手段、前記生成手段、前記読み出し制御手段、および、前記第2の判定手段の処理は、複数の演算処理部により分担して実行可能であるものとすることができる。
前記空間分割手段の処理は、複数の前記演算処理部とは異なる主演算処理部により実行されるものとすることができ、前記主演算処理部には、複数の前記演算処理部による前記第1の判定手段、前記生成手段、前記読み出し制御手段、および、前記第2の判定手段の処理の分担を制御させるようにすることができる。
前記第2の記憶手段は、複数の前記演算処理部のそれぞれに設けられているものとすることができる。
前記対象物をそれぞれ区別する区別情報を付与する区別情報付与手段を更に備えさせるようにすることができ、前記生成手段には、前記単位空間のそれぞれが、前記区別情報付与手段により付与された前記区別情報により区別可能な前記対象物のそれぞれと交差するかを示すフラグ情報により構成される前記交差情報を生成させるようにすることができる。
本発明の一側面の情報処理方法は、空間分割法を利用した交差判定を実行して画像を処理する情報処理装置の情報処理方法であって、前記画像を記憶する第1の記憶部に記憶されている前記画像に対して空間分割を行い、交差判定を実行する対象物と、生成された前記単位空間とが交差していることを判定し、判定結果に基づいて、前記対象物に関して、前記単位空間と交差している前記対象物はいずれであるかを示す交差情報を生成して、前記第1の記憶部よりもデータ転送速度の速い第2の記憶部に記録し、前記第2の記憶部に記録された前記交差情報に基づいて、前記対象物のうちのいずれかと交差している前記単位空間の空間情報を、前記第1の記憶部から読み出し、前記第1の記憶部から読み出された前記単位空間の前記空間情報を用いて交差判定を実行するステップを含む。
本発明の一側面のプログラムは、空間分割法を利用した交差判定をコンピュータに実行させるためのプログラムであって、前記画像を記憶する第1の記憶部に記憶されている前記画像に対して空間分割を行い、交差判定を実行する対象物と、生成された前記単位空間とが交差していることを判定し、判定結果に基づいて、前記対象物に関して、前記単位空間と交差している前記対象物はいずれであるかを示す交差情報を生成して、前記第1の記憶部よりもデータ転送速度の速い第2の記憶部への記録を制御し、前記第2の記憶部に記録された前記交差情報に基づいて、前記対象物のうちのいずれかと交差している前記単位空間の空間情報を、前記第1の記憶部から読み出し、前記第1の記憶部から読み出された前記単位空間の前記空間情報を用いて交差判定を実行するステップを含む処理をコンピュータに実行させる
本発明の一側面においては、第1の記憶部に記憶されている画像に対して空間分割が行われ、交差判定を実行する対象物と生成された単位空間とが交差していることが判定され、判定結果に基づいて、対象物に関して、単位空間と交差している対象物はいずれであるかを示す交差情報が生成されて、第1の記憶部よりもデータ転送速度の速い第2の記憶部へ記録され、第2の記憶部に記録された交差情報に基づいて、対象物のうちのいずれかと交差している単位空間の空間情報が、第1の記憶部から読み出され、第1の記憶部から読み出された単位空間の空間情報を用いて交差判定が実行される。
ネットワークとは、少なくとも2つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、1つの装置を構成している内部ブロックどうしであっても良い。
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
情報処理装置は、独立した装置であっても良いし、記録再生装置や画像処理装置の情報処理を行うブロックであっても良い。
以上のように、本発明の一側面によれば、交差判定を行うことができ、特に、対象物に関して、単位空間と交差している対象物はいずれであるかを示す交差情報を生成し、その情報を基に、単位空間の空間情報を読みだすようになされているので、対象物のいずれかと交差している単位空間の情報を重複して読み出すことを防ぐことができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の情報処理装置は、画像に対して空間分割法を利用した交差判定を実行する情報処理装置(例えば、図4の画像処理装置11または図8の画像処理装置111)であって、前記画像を記憶する第1の記憶手段(例えば、図4の記憶部38、ドライブ40に装着されているリムーバブルメディア51、または、通信部39を介して通信可能な他の装置、もしくは、図8のXDR−RAM143、HDD145、ドライブ113に装着されているリムーバブルメディア117、または、記憶装置112)に記憶されている前記画像に対して空間分割を行い、所定の単位空間(例えば、ボクセル)を生成する空間分割手段(例えば、図6または図9のボクセル生成処理部75)と、交差判定を実行する対象物(例えば、光線)と前記空間分割手段により生成された前記単位空間とが交差していることを判定する第1の判定手段(例えば、図6または図9の3DDDA演算部76)と、前記第1の判定手段による判定結果に基づいて、前記対象物に関して、前記単位空間と交差している前記対象物はいずれであるかを示す交差情報(例えば、図7を用いて説明した光線記録データ)を生成し、前記第1の記憶手段よりもデータ転送速度の速い第2の記憶手段(例えば、図4のローカルストレージ61または図8のローカルストレージ191)に記憶させる生成手段(例えば、図6または図9のボクセル通過光線情報記録部77)と、前記生成手段により生成され前記第2の記憶手段に記憶された前記交差情報に基づいて、前記対象物のうちのいずれかと交差している前記単位空間の空間情報(例えば、対応するボクセルに含まれるポリゴンの情報)を、前記第1の記憶手段から読み出す読み出し制御手段(例えば、図6または図9のボクセル取得制御部78)と、前記読み出し制御手段により読み出された前記単位空間の前記空間情報を用いて交差判定を実行する第2の判定手段(例えば、図6または図9の交差判定処理部79)とを備える。
前記第1の記憶手段を更に備えさせるようにすることができる。
前記第2の記憶手段は、前記第1の記憶手段よりも記憶容量が少ないものとすることができる。
前記第1の判定手段、前記生成手段、前記読み出し制御手段、および、前記第2の判定手段の処理は、複数の演算処理部(例えば、図8のサブCPUコア182)により分担して実行可能であるものとすることができる。
前記空間分割手段の処理は、複数の前記演算処理部とは異なる主演算処理部(例えば、図8のメインCPUコア181)により実行されるものとすることができ、前記主演算処理部は、複数の前記演算処理部による前記第1の判定手段、前記生成手段、前記読み出し制御手段、および、前記第2の判定手段の処理の分担を制御することができる。
前記第2の記憶手段は、複数の前記演算処理部のそれぞれに設けられているものとすることができる。
前記対象物をそれぞれ区別する区別情報(例えば、光線ID)を付与する区別情報付与手段(例えば、図6または図9の光線発生数係数および光線ID発行部74)を更に備えることができ、前記生成手段は、前記単位空間のそれぞれが、前記区別情報付与手段により付与された前記区別情報により区別可能な前記対象物のそれぞれと交差するかを示すフラグ情報により構成される前記交差情報(例えば、図7を用いて説明した光線記録データ)を生成することができる。
本発明の一側面の情報処理方法は、空間分割法を利用した交差判定を実行して画像を処理する情報処理装置(例えば、図4の画像処理装置11または図8の画像処理装置111)の情報処理方法であって、前記画像を記憶する第1の記憶部(例えば、図4の記憶部38、ドライブ40に装着されているリムーバブルメディア51、または、通信部39を介して通信可能な他の装置、もしくは、図8のXDR−RAM143、HDD145、ドライブ113に装着されているリムーバブルメディア117、または、記憶装置112)に記憶されている前記画像に対して空間分割を行い(例えば、図10のステップS42の処理)、交差判定を実行する対象物(例えば、光線)と、生成された前記単位空間とが交差していることを判定し(例えば、図10のステップS45の処理)、判定結果に基づいて、前記対象物に関して、前記単位空間と交差している前記対象物はいずれであるかを示す交差情報(例えば、図7を用いて説明した光線記録データ)を生成して、前記第1の記憶部よりもデータ転送速度の速い第2の記憶部(例えば、図4のローカルストレージ61または図8のローカルストレージ191)に記録し(例えば、図10のステップS47の処理)、前記第2の記憶部に記録された前記交差情報に基づいて、前記対象物のうちのいずれかと交差している前記単位空間の空間情報(例えば、対応するボクセルに含まれるポリゴンの情報)を、前記第1の記憶部から読み出し(例えば、図10のステップS51の処理)、前記第1の記憶部から読み出された前記単位空間の前記空間情報を用いて交差判定を実行する(例えば、図11のステップS55の処理)ステップを含む。
本発明の一側面のプログラムは、空間分割法を利用した交差判定をコンピュータに実行させるためのプログラムであって、前記画像を記憶する第1の記憶部(例えば、図4の記憶部38、ドライブ40に装着されているリムーバブルメディア51、または、通信部39を介して通信可能な他の装置、もしくは、図8のXDR−RAM143、HDD145、ドライブ113に装着されているリムーバブルメディア117、または、記憶装置112)に記憶されている前記画像に対して空間分割を行い(例えば、図10のステップS42の処理)、交差判定を実行する対象物(例えば、光線)と、生成された前記単位空間とが交差していることを判定し(例えば、図10のステップS45の処理)、判定結果に基づいて、前記対象物に関して、前記単位空間と交差している前記対象物はいずれであるかを示す交差情報(例えば、図7を用いて説明した光線記録データ)を生成して、前記第1の記憶部よりもデータ転送速度の速い第2の記憶部(例えば、図4のローカルストレージ61または図8のローカルストレージ191)への記録を制御し(例えば、図10のステップS47の処理)、前記第2の記憶部に記録された前記交差情報に基づいて、前記対象物のうちのいずれかと交差している前記単位空間の空間情報(例えば、対応するボクセルに含まれるポリゴンの情報)を、前記第1の記憶部から読み出し(例えば、図10のステップS51の処理)、前記第1の記憶部から読み出された前記単位空間の前記空間情報を用いて交差判定を実行する(例えば、図11のステップS55の処理)ステップを含む処理をコンピュータに実行させる。
以下、図を参照して、本発明の実施の形態について説明する。
図4は、画像処理装置11の構成を示すブロック図である。
CPU(Central Processing Unit)31は、ROM(Read Only Memory)32に記憶されているプログラム、または、記憶部38からRAM(Random Access Memory)33にロードされたプログラムに従って各種の処理を実行する。RAM33にはまた、CPU31が各種の処理を実行する上において必要なデータなどが適宜記憶される。
CPU31の内部には、ローカルストレージ61が備えられている。ローカルストレージ61は、後述する記録部38と比較して、転送速度が高速であるが、記憶容量が比較的少ないメモリである(例えば、容量が256KB程度であり、データ転送速度が51.2GB/s程度であるものとする)。
CPU31、ROM32、およびRAM33は、内部バス34を介して相互に接続されている。この内部バス34にはまた、入出力インターフェース35も接続されている。
入出力インターフェース35には、キーボード、マウスなどよりなる入力部36、CRT,LCDなどよりなるディスプレイ、スピーカなどよりなる出力部37、ハードディスクなどより構成される記憶部38、並びに、モデム、ターミナルアダプタなどより構成される通信部39が接続されている。
記憶部38を構成するハードディスクなどの記録媒体は、上述したローカルストレージ61と比較して、データ記憶容量は大きいが、通信速度が比較的遅い(例えば、容量が256MB程度であり、データ転送速度が25.6GB/s程度であるものとする)。
通信部39は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。また、通信部39は、アンテナなどを有し、放送信号を受信することも可能であるものとしてもよい。
入出力インターフェース35にはまた、必要に応じてドライブ40が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア51が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部38にインストールされる。また、リムーバブルメディア51に記録されている情報がCPU31の処理に用いられる場合もある。
次に、画像処理装置11の動作について説明する。
記憶部38を構成するハードディスクなどの記録媒体には、影の描画処理を施したい3次元画像データを構成するポリゴンデータが記録されている。
CPU31は、ユーザの操作入力、または、設定に基づいて、影の描画処理を施したい3次元画像データにおける3次元空間をボクセルに分割する。CPU31により、対応する3次元画像データがボクセルに分割された場合、ローカルストレージ61には、空間の分割数、ボクセルの絶対座標、ボクセルの幅・高さ・奥行き(例えば、対応する空間がx y z 軸それぞれ5分割されたことを示す情報)などが保存される。記憶部38を構成するハードディスクなどの記録媒体に記憶されているこれらのポリゴンデータは、分割されたいずれのボクセルに属するかによって分けることが可能である。
そして、CPU31は、3DDDAを実行して、光線と交差するボクセルを抽出する処理を実行する。CPU31は、従来における場合のように、1本ずつの光線を発生させて、その光線と交差するボクセルを求めて、そのボクセルのデータをその都度転送させるのではなく、複数の光線を順次発生させ、それぞれの光線に対して3DDDAを実行して、それらの光線と交差したボクセルはいずれのボクセルであるかをローカルストレージ61に記録しておき、所定数の光線についての処理が終了した後、所定数の光線のうちのいずれかと交差したボクセルに含まれるポリゴンデータの転送処理を実行することにより、例えば、図5に示される、複数の光線が交差しているボクセル(図中太線で示されるボクセル)のデータの転送回数を、従来においてはボクセルに交差している光線の回数だけ転送されていたものを、重複を避けて1回だけ転送されるようにし、その回数を削減することができるようになされている。
また、順次発生される光線の数の上限は、ローカルストレージ61の記録容量と、ローカルストレージ61に記録される情報の形式により決められる。すなわち、ローカルストレージ61の容量があまり大きくなく、発生された所定数の光線と交差したボクセルはいずれのボクセルであるかを示す情報を記録するための領域を多く取ることができない場合、1度に連続して発生可能な光線の上限数は小さくなる。しかしながら、この上限数は、描画される影の精度にはかかわらない。なぜなら、1陰影計算点につき発生される光線数を多くして、描画される影の精度を向上させたい場合は、処理を繰り返せばよいのである。例えば、1陰影計算点につき500光線を仮想的に発生させて、交差判定を実施し、輝度計算を行うようになされている場合に、1度に連続して発生される光線の数の上限が50本であり、50本のそれぞれの光線に対して3DDDAを実行して、それらの光線と交差したボクセルはいずれのボクセルであるかをローカルストレージ61に記録するようになされている場合、この記録処理と、記録された情報に基づく複数のボクセルに関するデータの転送処理は、1陰影計算点につき10回繰り返される。
したがって、例えば、50光線など、影を描画するための仮想的な所定の数の光線データに関する情報も、ローカルストレージ61に保存される。
そして、CPU31は、ローカルストレージ61に記録された情報に基づいて、所定数、例えば、M本の光線のうちのいずれかが交差したボクセルについて、そのボクセルに含まれるポリゴンの情報を記憶部38から読み出して、入出力インターフェース35および内部バス34を介して取得する。
そして、CPU31は、所定数M本の光線のうちのいずれかが交差したボクセルについて、そのボクセルに含まれるポリゴンのうちのいずれかが、そのボクセルと交差した光線のうちのいずれかと交差するかを交差判定し、交差すると判断された場合、その交点の輝度を計算する。
すなわち、複数の光線が同一ボクセルを通過するとき、従来の手法においては、そのボクセルに含まれるポリゴンデータの転送が複数回、すなわち、そのボクセルを通過する光線の数だけ実行されていたが、この方法を用いることにより、所定数の光線のうち重複して光線が通過しているボクセルに含まれるポリゴンデータの転送を1回だけにすることができる。
換言すれば、画像処理装置11においては、高速にアクセス可能であるが記憶容量の少ないローカルストレージ61に、発生された所定数M本の光線と交差したボクセルはいずれのボクセルであるかを示す情報を記録するようにすることにより、所定数M本の光線との3DDDA処理の結果得られるボクセルに関するデータの転送は重複することがなくなるので、記憶容量は大きいが、データ転送速度がローカルストレージ61と比較して劣る記憶部38(例えば、ハードディスクなど)、または、外部の装置からのデータ転送回数を減少させることができる。
このようにすることにより、ボクセル分割法などの空間分割法を用い、交差判定を行う画像処理(ここでは、レイトレーシング法をベースとした3次元画像生成)において、記憶部38(例えば、ハードディスクなど)、または、外部の装置からの同一のボクセルに含まれるポリゴンデータの転送回数を減らすことができるため、演算処理全体にかかる時間の短縮化が図れる。
したがって、時間の短縮化により、同じ画像を同じ時間で生成するために必要な計算機の数も減り、消費電力も削減することができ、結果としてコスト削減につながる。
図6は、複数の光線をまとめて発生させ、複数光線のうちのいずれかと交差したボクセルのデータの転送処理を実行する場合のCPU31が有する機能を示す機能ブロック図である。
CPU31は、影情報算出座標制御部71、光線発生数管理部72、光線発生処理部73、光線発生数係数および光線ID発行部74、ボクセル生成処理部75、3DDDA演算部76、ボクセル通過光線情報記録部77、ボクセル取得制御部78、交差判定処理部79、輝度計算部80、影濃度計算部81、および、計算結果出力制御部82の機能を有している。
影情報算出座標制御部71は、入力部36から入力されたユーザの操作入力や、3次元画像に影を描画する処理を実行させる上位のアプリケーション(例えば、画像処理ソフトウェアや動画像処理ソフトウェアなど)からの指令に基づいて、3次元画像の影情報を算出するために、3次元画像のいずれの位置から光線を発生するかを制御して、光線発生数管理部72による光線の発生を制御するとともに、3次元画像のいずれの画素の影濃度を算出するかを制御し、計算結果出力制御部82に供給された影濃度の計算結果をまとめ、1枚の3次元画像の影情報を算出する処理を制御する。
光線発生数管理部72は、入力部36から入力されたユーザの操作入力や、3次元画像に影を描画する処理を実行させる上位のアプリケーションからの指令に基づいて、光線発生処理部73による光線の発生数を管理する。例えば、所定の座標から500本の光線の発生が必要であるとき、光線発生数管理部72は、光線発生処理部73による所定の座標からの500本の光線の発生を制御するのであるが、上述したように、ボクセルデータの転送を実行するにあたって一度に発生される光線数は、ローカルストレージ61の記憶容量などによって決められる。そこで、光線発生数管理部72は、1陰影計算点につき発生される合計の光線数と、一度に発生される光線数を管理し、光線発生処理部73を制御する。
光線発生処理部73は、光線発生数管理部72の制御に基づいて、仮想的な3次元空間内の仮想的な光線の発生処理を行う。
光線発生数係数および光線ID発行部74は、光線発生処理部73により発生される光線の数を計数するとともに、それらの光線が通過したボクセルの情報を記録しておくために、それぞれの光線を区別する光線IDを発行する。
ボクセル生成処理部75は、処理する3次元画像を所定のボクセルに分割する処理を実行する。
3DDDA演算部76は、光線発生処理部73により発生された光線と交差するボクセルを検出し、検出結果をボクセル通過光線情報記録部77に供給する。
ボクセル通過光線情報記録部77は、3DDDA演算部76から供給された、光線発生処理部73により発生された光線と交差するボクセルの検出結果に基づいて、複数(M本)の光線のいずれかが通過したボクセルと、そのボクセルを通過した光線の光線IDの情報を記録する。
ボクセル通過光線情報記録部77は、複数(M本)の光線のいずれかが通過したボクセルと、そのボクセルを通過した光線の光線IDの情報を記録することが可能であれば、いずれの形式で情報を記録しても良い。例えば、ボクセル通過光線情報記録部77は、図7に示されるように、3次元画像のそれぞれのボクセルにおいて、複数(M本)の光線のうち、そのボクセルを通過した光線の光線IDが分かるように、ボクセル数×一度に処理される光線数(M本)のフラグを用意しておき、それぞれのボクセルを通過した光線の光線IDに対応するフラグを1にセットするものとすることができる。この情報を、以下、光線記録データと称するものとする。
すなわち、光線記録データの記録のために必要なデータ容量は、「x軸方向のボクセル分割数×y軸方向のボクセル分割数×z軸方向のボクセル分割数×一度に処理する光線数」で表される。例えば、一度に処理する光線の本数が64本であり、処理を実行する3次元画像空間が5×5×5のボクセルに分割されているとき、光線記録データに必要なデータ容量は、8000bit=1000byteとなり、この値は通常物体を構成するポリゴンを表すのに必要な記憶容量に比べて十分小さく、ローカルストレージ61が他の処理に用いられる情報を記録するために必要なデータ容量を鑑みても、十分小さい値である。
ボクセル通過光線情報記録部77は、複数(M本)の光線の発生が終了した後、記録された光線記録データを、ボクセル取得制御部78および交差判定処理部79に供給する。
ボクセル取得制御部78は、例えば、図7を用いて説明したような光線記録データに基づいて、複数(M本)の光線のいずれかが通過したボクセルの情報を取得する。画像処理装置11において、ボクセルの情報が記憶部38に記憶されている場合、ボクセル取得制御部78は、光線記録データを参照して、内部バス34および入出力インターフェース35を介して、記憶部38から複数(M本)の光線のいずれかが通過したボクセルの情報を取得する。また、例えば、ボクセルの情報がドライブ40に装着されたリムーバブルメディア51や、外部の他の装置に記録されている場合、ボクセル取得制御部78は、内部バス34、入出力インターフェース35、および、ドライブ40を介してリムーバブルメディア51から、または、内部バス34、入出力インターフェース35、および、通信部39を介して、図示しない他の装置から、複数(M本)の光線のいずれかが通過したボクセルの情報を取得する。
また、ボクセル取得制御部78は、複数(M本)の光線のいずれかが通過し、かつ、ポリゴンのデータを含むボクセルの情報を取得するものとしてもよい。
交差判定処理部79は、例えば、図7を用いて説明した光線記録データに基づいて、所定のボクセルを通過した光線のそれぞれが、そのボクセルに含まれるいずれかのポリゴンと交差しているか否かの交差判定を実行し、交差判定結果を輝度計算部80に供給する。
輝度計算部80は、交差判定処理部79による交差判定結果に基づいて、光線とポリゴンとの交差している点の輝度計算を実行し、輝度計算結果を影濃度計算部81に供給する。
影濃度計算部81は、輝度計算部80から供給された光線とポリゴンとの交差している点の輝度計算に基づいて、発生される光線全体による各座標の影濃度の計算を実行する。
計算結果出力制御部82は、影情報算出座標制御部71の制御にしたがって、3次元画像のそれぞれの画素の影濃度を算出する結果に基づいて、1枚の3次元画像の影情報を算出し、出力する。
更に、上述した一連の処理は、複数のサブCPUコアを用いて並列に実行させることによっても実現可能である。この場合、例えば、図4を用いて説明した画像処理装置11は、図8に示されるような画像処理装置111を含む画像処理システムにより構成される。
図8に示すように、図4の画像処理装置11に対応する画像処理システムは、画像処理装置111、画像処理装置111とPCIバス101によって接続された、記憶装置112およびドライブ113、並びに、ユーザがこれらに対する操作入力を行うためのマウス114、キーボード115、および、操作コントローラ116から構成されている。
この画像処理システムでは、記憶装置112に取り込まれた動画または静止画に影を施す処理などをはじめとした画像処理を行うことができ、その結果得られた処理済の動画または静止画を、RAID(Redundant Arrays of Independent Disks)でなる大容量の記憶装置112に蓄積したり、ドライブ113の処理によりリムーバブルディスク117に記録し得るようになされている。また、ドライブ113に装着されたリムーバブルディスク117に記録された動画または静止画についても、記憶装置112に取り込んだり、画像処理装置111に読み込まれることが可能なようになされている。
画像処理装置111は、マイクロプロセッサ141、GPU(Graphics Processing Unit)142、XDR(Extreme Data Rate)−RAM143、サウスブリッジ144、HDD145、USBインターフェース146、および、サウンド入出力コーディック147を含んで構成されている。
画像処理装置111においては、マイクロプロセッサ141に対してGPU142、XDR−RAMは、HDD145、USBインターフェース146、および、サウンド入出力コーディック147が接続されている。このサウンド入出力コーディック147にはスピーカ121が接続されている。また、GPU142にはディスプレイ122が接続されている。
サウスブリッジ144には、PCIバス101を介して、マウス114、キーボード115、記憶装置112、ドライブ113、および、操作コントローラ116が接続されている。
マウス114およびキーボード115、並びに、操作コントローラ116は、ユーザの操作入力を受け、PCIバス101およびサウスブリッジ144を介して、ユーザの操作入力の内容を示す信号を、マイクロプロセッサ141に供給する。記憶装置112は、所定のデータを記録または再生できるようになされている。
マイクロプロセッサ141は、汎用のメインCPUコア181と、メインCPUコア181に内部バス185を介して接続された複数(この場合8個)のRISC(Reduced Instruction Set Computer)タイプの信号処理プロセッサ(以下、これをサブCPUコアと称する)182−1乃至182−8と、例えば256[MByte]の容量を持つXDR−RAM143に対するメモリコントロールを行うメモリコントローラ183と、サウスブリッジ144との間でデータの入出力を管理するI/O(In/Out)コントローラ184とが1チップに集積されたマルチコア構成を有しており、例えば、動作周波数4[GHz]を実現している。
マイクロプロセッサ141は、起動時、HDD145に格納された制御プログラムに基づき、HDD145に格納されている必要なアプリケーションプログラムを読み出してXDR−RAM143に展開し、この後このアプリケーションプログラムおよびオペレータ操作に基づいて必要な制御処理を実行する。
メインCPUコア181は、OS(Operating System)等の基本プログラムや、サブCPUコア182−1乃至182−8を含むマイクロプロセッサ141の全体の制御、および、計算処理のうちの一部を実行する。
サブCPUコア182−1乃至182−8は、それぞれ、ローカルストレージ191−1乃至191−8を有しており、メインCPUコア181の制御に基づいて、割り当てられた画像処理に関する計算処理を実行する。ローカルストレージ191−1乃至191−8は、後述するXDR−RAM143やHDD145と比較して、転送速度が高速であるが、記憶容量が少ないメモリである(例えば、容量が256KB程度であり、データ転送速度が51.2GB/s程度であるものとする)。
以下、サブCPUコア182−1乃至182−8を個々に区別する必要のない場合、単にサブCPUコア182と称し、ローカルストレージ191−1乃至191−8を個々に区別する必要のない場合、単にローカルストレージ191と称するものとする。
この画像処理装置111のマイクロプロセッサ141は、例えば、上述したボクセル分割法、3DDDA、および、交差判定を実行して、3次元画像の各点の影の濃度を算出し、影を描画する処理を実行して、得られた画像(動画像または静止画)を、サウスブリッジ144を介して、HDD145に供給して記憶させたり、処理中の画像、または、処理の結果得られた画像(動画像または静止画)を、GPU142へデータ転送して、ディスプレイ122に表示させることができる。
特に、マイクロプロセッサ141では、メインCPUコア181が、サウスブリッジ144を介してマウス114、キーボード115、または、操作コントローラ116から供給された命令を受け付け、その命令に基づいた処理をサブCPUコア182−1乃至182−8に割り当てたり、ボクセル分割処理やデータの転送処理の管理など、3次元画像全体にかかわる処理を主に分担するようになされており、8個のサブCPUコア182−1乃至182−8のそれぞれが、3DDDA、および、交差判定、並びに、交差判定結果を用いた輝度計算処理などを実行する役割をそれぞれ担うようになされている。
8個のサブCPUコア182−1乃至182−8は、異なる陰影計算点におけるそれぞれの3DDDA、および、交差判定を同時並列的に実行することが可能であるとともに、例えば、1陰影計算点において陰影を計算するために発生される光線数の設定が、1度に演算処理される光線数M本よりも多い場合、同一の陰影計算点における異なる光線群に対する3DDDA、および、交差判定を同時並列的に実行することが可能である。また、同一の陰影計算点における同一の光線群に対する3DDDA、および、交差判定を、同一のサブCPUコア182で実行するものとしても良いし、3DDDAと交差判定とを異なるサブCPUコア182で実行するものとしても良い。
このように、マイクロプロセッサ141は、8個のサブCPUコア182−1乃至182−8によって同時並列的に演算処理を実行することができるようになされている。
XDR−RAM143は、3次元画像のポリゴンの情報を記録することができ、上述したローカルストレージ191と比較して、データ記憶容量は大きいが、通信速度が比較的遅い。ここでは、XDR−RAM143は、例えば、容量が256MB程度であり、データ転送速度が25.6GB/s程度であるものとする。XDR−RAM143は、8つのサブCPUコア182とメインCPUコア181で共有されるので、メインCPUコアの影響は無視できるほど小さいとして、8つのサブCPUコア182のそれぞれとの間におけるデータ転送速度は、3.2GB/sとなる。
そして、GPU142は、例えば、ディスプレイ122に表示する画像をディスプレイ122に表示するときの座標変換計算処理や、表示される画像に対する拡大・縮小処理等、画像の表示に関する機能を司り、マイクロプロセッサ141の処理負担を軽減させるようになされている。
また、マイクロプロセッサ141は、処理される画像とともに再生される音声データが存在する場合、その音声データに対して音声ミキシング処理を施し、その結果得られた編集音声データを、サウスブリッジ144およびサウンド入出力コーディック147を介して、スピーカ121へ送出することにより、音声信号に基づく音声をスピーカ121から出力させることもできる。
次に、画像処理装置111の動作について説明する。
XDR−RAM143には、影の描画処理を施したい3次元画像データを構成するポリゴンデータが記録されている。例えば、3次元画像データのデータ量が非常に大きな場合など、3次元画像データのうちの一部または全部は、更にデータ容量が大きいがデータ転送速度が遅い、HDD145や記憶装置112に記憶されている場合もあるし、ドライブ113に装着されたリムーバブルディスク117に記録されている場合もある。
マイクロプロセッサ141のメインCPUコア181は、サウスブリッジ144を介してマウス114、キーボード115、または、操作コントローラ116から供給された命令を受け付け、影の描画処理を施したい3次元画像データにおける3次元空間をボクセルに分割する。メインCPUコア181により、対応する3次元画像データがボクセルに分割された場合、メインCPUコア181の内部のキャッシュメモリには、空間の分割数、ボクセルの絶対座標、ボクセルの幅・高さ・奥行き(例えば、対応する空間がx y z 軸それぞれ5分割されたことを示す情報)などが保存される。
メインCPUコア181は、3次元画像データに陰の描画を行うために必要な3DDDA、および、交差判定を、サブCPUコア182−1乃至182−8に割り当てるとともに、処理に必要な情報を、そのサブCPUコア182が内部に有するローカルストレージ191に供給する。
3DDDA処理を割り当てられたサブCPUコア182は、複数の光線を順次発生させ、それぞれの光線に対して3DDDAを実行して、それらの光線と交差したボクセルはいずれのボクセルであるかをローカルストレージ191に記録し、例えば、図7を用いて説明したような光線記録データを生成する。
3DDDA処理を割り当てられたサブCPUコア182が、同一の陰影計算点における同一の光線群に対する交差判定を行うようになされていた場合、そのサブCPUコア182は、光線記録データを基に、M本の光線のうちのいずれかが交差したボクセルについて、そのボクセルに含まれるポリゴンの情報をXDR−RAM143から読み出して、データバス162およびメモリコントローラ183を介して取得する。そして、そのサブCPUコア182は、所定数M本の光線のうちのいずれかが交差したボクセルについて、そのボクセルに含まれるポリゴンのうちのいずれかが、そのボクセルと交差した光線のうちのいずれかと交差するかを交差判定し、交差すると判断された場合、その交点の輝度を計算する。
3DDDA処理を割り当てられたサブCPUコア182とは異なるサブCPUコア182が、同一の陰影計算点における同一の光線群に対する交差判定を行うようになされていた場合、そのサブCPUコア182は、光線記録データを、交差判定を実行するサブCPUコア182に供給する。光線記録データの供給を受けたサブCPUコア182は、供給された光線記録データを基に、M本の光線のうちのいずれかが交差したボクセルについて、そのボクセルに含まれるポリゴンの情報をXDR−RAM143から読み出して、データバス162およびメモリコントローラ183を介して取得し、所定数M本の光線のうちのいずれかが交差したボクセルについて、そのボクセルに含まれるポリゴンのうちのいずれかが、そのボクセルと交差した光線のうちのいずれかと交差するかを交差判定し、交差すると判断された場合、その交点の輝度を計算する。
また、サブCPUコア182は、M本の光線のうちのいずれかが交差し、かつ、ポリゴンを有するボクセルについて、そのボクセルに含まれるポリゴンの情報をXDR−RAM143から読み出して、データバス162およびメモリコントローラ183を介して取得し、交差判定を行うようにしても良い。
なお、処理を施す3次元画像のポリゴンの情報が、HDD145に記録されていた場合、必要な情報が、HDD145から読み出されて、サウスブリッジ144、I/Oコントローラ184、および、内部バス185を介して、XDR−RAM143に供給されて記憶される。また、処理を施す3次元画像のポリゴンの情報が、外部の記憶装置112やドライブ113に装着されたリムーバブルディスク117に記憶されている場合、必要な情報が、外部の記憶装置112やドライブ113に装着されたリムーバブルディスク117から読み出されて、PCIバス101、サウスブリッジ144、I/Oコントローラ184、および、内部バス185を介して、XDR−RAM143に供給されて記憶される。
このようにして、画像処理装置111においても、所定の数の光線のうち重複して光線が通過しているボクセルに関する情報の転送を1回だけにすることができる。
換言すれば、画像処理装置111においても、高速にアクセス可能であるが記憶容量の少ないローカルストレージ191に、発生された所定数M本の光線と交差したボクセルはいずれのボクセルであるかを示す情報を記録するようにすることにより、所定数M本の光線との3DDDA処理の結果得られるボクセルに関する情報の転送は、それぞれ、重複することがなくなるので、記憶容量は大きいがデータ転送速度がローカルストレージ191と比較して劣るXDR−RAM143、HDD145、または、外部の記憶装置112やドライブ113に装着されたリムーバブルディスク117からのデータ転送回数を減少させることができる。
このようにすることにより、ボクセル分割法などの空間分割法を用い、交差判定を行う画像処理(ここでは、レイトレーシング法をベースとした3次元画像生成)において、XDR−RAM143、HDD145、または、外部の記憶装置112やドライブ113に装着されたリムーバブルディスク117からのポリゴンデータの転送回数を減らすことができるため、演算処理全体にかかる時間の短縮化が図れる。
したがって、時間の短縮化により、同じ画像を同じ時間で生成するために必要な計算機の数も減り、消費電力も削減することができ、結果としてコスト削減につながる。
図9は、複数の光線をまとめて発生させ、複数光線のうちのいずれかと交差したボクセルに関する情報の転送処理を実行する場合のCPU31が有する機能を示す機能ブロック図である。
なお、図6における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
すなわち、メインCPUコア181は、図6を用いて説明した、影情報算出座標制御部71、光線発生数管理部72、ボクセル生成処理部75、および、計算結果出力制御部82の機能を有している。
そして、3DDDA処理を割り当てられたサブCPUコア182とは異なるサブCPUコア182が、同一の陰影計算点における同一の光線群に対する交差判定を行うようになされていた場合、3DDDA処理を割り当てられたサブCPUコア182−aは、図6を用いて説明した、光線発生処理部73、光線発生数係数および光線ID発行部74、3DDDA演算部76、および、ボクセル通過光線情報記録部77の機能を有しており、交差判定処理を割り当てられたサブCPUコア182−bは、図6を用いて説明した、ボクセル取得制御部78、交差判定処理部79、輝度計算部80、および、影濃度計算部81の機能を有している。
また、3DDDA処理を割り当てられたサブCPUコア182が、同一の陰影計算点における同一の光線群に対する交差判定を行うようになされていた場合、そのサブCPUコア182―cは、図6を用いて説明した、光線発生処理部73、光線発生数係数および光線ID発行部74、3DDDA演算部76、ボクセル取得制御部78、交差判定処理部79、輝度計算部80、および、影濃度計算部81の機能を有している。
上述した一連の処理を画像処理装置111の複数のサブCPUコア182を用いて並列に実行させるようになされている場合、上述したように、ボクセル分割法などの空間分割法を用い、交差判定を行う画像処理(ここでは、レイトレーシング法をベースとした3次元画像生成)において、XDR−RAM143、HDD145、または、外部の記憶装置112やドライブ113に装着されたリムーバブルディスク117からのポリゴンデータの転送回数を減らすことができるため、演算処理全体にかかる時間の短縮化が図れ、時間の短縮化により、同じ画像を同じ時間で生成するために必要な計算機の数も減り、消費電力も削減することができ、結果としてコスト削減につながるという効果を有することができ、更に、複数のサブCPUコア182に適宜処理を分散させることができるので、演算処理全体にかかる時間の短縮化を更に促進することが可能となる。
次に、図10および図11のフローチャートを参照して、画像処理装置11または画像処理装置111が実行する影生成処理について説明する。
ステップS41において、画像処理装置11または画像処理装置111は、ポリゴンにより構成された3次元画像データを取得し、主記憶部に記憶する。ここで、主記憶部とは、画像処理装置11においては、記憶部38であり、画像処理装置111においては、基本的には、XDR−RAM143であり、場合によっては、HDD145であるものとする。
ステップS42において、ボクセル生成処理部75は、ポリゴンにより構成された3次元画像データにおける3次元空間を分割し、ボクセルを生成する。
ステップS43において、光線発生数係数および光線ID発行部74は、光線の発生数NをN=1とする。
ステップS44において、光線発生処理部73は、影を生成するために必要な仮想的な光線のうちのN番目の光線を発生させる。光線発生数係数および光線ID発行部74は、N番目の光線に、所定の繰り返し回数Mだけ発生される光線の中で個別に区別可能なように、IDを付与する。
ステップS45において、3DDDA演算部76は、発生させた光線に対して3DDDAを実行し、発生された光線と交差するボクセルを求める。
ステップS46において、ボクセル通過光線情報記録部77は、3DDDAで得られたボクセルのうちの1つを抽出する。
ステップS47において、ボクセル通過光線情報記録部77は、ローカルストレージ61またはローカルストレージ191に保持される、例えば、図7を用いて説明した光線記録データに、そのボクセルにN番目の光線が通過することを記録する。
ステップS48において、ボクセル通過光線情報記録部77は、3DDDAで得られた全てのボクセルの処理が終了したか否かを判断する。ステップS48において、3DDDAで得られた全てのボクセルの処理が終了していないと判断された場合、処理は、ステップS46に戻り、それ以降の処理が繰り返される。
ステップS48において、3DDDAで得られた全てのボクセルの処理が終了したと判断された場合、ステップS49において、光線発生数係数および光線ID発行部74は、光線の発生数NをN=N+1とする。
ステップS50において、光線発生数係数および光線ID発行部74は、Nの値が所定の繰り返し回数Mを超えたか、または、全ての光線の処理が終了したか否かを判断する。ステップS50において、Nの値が所定の繰り返し回数Mを超えておらず、かつ、全ての光線の処理が終了していないと判断された場合、処理は、ステップS44に戻り、それ以降の処理が繰り返される。
ステップS50において、Nの値が所定の繰り返し回数Mを超えているか、または、全ての光線の処理が終了したと判断された場合、ステップS51において、ボクセル通過光線情報記録部77は、例えば、図7を用いて説明した光線記録データを、ボクセル取得制御部78に供給する。ボクセル取得制御部78は、光線記録データに基づいて、複数の光線のいずれかの光線が通過しているボクセルを検出する。
ステップS52において、ボクセル取得制御部78は、いずれかの光線が通過しているボクセルのうち、ポリゴンを含むボクセルを1つ抽出する。
ステップS53において、ボクセル取得制御部78は、抽出されたボクセルに含まれるポリゴンデータを主記憶から転送させて取得する。ここで、主記憶部とは、画像処理装置11においては、記憶部38であり、画像処理装置111においては、基本的には、XDR−RAM143であり、場合によっては、HDD145であるものとする。
ステップS54において、交差判定処理部79は、抽出されたボクセルを通過する光線のうちの未処理の一つを選択する。
ステップS55において、交差判定処理部79は、抽出されたボクセルに含まれるポリゴンと選択された光線との交差判定を実行する。
ステップS56において、交差判定処理部79は、その光線が、いずれかのポリゴンと交差しているか否かを判断する。
ステップS56において、その光線が、いずれかのポリゴンと交差していると判断された場合、ステップS57において、交差判定処理部79は、交差判定結果を輝度計算部80に供給するので、輝度計算部80は、その光線とポリゴンとの交点における輝度計算を実行する。
ステップS56において、その光線が、いずれかのポリゴンと交差していないと判断された場合、または、ステップS57の処理の終了後、ステップS58において、交差判定処理部79は、そのボクセルを通る全ての光線に対する交差判定が終了したか否かを判断する。ステップS58において、そのボクセルを通る全ての光線に対する交差判定が終了していないと判断された場合、処理は、ステップS54に戻り、それ以降の処理が繰り返される。
ステップS58において、そのボクセルを通る全ての光線に対する交差判定が終了したと判断された場合、ステップS59において、ボクセル取得制御部78は、光線記録データに基づいて、いずれかの光線が通過している全てのボクセルの処理が終了したか否かを判断する。ステップS59において、いずれかの光線が通過している全てのボクセルの処理が終了していないと判断された場合、処理は、ステップS52に戻り、それ以降の処理が繰り返される。
ステップS59において、いずれかの光線が通過している全てのボクセルの処理が終了したと判断された場合、ステップS60において、光線発生数管理部72は、発生するべき全ての光線の処理が終了したか否かを判断する。ステップS60において、発生するべき全ての光線の処理が終了していないと判断された場合、処理は、ステップS43に戻り、それ以降の処理が繰り返される。
ステップS60において、発生するべき全ての光線の処理が終了したと判断された場合、ステップS61において、影濃度計算部81は、輝度計算部80から供給された輝度計算結果に基づいて、3次元画像の各画素の影の濃度を算出し、計算結果出力制御部82に供給する。
ステップS62において、計算結果出力制御部82は、影濃度計算部81から供給された影の濃度の算出結果を出力し、処理が終了される。
このような処理により、ボクセル分割法やオクトリー分割法などの空間分割法を用い、交差判定を行う画像処理(例えば、レイトレーシング法やアンビエントオクルージョン法をベースとした3次元画像生成や)において、交差判定の処理回数自体は従来における場合と同一である(すなわち、交差判定の結果得られる画像処理の精度は従来における場合と同一である)が、転送速度の比較的遅い記憶部からのポリゴンデータの転送回数を減らすことができるため、演算処理全体にかかる時間の短縮化を図ることができる。
具体的には、例えば、説明を分かりやすくするために、3次元画像のうちの図12に示されるようなある平面において、3本の光線α、β、γを用いて交差判定を行う場合を例とすると、従来における場合においても、ポリゴンを含むボクセルの情報のみを転送するようになされていたとしても、それぞれの光線に交差するボクセルの情報を1つの光線ごとに転送していた場合、図中αとして示される光線と交差しているとして3つのボクセル、図中βとして示される光線と交差しているとして3つのボクセル、図中γとして示される光線と交差しているとして3つのボクセルの情報が、それぞれ転送されるので、合計9回ボクセルの情報が転送される。すなわち、従来における場合では、図中A,B,Cで示される3つのボクセルに関する情報が重複して転送処理される。これに対して、画像処理装置11または画像処理装置111においては、3本の光線α、β、γのいずれかと交差しているボクセルが選択されて、そのボクセルに関する情報が転送されるので、合計5つのボクセルの情報が転送される。
このような処理を実行することにより、影の描画にかかる時間を短縮することができるので、同じ画像を同じ時間で生成するために必要な計算機の数も減り、消費電力も削減することができ、結果としてコスト削減につながる。
図12においては、説明を分かりやすくするため、簡略化したモデルを用いて説明したが、実際に処理されるのは、3次元画像であり、その3次元画像に含まれるポリゴンによって構成される物体が3次元空間を占める割合が大きい可能性がある。画像処理装置11または画像処理装置111においては、3次元画像空間内のモデルが大きい場合、換言すれば、ポリゴンを含むボクセルの割合が多い場合や、発生される光線の数が多い場合などにおいて、ボクセルの情報の転送回数の従来における場合と比較した減少割合が顕著となる。また、画像処理装置11または画像処理装置111においては、1度に発生される光線の数Mが多いほど、ボクセルの情報の転送回数の減少割合が顕著となる。
例えば、映画に使われるCG(computer graphics)において、1枚の画像を生成するのに数十分乃至数時間かかってしまうことがある。例えば、2時間の映画には、17万枚もの画像が必要になるため、それぞれの画像を生成するための処理時間を抑えることは多大なるコスト削減につながる。画像処理のうちの、影の描画処理を、その品質を落とすことなく短時間で実行することが可能となることにより、画像生成全体のコスト削減を図ることができるのは言うまでもない。
なお、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係の一部を例示すると、交差情報は、例えば、図7を用いて説明した光線記録データであり、空間情報は、例えば、対応するボクセルに含まれるポリゴンの情報である。なお、この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものであり、この実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものではない。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、図4または図8に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア51またはリムーバブルメディア117などにより構成される。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 画像処理装置, 31 CPU, 38 記憶部, 61 ローカルストレージ, 71 影情報算出座標制御部, 72 光線発生数管理部, 73 光線発生処理部73, 74 光線発生数係数および光線ID発行部, 75 ボクセル生成処理部, 76 3DDDA演算部, 77 ボクセル通過光線情報記録部, 78 ボクセル取得制御部, 79 交差判定処理部, 80 輝度計算部, 81 影濃度計算部, 82 計算結果出力制御部, 111 画像処理装置, 112 記憶装置, 141 マイクロプロセッサ,143 XDR−RAM, 145 HDD, 181 メインCPUコア, 182 サブCPUコア, 191 ローカルストレージ
Claims (10)
- 画像に対して空間分割法を利用した交差判定を実行する情報処理装置において、
前記画像を記憶する第1の記憶手段に記憶されている前記画像に対して空間分割を行い、所定の単位空間を生成する空間分割手段と、
交差判定を実行する対象物と前記空間分割手段により生成された前記単位空間とが交差していることを判定する第1の判定手段と、
前記第1の判定手段による判定結果に基づいて、前記対象物に関して、前記単位空間と交差している前記対象物はいずれであるかを示す交差情報を生成し、前記第1の記憶手段よりもデータ転送速度の速い第2の記憶手段に記憶させる生成手段と、
前記生成手段により生成され前記第2の記憶手段に記憶された前記交差情報に基づいて、前記対象物のうちのいずれかと交差している前記単位空間の空間情報を、前記第1の記憶手段から読み出す読み出し制御手段と、
前記読み出し制御手段により読み出された前記単位空間の前記空間情報を用いて交差判定を実行する第2の判定手段と
を備える情報処理装置。 - 前記第1の記憶手段を更に備える
請求項1に記載の情報処理装置。 - 前記第2の記憶手段は、前記第1の記憶手段よりも記憶容量が少ない
請求項1に記載の情報処理装置。 - 前記第1の判定手段、前記生成手段、前記読み出し制御手段、および、前記第2の判定手段の処理は、複数の演算処理部により分担して実行可能である
請求項1に記載の情報処理装置。 - 前記空間分割手段の処理は、複数の前記演算処理部とは異なる主演算処理部により実行され、
前記主演算処理部は、複数の前記演算処理部による前記第1の判定手段、前記生成手段、前記読み出し制御手段、および、前記第2の判定手段の処理の分担を制御する
請求項4に記載の情報処理装置。 - 前記第2の記憶手段は、複数の前記演算処理部のそれぞれに設けられている
請求項4に記載の情報処理装置。 - 前記対象物をそれぞれ区別する区別情報を付与する区別情報付与手段を更に備え、
前記生成手段は、前記単位空間のそれぞれが、前記区別情報付与手段により付与された前記区別情報により区別可能な前記対象物のそれぞれと交差するかを示すフラグ情報により構成される前記交差情報を生成する
請求項1に記載の情報処理装置。 - 空間分割法を利用した交差判定を実行して画像を処理する情報処理装置の情報処理方法において、
前記画像を記憶する第1の記憶部に記憶されている前記画像に対して空間分割を行い、
交差判定を実行する対象物と、生成された前記単位空間とが交差していることを判定し、
判定結果に基づいて、前記対象物に関して、前記単位空間と交差している前記対象物はいずれであるかを示す情報を生成して、前記第1の記憶部よりもデータ転送速度の速い第2の記憶部に記録し、
前記第2の記憶部に記録された前記情報に基づいて、前記対象物のうちのいずれかと交差している前記単位空間の情報を、前記第1の記憶部から読み出し、
前記第1の記憶部から読み出された前記単位空間の情報を用いて交差判定を実行する
ステップを含む情報処理方法。 - 空間分割法を利用した交差判定をコンピュータに実行させるためのプログラムであって、
前記画像を記憶する第1の記憶部に記憶されている前記画像に対して空間分割を行い、
交差判定を実行する対象物と、生成された前記単位空間とが交差していることを判定し、
判定結果に基づいて、前記対象物に関して、前記単位空間と交差している前記対象物はいずれであるかを示す情報を生成して、前記第1の記憶部よりもデータ転送速度の速い第2の記憶部への記録を制御し、
前記第2の記憶部に記録された前記情報に基づいて、前記対象物のうちのいずれかと交差している前記単位空間の情報を、前記第1の記憶部から読み出し、
前記第1の記憶部から読み出された前記単位空間の情報を用いて交差判定を実行する
ステップを含む処理をコンピュータに実行させるプログラム。 - 請求項9に記載のプログラムが記録されている記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007106252A JP2008262493A (ja) | 2007-04-13 | 2007-04-13 | 情報処理装置および情報処理方法、プログラム、並びに、記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007106252A JP2008262493A (ja) | 2007-04-13 | 2007-04-13 | 情報処理装置および情報処理方法、プログラム、並びに、記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008262493A true JP2008262493A (ja) | 2008-10-30 |
Family
ID=39984906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007106252A Withdrawn JP2008262493A (ja) | 2007-04-13 | 2007-04-13 | 情報処理装置および情報処理方法、プログラム、並びに、記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008262493A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010134919A (ja) * | 2008-12-05 | 2010-06-17 | Internatl Business Mach Corp <Ibm> | アンビエント・オクルージョンを使用する写実的画像処理のためのシステム、方法、およびプログラム |
JP2011158951A (ja) * | 2010-01-29 | 2011-08-18 | Konica Minolta Business Technologies Inc | 画像処理装置、プログラム及び画像処理方法 |
US9672654B2 (en) | 2013-10-02 | 2017-06-06 | Samsung Electronics Co., Ltd. | Method and apparatus for accelerating ray tracing |
WO2019142665A1 (ja) * | 2018-01-16 | 2019-07-25 | ソニー株式会社 | 情報処理装置および方法 |
JP2022548170A (ja) * | 2019-12-05 | 2022-11-16 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | ライトプローブの生成方法、装置、コンピュータプログラム、及びコンピュータ装置 |
-
2007
- 2007-04-13 JP JP2007106252A patent/JP2008262493A/ja not_active Withdrawn
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010134919A (ja) * | 2008-12-05 | 2010-06-17 | Internatl Business Mach Corp <Ibm> | アンビエント・オクルージョンを使用する写実的画像処理のためのシステム、方法、およびプログラム |
US9483864B2 (en) | 2008-12-05 | 2016-11-01 | International Business Machines Corporation | System and method for photorealistic imaging using ambient occlusion |
JP2011158951A (ja) * | 2010-01-29 | 2011-08-18 | Konica Minolta Business Technologies Inc | 画像処理装置、プログラム及び画像処理方法 |
US9672654B2 (en) | 2013-10-02 | 2017-06-06 | Samsung Electronics Co., Ltd. | Method and apparatus for accelerating ray tracing |
WO2019142665A1 (ja) * | 2018-01-16 | 2019-07-25 | ソニー株式会社 | 情報処理装置および方法 |
CN111727461A (zh) * | 2018-01-16 | 2020-09-29 | 索尼公司 | 信息处理装置和方法 |
US11227436B2 (en) | 2018-01-16 | 2022-01-18 | Sony Corporation | Information processing apparatus and information processing method |
CN111727461B (zh) * | 2018-01-16 | 2024-08-23 | 索尼公司 | 信息处理装置和方法 |
JP2022548170A (ja) * | 2019-12-05 | 2022-11-16 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | ライトプローブの生成方法、装置、コンピュータプログラム、及びコンピュータ装置 |
JP7355926B2 (ja) | 2019-12-05 | 2023-10-03 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | ライトプローブの生成方法、装置、コンピュータプログラム、及びコンピュータ装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111062858B (zh) | 高效的提前渲染方法、装置及计算机存储介质 | |
JP5053857B2 (ja) | 3次元グラフィックス処理装置および方法 | |
TWI515716B (zh) | 具備緩衝區限制處理的世界空間與螢幕空間管線間之圖元重新排序 | |
TWI417806B (zh) | 單一通過鑲嵌 | |
US9576340B2 (en) | Render-assisted compression for remote graphics | |
US9153209B2 (en) | Method and system for generating a displacement map from a normal map | |
US20150091892A1 (en) | Method and apparatus for rendering image data | |
CN112801855B (zh) | 基于图元的渲染任务调度的方法、装置及存储介质 | |
EP3580726B1 (en) | Buffer index format and compression | |
US20100179788A1 (en) | System and method for hybrid solid and surface modeling for computer-aided design environments | |
KR101711775B1 (ko) | 그래픽스 프로세싱을 위한 그래픽스 메모리 로드 마스크 | |
US9342891B2 (en) | Stencil then cover path rendering with shared edges | |
US8810587B2 (en) | Conversion of contiguous interleaved image data for CPU readback | |
US20140168222A1 (en) | Optimizing triangle topology for path rendering | |
US11631212B2 (en) | Methods and apparatus for efficient multi-view rasterization | |
JP2008262493A (ja) | 情報処理装置および情報処理方法、プログラム、並びに、記録媒体 | |
CN111080761A (zh) | 一种渲染任务的调度方法、装置及计算机存储介质 | |
US8553041B1 (en) | System and method for structuring an A-buffer to support multi-sample anti-aliasing | |
US6392643B1 (en) | Image generation apparatus | |
US10672182B2 (en) | Compact visibility state for GPUs compatible with hardware instancing | |
TW201447813A (zh) | 產生防鋸齒體素資料 | |
US8823715B2 (en) | Efficient writing of pixels to tiled planar pixel arrays | |
CN110928610B (zh) | 验证着色器函数的方法、装置及计算机存储介质 | |
KR20160068204A (ko) | 메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체 | |
KR102147357B1 (ko) | 커맨드들을 관리하는 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100706 |