(57)【要約】 【課題】  処理すべきポリゴン数を減らして３次元グラフィックス処理を行う画像処理装置等を提供する。【解決手段】  画像処理装置２０１の記憶部２０２は、仮想３次元空間に配置されるオブジェクトの形状を近似する近似多面体の面のいずれかに、当該オブジェクトの表面を形成する複数の多角形のそれぞれを、対応付けて記憶し、判断部２０３は、当該仮想３次元空間内を所定の視点から所定の視線方向に見た場合に、記憶された近似多面体の面のそれぞれが見えるか否かを判断し、生成部２０４は、対応付けて記憶された複数の多角形のうち、判断工程にて見えると判断された近似多面体の面に対応付けられるものについて、当該所定の視点から当該所定の視線方向に見た画像を生成する。【選択図】  図２
2006092177.tif 000002
【特許請求の範囲】
【請求項１】
仮想３次元空間に配置されるオブジェクトの形状を近似する近似多面体の面のいずれかに、当該オブジェクトの表面を形成する複数の多角形のそれぞれを、対応付けて記憶する記憶部、
当該仮想３次元空間内を所定の視点から所定の視線方向に見た場合に、前記記憶された近似多面体の面のそれぞれが見えるか否かを判断する判断部、
前記対応付けて記憶された複数の多角形のうち、前記判断部により見えると判断された近似多面体の面に対応付けられるものについて、当該所定の視点から当該所定の視線方向に見た画像を生成する生成部
を備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
当該複数の多角形のそれぞれについて、当該多角形は、その外向き法線ベクトルと当該近似多面体の面の外向き法線ベクトルとがなす角が最小の近似多面体の面に対応付けて記憶される
ことを特徴とする物。
【請求項３】
請求項１または２に記載の画像処理装置であって、
前記判断部は、当該視線方向をあらわすベクトルと、当該近似多面体の面の外向き法線ベクトルと、のなす角が、所定の下限角と所定の上限角との間にある場合に、当該近似多面体の面が見えると判定し、
当該所定の下限角は９０度以下の角度であり、当該所定の上限角は１８０度である
ことを特徴とする物。
【請求項４】
請求項１または２に記載の画像処理装置であって、
前記判断部は、当該視点を原点としたときの当該近似多面体に含まれる代表点の位置ベクトルと、当該近似多面体の面の外向き法線ベクトルと、のなす角が、所定の下限角と所定の上限角との間にある場合に、当該近似多面体の面が見えると判定し、
当該所定の下限角は９０度以下の角度であり、当該所定の上限角は１８０度である
ことを特徴とする物。
【請求項５】
請求項１から４のいずれか１項に記載の画像処理装置であって、
当該近似多面体は、当該オブジェクトに外接する多角柱であり、その面の一つは、当該仮想３次元空間の地面に接し、
当該複数の多角形は、当該地面に接する面以外の面に対応付けられて記憶され、
前記判断部は、当該地面に接する面以外の面について、見えるか否かを判断する
ことを特徴とする物。
【請求項６】
請求項１から４のいずれか１項に記載の画像処理装置であって、
当該近似多面体は、当該オブジェクトに外接する多角錐であり、その底面は、当該仮想３次元空間の地面に接し、
当該複数の多角形は、当該底面以外の面に対応付けられて記憶され、
前記判断部は、当該底面以外の面について、見えるか否かを判断する
ことを特徴とする物。
【請求項７】
記憶部、判断部、生成部を備える画像処理装置にて実行される画像処理方法であって、
前記記憶部には、仮想３次元空間に配置されるオブジェクトの形状を近似する近似多面体の面のいずれかに、当該オブジェクトの表面を形成する複数の多角形のそれぞれが、対応付けて記憶され、
前記判断部が、当該仮想３次元空間内を所定の視点から所定の視線方向に見た場合に、前記記憶された近似多面体の面のそれぞれが見えるか否かを判断する判断工程、
前記生成部が、前記対応付けて記憶された複数の多角形のうち、前記判断工程にて見えると判断された近似多面体の面に対応付けられるものについて、当該所定の視点から当該所定の視線方向に見た画像を生成する生成工程
を備えることを特徴とする画像処理方法。
【請求項８】
コンピュータを、
仮想３次元空間に配置されるオブジェクトの形状を近似する近似多面体の面のいずれかに、当該オブジェクトの表面を形成する複数の多角形のそれぞれを、対応付けて記憶する記憶部、
当該仮想３次元空間内を所定の視点から所定の視線方向に見た場合に、前記記憶された近似多面体の面のそれぞれが見えるか否かを判断する判断部、
前記対応付けて記憶された複数の多角形のうち、前記判断部により見えると判断された近似多面体の面に対応付けられるものについて、当該所定の視点から当該所定の視線方向に見た画像を生成する生成部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想３次元空間内に配置されポリゴンによって形成されるオブジェクトを、処理すべきポリゴンの数を減らして描画するのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータグラフィックスの分野や各種のゲーム装置における処理においては、３次元グラフィックスの技術が利用されている。このような３次元グラフィックスの技術では、仮想的な３次元空間の中に描画対象となるオブジェクトを配置する。オブジェクトの表面は多面体で表現されており、多面体の角面は多角形（ポリゴン）となっている。このような３次元グラフィックスの技術については、以下の文献に開示がある。
【特許文献１】特許第３４９０９８３号
【０００３】
一般に、当該３次元空間の中に配置されたオブジェクトを当該３次元空間の中に配置された視点から、与えられた視線方向に見た様子を３次元グラフィックス表示する場合には、以下のような処理を行っている。すなわち、各ポリゴンのそれぞれについて、その外向き法線と視線方向を表す視線ベクトルとのなす角を対比する。そして、その角が９０度〜１８０度であるようなポリゴンを視点から遠い順にソートする。さらに、ポリゴンを遠い順に画像バッファに投影変換（視点から視線方向に見た場合の透視変換を用いるのが一般的である。）して、当該ポリゴンに割り当てられたテクスチャを投影変換された領域に貼り込む。このような処理を、Ｚバッファ法と呼ぶ。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、３次元グラフィックスの処理は多大な計算を要するため、処理の対象となるポリゴンの数を簡易に（用途によっては近似的に）減らして、処理に要する時間を短くしたい、との要望は強い。
本発明は、上記のような課題を解決するためになされたもので、仮想３次元空間内に配置されポリゴンによって形成されるオブジェクトを、処理すべきポリゴンの数を減らして描画するのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第１の観点に係る画像処理装置は、記憶部、判断部、生成部を備え、以下のように構成する。
【０００６】
まず、記憶部は、仮想３次元空間に配置されるオブジェクトの形状を近似する近似多面体の面のいずれかに、当該オブジェクトの表面を形成する複数の多角形のそれぞれを、対応付けて記憶する。
たとえば、仮想３次元空間にビルディングやタワーのような建造物のオブジェクトが配置されている場合、当該建造物の表面のコンクリート面、窓ガラス面、鉄筋面等の各面が、多角形（ポリゴン）に分割されて表現される。
【０００７】
このような建造物に対する近似多面体としては、たとえば直方体や四角錐を採用することができる。ビルディングの大まかな形状は直方体であることが多く、タワーの大まかな形状は四角錐であることが多いからである。
そして、各多角形（ポリゴン）を、当該直方体や当該四角錐のいずれかの面に対応付けて記憶するのである。
【０００８】
一方、判断部は、当該仮想３次元空間内を所定の視点から所定の視線方向に見た場合に、記憶された近似多面体の面のそれぞれが見えるか否かを判断する。
すなわち、本発明では、各多角形について外向き法線ベクトルを視線方向ベクトルとをなす角を計算して対比するのではなく、近似多面体の各面について外向き法線ベクトルが視線方向ベクトルとなす角を計算して対比するのである。上記のように、近似多面体はオブジェクトの大まかな形状を表すものであるから、オブジェクトの外形を構成するポリゴンの数と、近似多面体の面の数とを比較すれば、前者は後者に比べて圧倒的に多いのが一般的である。
【０００９】
さらに、生成部は、対応付けて記憶された複数の多角形のうち、判断工程にて見えると判断された近似多面体の面に対応付けられるものについて、当該所定の視点から当該所定の視線方向に見た画像を生成する。
すなわち、近似多面体の各面のうち、現在の視点から現在の視線方向に見た場合に見える面に対応付けられているポリゴンのみを３次元グラフィックス処理し、近似多面体の各面のうち見えない面に対応付けられているポリゴンについては、各種の処理を省略するのである。
【００１０】
本発明によれば、仮想３次元空間内に配置されポリゴンによって形成されるオブジェクトを、処理すべきポリゴンの数を減らして描画することができ、描画に要する計算時間を短縮することができる。
【００１１】
また、本発明の画像処理装置は、当該複数の多角形のそれぞれについて、当該多角形は、その外向き法線ベクトルと当該近似多面体の面の外向き法線ベクトルとがなす角が最小の近似多面体の面に対応付けて記憶されるように構成することができる。
本発明は、上記発明における近似多面体の各面とオブジェクト表面の各多面体との対応関係を定めるものである。
【００１２】
もっとも単純には、オブジェクト表面の各多面体について、当該多面体に最も近接する近似多面体の面を対応付けることが可能である。このような対応付けによっても、オブジェクトの形状や３次元グラフィックスの適用分野においては、十分な品質の映像が得られることも多い。
【００１３】
一方、本発明では、あらかじめ近似多面体の面のうち、多面体の外向き法線ベクトルとその外向き法線ベクトルとのなす角が最小となるような面に対応付ける。本発明では、多角形が見えるか見えないかの判定はある種の近似を採用していることとなるが、本発明のような対応関係を採用することによって、できるだけ正確にこの判定を行うのである。
本発明によれば、ポリゴンと近似多面体の各面との対応付けを決める指針の一つが提供されるとともに、一旦そのような対応付けをしてしまえば、３次元グラフィックス処理に要する手間は上記発明と同様なので、高速な処理が可能となる。
【００１４】
また、本発明の画像処理装置において、当該近似多面体は、当該オブジェクトに外接する多角柱であり、その面の一つは、当該仮想３次元空間の地面に接し、当該複数の多角形は、当該地面に接する面以外の面に対応付けられて記憶され、判断部は、当該地面に接する面以外の面について、見えるか否かを判断するように構成することができる。
【００１５】
上記の例のように、３次元空間内に配置される建物について描画処理を行う場合には、地面に接している面を描画の対象とすることがないのは明らかである。そこで本発明では、そのような処理を省略する。
本発明によれば、近似多面体の地面に接している面にはポリゴンを対応付けないこととし、地面に接している面についての判断処理を省略して、３次元グラフィックス処理に要する計算量を減らし、高速な処理を行うことができる。
【００１６】
また、本発明の画像処理装置において、当該近似多面体は、当該オブジェクトに外接する多角錐であり、その底面は、当該仮想３次元空間の地面に接し、当該複数の多角形は、当該底面以外の面に対応付けられて記憶され、判断部は、当該底面以外の面について、見えるか否かを判断するように構成することができる。
上記発明では、近似多面体として多角柱（典型的には直方体）を採用したが、本発明では、近似多面体として多角錐を採用し、その底面を地面に接する面とするものである。
本発明によれば、上記発明と同様に、近似多面体の地面に接している面にはポリゴンを対応付けないこととし、地面に接している面についての判断処理を省略して、３次元グラフィックス処理に要する計算量を減らし、高速な処理を行うことができる。
【００１７】
本発明の第２の観点に係る画像処理方法は、記憶部、判断部、生成部を備える画像処理装置にて実行され、記憶部には、仮想３次元空間に配置されるオブジェクトの形状を近似する近似多面体の面のいずれかに、当該オブジェクトの表面を形成する複数の多角形のそれぞれが、対応付けて記憶され、判断工程、生成工程を備え、以下のように構成する。
【００１８】
すなわち、判断工程では、判断部が、当該仮想３次元空間内を所定の視点から所定の視線方向に見た場合に、記憶された近似多面体の面のそれぞれが見えるか否かを判断する。
【００１９】
一方、生成工程では、生成部が、対応付けて記憶された複数の多角形のうち、判断部により見えると判断された近似多面体の面に対応付けられるものについて、当該所定の視点から当該所定の視線方向に見た画像を生成する。
【００２０】
本発明のその他の観点に係るプログラムは、コンピュータを上記画像処理装置として機能させ、または、コンピュータに上記画像処理方法を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００２１】
本発明によれば、仮想３次元空間内に配置されポリゴンによって形成されるオブジェクトを、処理すべきポリゴンの数を減らして描画するのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、三次元グラフィックス表示がされるゲーム装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、ＰＤＡ（Personal Data Assistants）、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００２３】
図１は、本発明の画像処理装置が実現される典型的なゲーム装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【００２４】
ゲーム装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ  １０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、を備える。
画像処理用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、ゲーム装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の画像処理装置が実現される。
【００２５】
ＣＰＵ  １０１は、ゲーム装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００２６】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、ゲーム装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００２７】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００２８】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがレーシングゲームなどのゲーム実行の際に行う操作入力を受け付ける。
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、レーシングゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、チャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００２９】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００３０】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００３１】
また、仮想三次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想三次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００３２】
また、画像演算プロセッサは、三角形や四角形のビットマップ画像（テクスチャ画像）を他の三角形や四角形の領域に適宜変形して投影するレンダリング機能を有するのが一般的である。
【００３３】
ＮＩＣ  １０９は、ゲーム装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００３４】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００３５】
このほか、ゲーム装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００３６】
図２は、本発明の実施形態の一つに係る画像処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。本実施形態に係る画像処理装置２０１は、記憶部２０２、判断部２０３、生成部２０４を備える。
【００３７】
ここで、記憶部２０２は、仮想３次元空間に配置されるオブジェクトの形状を近似する近似多面体の面のいずれかに、当該オブジェクトの表面を形成する複数の多角形のそれぞれを、対応付けて記憶する。
【００３８】
図３は、仮想３次元空間に配置されるオブジェクトの形状の例と、それに対応する近似多面体の例とを示す説明図である。以下、本図を参照して説明する。なお、本図では、オブジェクトの輪郭は実線で、近似多面体の輪郭は点線で、それぞれ示すものとする。
【００３９】
図３（ａ）は、仮想３次元空間内に配置されるビルディングのオブジェクト３０１と、その仮想多面体３０２との関係を示すものである。
ビルディングの大まかな形状は、典型的には直方体であることが多く、場合によっては多角柱のような形状をとることもあるが、本例のオブジェクト３０１の形状は略直方体となっている。オブジェクト３０１を構成するポリゴンには、コンクリート面や窓ガラス面などのテクスチャが貼り込まれており、仮想３次元空間内のビルディングを表現している。
【００４０】
そこで、仮想多面体３０２として、当該ビルディングのオブジェクト３０１の主要構造物（壁面および天井）を面として持つ直方体（四角柱）を採用している。
【００４１】
図３（ｂ）は、仮想３次元空間内に配置されるタワーのオブジェクト３０１と、その仮想多面体３０２との関係を示すものである。
タワーの大まかな形状は、典型的には多角柱や多角錐、多角錐台（多角錐の頂点付近を切断した残り）をとることが多く、本例のオブジェクト３０１の形状は略四角錐となっている。オブジェクト３０１を構成するポリゴンには、鉄筋を表す網目状のテクスチャのほか、上記オブジェクト３０１同様、コンクリート面や窓ガラス面などのテクスチャが貼り込まれており、仮想３次元空間内のタワーを表現している。
【００４２】
そこで、仮想多面体３０２として、当該タワーのオブジェクト３０１の主要構造物（壁面）を面とし、頂上を頂点として持つ四角錐を採用している。
【００４３】
仮想多面体３０２としては、典型的には、当該オブジェクト３０１に外接する（オブジェクト３０１のポリゴンを内包もしくはオブジェクト３０１のポリゴンと重なる。）、もしくは、オブジェクト３０１の概形を表す（したがってオブジェクト３０１のポリゴンと交差する面が存在することもありうる。）多面体、特に多角柱や多角錐を採用することが望ましい。オブジェクト３０１を構成するポリゴン数に比べて、これらの多面体の面の数は極めて小さいからである。後述するように、この仮想多面体３０２の面によってポリゴン処理の刈り込みを行い、計算量を減少させるのである。
【００４４】
記憶部２０２は、このような仮想多面体のいずれかの面に、オブジェクトのポリゴンのそれぞれを対応付けて記憶する。以下では、このような対応付けをどのように定めるか、について説明する。図４は、視点、視線方向、仮想多面体の１つの面、１つのポリゴンの位置関係を示す説明図である。以下、本図を参照して説明する。
【００４５】
３次元グラフィックスでは、仮想３次元空間内に配置されるポリゴン４０１を当該空間内に配置される視点４０２から視線４０３の方向へ見た様子を描画する。視点４０２を原点とするポリゴン４０１の位置ベクトルr  ４１１と、視点４０２を出発点とする視線４０３の方向ベクトルs  ４１２と、ポリゴン４０１の外向き法線ベクトルn  ４１３と、を考える。
【００４６】
ポリゴン４０１の位置ベクトルr  ４１１の指す先は、ポリゴン４０１内のいずれかの代表点であり、典型的には、ポリゴン４０１の頂点のいずれか、もしくは、ポリゴン４０１の重心である。
【００４７】
当該ポリゴン４０１のテクスチャを描画すべきか否かの判断には、厳密には、位置ベクトルr  ４１１と、外向き法線ベクトルn  ４１３とのなす角の範囲によって判定することになるが、所定の距離以上離れているオブジェクトの場合には、位置ベクトルr  ４１１にかえて視線方向ベクトルs  ４１２を用いて、近似計算を行うこととしても良い。すなわち、厳密には、
-1 ≦ (r・n)/(|r||n|) ≦ 0
近似的には、
-1 ≦ (s・n)/(|s||n|) ≦ 0
が成立するとき（両ベクトルのなす角が９０度以上１８０度以下のとき）に、当該ポリゴン４０１の表面が、当該視点４０３から見えることになる。もちろんさらにarccos(・)を用いて角度そのものを得て、判断を行うこととしても良い。
【００４８】
したがって、本来であれば、ポリゴン４０１ごとに、上記の内積の計算（ベクトル同士がなす角を求める計算）を行う必要がある。
【００４９】
本実施形態では、これを、ポリゴン４０１に対応付けられる仮想多面体３０２の面４０４を用いて、判断する。面４０４には、複数のポリゴン４０１が対応付けられており、面４０４が見えるか否かの判断で、これに対応付けられた複数のポリゴンが見えるか否かをまとめて（近似的に）判断するのである。
【００５０】
本図に示すように、視点４０２を原点とする面４０４の位置ベクトルr'  ４２１と、面４０４の外向き法線ベクトルn'  ４２３と、を考える。位置ベクトルr'  ４２１の指す先は、面４０４内の代表点であり、典型的には面４０４の重心もしくはいずれかの頂点である。
【００５１】
さて、仮想多面体３０２の面４０４が見えるか否かは、ポリゴン４０１の場合の判断と同様に、
-1 ≦ (r'・n')/(|r'||n'|) ≦ 0
もしくは、
-1 ≦ (s・n')/(|s||n'|) ≦ 0
によって判断できる。
【００５２】
そこで、ポリゴン４０１が見えるか否かの判断を、面４０４が見えるか否かの判断で近似するためには、ポリゴン４０１の外向き法線ベクトルn  ４１３と、面４０４の外向き法線ベクトルn'  ４２３と、のなす角が、近いことが必要とされる。複数のポリゴン４０１のそれぞれについて、当該ポリゴン４０１と、仮想多面体３０２の面４０４のそれぞれと、について、
(n・n')/(|n||n'|)
の値を求め、これが最大となる（１に近ければ近いほど、両者のなす角は小さくなる。）面４０４に対応付ければ良い。
【００５３】
記憶部２０２には、このようにして、ポリゴン４０１と、面４０４との対応付けを記憶するのである。
【００５４】
なお、ビルディングやタワーなどの建造物の場合には、その底面（建造物が地面に接する面）が見えることはありえない。そこで、本実施形態では、仮想多面体３０２の面４０４として、地面に接する面は採用しない。各ポリゴン４０１は、仮想多面体３０２の側面もしくは上面に配置される面４０４のいずれかに対応付けることになる。
【００５５】
また、仮想多面体３０２の面４０４が見えるか否かによってポリゴン４０１が見えるか否かを判断するのは、近似的手法であるが、本実施形態の適用分野によっては、これで十分な視覚的効果が得られることが多い。もっとも、計算量が増えない（見えないポリゴン４０１の処理をできるだけ省く）範囲で、この近似をできるだけ正確にすることも可能である。
【００５６】
すなわち、上記の説明では、２つのベクトルのなす角が９０度以上１８０度未満であれば見える、と判断していたが、この下限を少し小さくするのである。たとえば、余裕角を１０度として、２つのベクトルのなす角が８０度以上１８０度未満であれば見える、と判断する。具体的には、この余裕角をθ (0°≦θ≦90°，すなわち 0≦θ≦π/2)としたとき、
-1 ≦ (r'・n')/(|r'||n'|) ≦ cosθ
もしくは、
-1 ≦ (s・n')/(|s||n'|) ≦ cosθ
によって判断できる。
【００５７】
これらは、ベクトル同士のなす角の関係で書けば、
π ≧ arccos((r'・n')/(|r'||n'|)) ≧ π/2-θ
もしくは、
π ≧ arccos((s・n')/(|s||n'|)) ≧ π/2-θ
として判断することもできる。いずれの判断を用いるか、は、計算機にどのようなハードウェアや基本ライブラリが備えられているかによって、適宜選択することができる。
【００５８】
なお、法線ベクトルや視線方向ベクトルは長さを１とするのが一般的である。すなわち、
|n| = |n'| = |s| = 1
この場合、上記の判断基準はそれぞれ、
-1 ≦ (r'・n')/|r'| ≦ cosθ；
-1 ≦ (s・n') ≦ cosθ；
π ≧ arccos((r'・n')/|r'|) ≧ π/2-θ；
π ≧ arccos(s・n') ≧ π/2-θ
のように簡単化することが可能である。これを見れば明らかな通り、位置ベクトルr'  ４２１を利用するよりも視線方向ベクトルs  ４１２を利用して判断を行った方が、計算時間が短くてすむと考えられる。
【００５９】
また、θを0°(=0)としたときには、余裕が一切ないことになり、θを90°(=π/2)としたときには、すべてのポリゴン４０１が見えるものとして処理を行うことになる。したがって、適用分野と計算機資源の能力に応じてθの値を適宜定めれば良い。
【００６０】
図５は、当該画像処理装置にて実行される画像処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００６１】
上記のように記憶部２０２には、すでにオブジェクト３０１のポリゴン４０１のそれぞれが、仮想多面体３０２の面４０４のいずれかに対応付けて記憶されているものとする。
【００６２】
そこで、まず、判断部２０３は、仮想多面体３０２の面４０４のそれぞれについて繰り返しの処理を行う。まず、面４０４のすべてについて処理を行ったかを判断し（ステップＳ５０１）、まだ処理していない面４０４があれば（ステップＳ５０１；Ｎｏ）、未処理の面４０４を１つ取得して（ステップＳ５０２）、その面４０４を、仮想３次元空間内に配置された視点４０２から視線方向ベクトルs  ４１２の方向へ見たときに、当該面４０４の外面が見えるか否かを判断する（ステップＳ５０３）。この際には、上記のように、当該面４０４に割り当てられた外向き法線ベクトルn'  ４２３や、必要に応じて視点４０２から当該面４０４への位置ベクトルr'  ４２１を用いることになる。
【００６３】
面４０４の外面が見える場合（ステップＳ５０３；Ｙｅｓ）、当該面４０４に対応付けられて記憶部２０２に記憶されているポリゴン４０１をすべて、Ｚバッファに登録し（ステップＳ５０４）、ステップＳ５０１に戻る。ここで、Ｚバッファは、ＲＡＭ  １０３内などに用意され、後述するように、ポリゴン同士の視点からの遠近関係を判断するために使われる配列状の記憶領域である。
【００６４】
一方、面４０４の外面が見えない場合（ステップＳ５０３；Ｎｏ）ステップＳ５０１に戻る。
【００６５】
このように、画像処理装置２０１がゲーム装置１００上に実現される場合には、ＣＰＵ  １０１がＲＡＭ  １０３と共働して判断部２０３として機能する。このほか、画像処理プロセッサが有するマルチメディア命令やベクトル演算命令、並列演算命令などが利用できる場合には、上記の繰返しを並列処理したり、ベクトル演算命令を利用したりして、判断部２０３の機能を果たすこととしても良い。
【００６６】
ついで、すべての面４０４について処理が終わると（ステップＳ５０１；Ｙｅｓ）、生成部２０４は、Ｚバッファに登録されたポリゴン４０１を、視点から遠い順にソートする（ステップＳ５０５）。そして、最も遠いポリゴン４０１から最も近いポリゴン４０１まで、以下の処理を繰り返す。
【００６７】
すなわち、ソート済みＺバッファ内に登録されたポリゴン４０１のすべてについて処理をしたかを判断し（ステップＳ５０６）、未処理のポリゴン４０１があれば（ステップＳ５０６；Ｎｏ）、未処理のポリゴン４０１のうち、もっとも視点４０２から遠いポリゴン４０１を取得して（ステップＳ５０７）、仮想３次元空間における当該ポリゴン４０１の位置情報、姿勢情報と、視点の位置や視線方向に基づいて所定の透視変換を施し（ステップＳ５０８）、画面バッファ内に当該ポリゴン４０１が投影される領域を取得し（ステップＳ５０９）、さらに、当該領域内に当該ポリゴン４０１に割り当てられたテクスチャを貼り込んで（ステップＳ５１０）、ステップＳ５０６に戻る。
このように、ＣＰＵ  １０１が、ＲＡＭ  １０３や画像処理部１０７の画像処理プロセッサと共働して、生成部２０４として機能する。
【００６８】
ステップＳ５０１〜ステップＳ５０４の繰返し処理によって、視点４０２からそのテクスチャ面が見える（と推測される）ポリゴン４０１のみがＺバッファ内に登録されることになる。
このため、すべてのポリゴン４０１をＺバッファに登録した場合よりも、当然に計算量が少なくてすむ。すべてのポリゴン４０１について見えるか見えないかの前処理を行うよりも、本実施形態の近似法を用いた方が計算量を少なくすることができるのも、明らかである。
【００６９】
なお、かりに、実際には見えないはずのポリゴン４０１がＺバッファに登録されてしまったとしても、オブジェクト３０１が閉多面体であるときは、実際には見えないはずのポリゴン４０１は、それよりも視点４０２に近い場所にあるポリゴン４０１によって上書きされることとなる（ことがほぼ確実である）ので、レーシングゲームなどのようにリアルタイムで（プレイヤーがかならずしも注目しない）背景画像の生成に適用するには、十分な性能を有すると考えられる。
【００７０】
さて、上記の繰り返しステップＳ５０６〜ステップＳ５１０によって画面バッファに描画がされた後は（ステップＳ５０６；Ｙｅｓ）、当該画面バッファの内容を垂直同期信号周期でディスプレイ装置に転送することによって、生成された画像を表示して（ステップＳ５１１）、本処理を終了する。
【００７１】
このように、本実施形態によれば、計算処理対象となるポリゴンの数を減らすことによってできるだけ高速に３次元グラフィックスを生成することができるようになる。
【産業上の利用可能性】
【００７２】
以上説明したように、仮想３次元空間内に配置されポリゴンによって形成されるオブジェクトを、処理すべきポリゴンの数を減らして描画するのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができ、高速な３次元グラフィックス処理を必要とするレーシングゲームやアクションゲームなどを実現する場合のほか、各種の仮想体験を提供するバーチャルリアリティ技術等に適用することができる。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施形態の１つに係る画像処理装置が実現される典型的なゲーム装置の概要構成を示す説明図である。
【図２】本発明の実施形態の１つの画像処理装置の概要構成を示す模式図である。
【図３】オブジェクトと仮想多面体の関係を示す説明図である。
【図４】視点、視線の方向、仮想多面体の面、ポリゴンの関係を示す説明図である。
【図５】本実施形態の画像処理装置にて実行される画像処理の制御の流れを示すフローチャートである。
【符号の説明】
【００７４】
１００  ゲーム装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
２０１  画像処理装置
２０２  記憶部
２０３  判断部
２０４  生成部
３０１  オブジェクト
３０２  仮想多面体
４０１  ポリゴン
４０２  視点
４０３  視線
４０４  仮想多面体の面
４１１  ポリゴンの位置ベクトル
４１２  視線方向ベクトル
４１３  ポリゴンの外向き法線ベクトル
４２１  仮想多面体の面の位置ベクトル
４２３  仮想多面体の面の外向き法線ベクトル
【図１】
2006092177.tif 000003
【図２】
2006092177.tif 000004
【図３】
2006092177.tif 000005
【図４】
2006092177.tif 000006
【図５】
2006092177.tif 000007