(57)【特許請求の範囲】
【請求項１】
多角形および線を描画した３次元画像を表す表示画像データを作成する描画装置であって、
前記多角形または前記線を高さ方向から見た２次元形状を特定するオブジェクトデータと、前記多角形および前記線が描画される表面の３次元形状を表すメッシュデータとを格納する記憶部と、
前記オブジェクトデータおよび前記メッシュデータを前記記憶部から取得して保持するメモリと、
前記オブジェクトデータの各々が前記多角形および前記線のいずれを特定するものであるかに応じて描画処理を行い表示画像データを作成する描画処理部とを備え、
前記描画処理部は、
前記メモリが保持する、前記メッシュデータと前記多角形を特定するオブジェクトデータとに基づいて、当該多角形の２次元形状を前記表面上に写像することで多角形描画処理を行い、
前記メモリが保持する、前記メッシュデータと前記線を特定するオブジェクトデータとに基づいて、当該線の２次元形状を前記表面上に写像することで、当該線の３次元座標を算出するとともに、当該算出した３次元座標と、当該線を特定する前記オブジェクトデータに含まれる、当該線の少なくとも太さを特定する情報とに基づいて、線描画処理を行う、描画装置。
【請求項２】
前記メッシュデータは、３次元地図の基礎となる地表の形状を表す３次メッシュを特定し、
前記オブジェクトデータは、前記地表上に描かれる多角形および線の２次元形状を特定し、当該多角形は、少なくとも、前記３次元地図上の建造物および街区を表し、当該線は、少なくとも、前記３次元地図上の道路および線路を表す、請求項１に記載の描画装置。
【請求項３】
前記記憶部は、２次元画像を表す２次元画像データをさらに格納し、
前記メモリは、前記２次元画像データをさらに前記記憶部から取得して保持し、
前記描画処理部は、
前記メモリが保持する、前記多角形を特定するオブジェクトデータに、前記２次元画像データをブレンディングする処理を行ったのち、前記多角形描画処理を行って、    前記多角形および前記線が前記表面上に描かれ、かつ前記２次元画像が合成された３次元画像を表す表示画像データを作成する、請求項１に記載の描画装置。
【請求項４】
前記描画処理部は、前記算出した線の３次元座標を、高さが増加する方向に補正したのち、前記線描画処理を行うことを特徴とする、請求項１に記載の描画装置。
【請求項５】
プロセッサと、メモリとを有するコンピューターにおいて、多角形および線を描画した３次元画像を表す表示画像データを作成するために、当該プロセッサが少なくとも当該多角形および当該線を高さ方向から見た２次元形状を特定するオブジェクトデータと、当該多角形および当該線が描画される表面の３次元形状を表すメッシュデータとに基づいて描画を実行する描画方法であって、
前記プロセッサが、前記オブジェクトデータおよび前記メッシュデータを、前記メモリに保持させる取得ステップと、
前記プロセッサが、前記オブジェクトデータの各々が前記多角形および前記線のいずれを特定するものであるかに応じて描画処理を行い表示画像データを作成する描画処理ステップとを備え、
前記描画処理ステップは、
前記プロセッサが、前記メモリから、前記メッシュデータと前記多角形を特定するオブジェクトデータとを読み出し、当該読み出した前記メッシュデータと前記多角形を特定するオブジェクトデータとに基づいて、当該多角形の２次元形状を前記表面上に写像することで多角形描画処理を行う多角形描画ステップと、
前記プロセッサが、前記メモリから、前記メッシュデータと前記線を特定するオブジェクトデータとを読み出し、当該読み出した前記メッシュデータと前記線を特定するオブジェクトデータとに基づいて、当該線の２次元形状を前記表面上に写像することで、当該線の３次元座標を算出するとともに、当該算出した３次元座標と、当該線を特定する前記オブジェクトデータに含まれる、当該線の少なくとも太さを特定する情報とに基づいて、線描画処理を行う線描画ステップとを含む、描画方法。
【請求項６】
前記メッシュデータは、３次元地図の基礎となる地表の形状を表す３次メッシュを特定し、
前記オブジェクトデータは、前記地表上に描かれる多角形および線の２次元形状を特定し、当該多角形は、少なくとも、前記３次元地図上の建造物および街区を表し、当該線は、少なくとも、前記３次元地図上の道路および線路を表す、請求項５に記載の描画方法。
【請求項７】
前記取得ステップは、前記プロセッサが、２次元画像を表す２次元画像データを前記メモリに保持させる２次元画像データ取得ステップをさらに含み、
前記描画処理ステップは、
前記プロセッサが、前記多角形描画ステップの実行前に、前記メモリが保持する、前記２次元画像データと前記多角形を特定するオブジェクトデータとを読み出し、当該読み出した前記多角形を特定するオブジェクトデータに、当該読み出した前記２次元画像データをブレンディングして前記メモリに書き込む処理を行うブレンディングステップをさらに含み、
前記多角形および前記線が前記表面上に描かれ、かつ前記２次元画像が合成された３次元画像を表す表示画像データを作成する、請求項５に記載の描画方法。
【請求項８】
前記描画処理ステップは、前記プロセッサが、前記算出した線の３次元形状を、高さが増加する方向に補正したのち、前記線描画処理を行うことを特徴とする、請求項５に記載の描画方法。
【請求項９】
プロセッサと、メモリとを有するコンピューターにおいて、多角形および線を描画した３次元画像を表す表示画像データを作成するために、当該プロセッサが少なくとも当該多角形および当該線を高さ方向から見た２次元形状を特定するオブジェクトデータと、当該多角形および当該線が描画される表面の３次元形状を表すメッシュデータとに基づいて描画を実行するプログラムを記録したコンピューター読み取り可能な記録媒体であって、
前記プロセッサが、前記オブジェクトデータおよび前記メッシュデータを、前記メモリに保持させる取得ステップと、
前記プロセッサが、前記オブジェクトデータの各々が前記多角形および前記線のいずれを特定するものであるかに応じて描画処理を行い表示画像データを作成する描画処理ステップとを備え、
前記描画処理ステップは、
前記プロセッサが、前記メモリから、前記メッシュデータと前記多角形を特定するオブジェクトデータとを読み出し、当該読み出した前記メッシュデータと前記多角形を特定するオブジェクトデータとに基づいて、当該多角形の２次元形状を前記表面上に写像することで多角形描画処理を行う多角形描画ステップと、
前記プロセッサが、前記メモリから、前記メッシュデータと前記線を特定するオブジェクトデータとを読み出し、当該読み出した前記メッシュデータと前記線を特定するオブジェクトデータとに基づいて、当該線の２次元形状を前記表面上に写像することで、当該線の３次元形状を算出するとともに、当該算出した３次元形状と、当該線を特定する前記オブジェクトデータに含まれる、当該線の少なくとも太さを特定する情報とに基づいて、線描画処理を行う線描画ステップとを含む、プログラムを記録したコンピューター読み取り可能な記録媒体。
【請求項１０】
前記メッシュデータは、３次元地図の基礎となる地表の形状を表す３次メッシュを特定し、
前記オブジェクトデータは、前記地表上に描かれる多角形および線の２次元形状を特定し、当該多角形は、少なくとも、前記３次元地図上の建造物および街区を表し、当該線は、少なくとも、前記３次元地図上の道路および線路を表す、請求項９に記載のプログラムを記録した記録媒体。
【請求項１１】
前記取得ステップは、前記プロセッサが、２次元画像を表す２次元画像データを前記メモリに保持させる２次元画像データ取得ステップをさらに含み、
前記描画処理ステップは、
前記プロセッサが、前記多角形描画ステップの実行前に、前記メモリが保持する、前記２次元画像データと前記多角形を特定するオブジェクトデータとを読み出し、当該読み出した前記多角形を特定するオブジェクトデータに、当該読み出した前記２次元画像データをブレンディングして前記メモリに書き込む処理を行うブレンディングステップをさらに含み、
前記多角形および前記線が前記表面上に描かれ、かつ前記２次元画像が合成された３次元画像を表す表示画像データを作成する、請求項９に記載のプログラムを記録したコンピューター読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、描画装置に関し、より特定的には、多角形および線を含む３次元画像を表す表示画像データを作成する描画装置に関する。
【０００２】
【従来の技術】
上記のような描画装置は、カーナビゲーション装置やゲーム機器に応用されている。以下には、特開平９−１３８１３６号公報に開示された車載用ナビゲーション装置を、従来の描画装置の一例として説明する。本車載用ナビゲーション装置において、地図検索装置は、所定範囲に含まれる地図データを、地図記憶装置から読み出す。そして、演算処理装置は、読み出された地図データの４つの頂点を、入力装置により入力された視点および注視点座標に基づいて透視変換処理し、変換した座標を地図データに写像し、出力装置において写像後の３次元地図を表示させる。
【０００３】
【発明が解決しようとする課題】
上記車載用ナビゲーション装置において、出力装置から出力される３次元地図は、大略的に述べると、建造物または街区に代表される多角形状のオブジェクト、および道路または線路に代表される線状のオブジェクトからなる。かかる線状のオブジェクトは、多角形状のオブジェクトと比較すると、幅が大きく相違する。しかしながら、上記車載用ナビゲーション装置では、多角形および線をまとめて、地形データに写像しているため、表示された３次元地図においては、本来は同じ太さの線が、ある部分では太くなったり、他の部分では細くなったりするという問題点があった。以上のような問題点は、上記車載用ナビゲーション装置に限らず、多角形および線をまとめて写像することにより表示画像データを作成する装置において生じる。
【０００４】
それ故に、本発明の目的は、表示すべき線に歪みが生じない表示画像データを作成する描画装置を提供することである。
【０００５】
【課題を解決するための手段および発明の効果】
第１の発明は、多角形および線を描画した３次元画像を表す表示画像データを作成する描画装置であって、多角形または線を高さ方向から見た２次元形状を特定するオブジェクトデータと、多角形および線が描画される表面の３次元形状を表すメッシュデータとを格納する記憶部と、オブジェクトデータおよびメッシュデータを記憶部から取得して保持するメモリと、オブジェクトデータの各々が多角形および線のいずれを特定するものであるかに応じて描画処理を行い表示画像データを作成する描画処理部とを備える。描画処理部は、メモリが保持する、メッシュデータと多角形を特定するオブジェクトデータとに基づいて、当該多角形の２次元形状を表面上に写像することで多角形描画処理を行い、メモリが保持する、メッシュデータと線を特定するオブジェクトデータとに基づいて、当該線の２次元形状を表面上に写像することで、当該線の３次元座標を算出するとともに、当該算出した３次元座標と、当該線を特定するオブジェクトデータに含まれる、当該線の少なくとも太さを特定する情報とに基づいて、線描画処理を行う。
【０００６】
線は、表面上に写像されると、その細さゆえに歪みが目立ってしまう。そこで、第１の発明では、描画処理部は、線を特定するオブジェクトデータを使って、線を３次メッシュ上に直接描画する。その結果、描画処理部は、歪みを持たない線を表示可能な画像データを作成することができる。
【０００９】
第２の発明は第１の発明に従属しており、メッシュデータは、３次元地図の基礎となる地表の形状を表す３次メッシュを特定する。オブジェクトデータは、地表上に描かれる多角形および線の２次元形状を特定し、当該多角形は、少なくとも、３次元地図上の建造物および街区を表し、当該線は、少なくとも、３次元地図上の道路および線路を表す。
【００１０】
第２の発明では、描画処理部は、オブジェクトデータを使って、道路および線路を少なくとも表す線を、地表の表面上に直接描画する。その結果、描画処理部は、歪みを持たない道路および線路が３次元地図上に表された表示画像データを作成することができる。
【００１３】
第３の発明は第１の発明に従属しており、前記記憶部は、２次元画像を表す２次元画像データをさらに格納する。描画処理部は、メモリが保持する、多角形を特定するオブジェクトデータに、２次元画像データをブレンディングする処理を行ったのち、多角形描画処理を行って、多角形および線が表面上に描かれ、かつ２次元画像が合成された３次元画像を表す表示画像データを作成する。
【００１４】
第３の発明によれば、描画処理部は、ブレンディング処理を行った後に、表示画像データを作成する。これによって、表示画像データは、２次元画像が合成された３次元画像を表すことができ、より表現力を持つようになる。
【００１５】
第４の発明は第１の発明に従属しており、描画処理部は、算出した線の３次元座標を、高さが増加する方向に補正したのち、線描画処理を行う。また、これらの発明は、プロセッサとメモリとを有するコンピューターを、上述のような描画装置として動作させる方法、および、その方法をプロセッサに実行させるプログラムを格納したコンピューター読み取り可能な媒体にも向けられている。
【００２７】
【発明の実施の形態】
図１は、本発明の一実施形態に係る描画装置Ｕrend1 を組み込んだ端末装置Ｄterm1 の構成を示すブロック図である。図１の端末装置Ｄterm1 は、典型的には、ナビゲーション装置やゲーム機器のように、多角形上に線が描かれた３次元画像（典型的には３次元地図）を表す表示画像データＤdispを作成し表示する機器であって、描画装置Ｕrend1 、記憶装置Ｕstorおよび表示装置Ｕdispを備えている。描画装置Ｕrend1 は、記憶装置Ｕstorおよび表示装置Ｕdispと通信可能に接続されており、プロセッサ１、プログラムメモリ２およびワーキングエリア３を備えている。
プロセッサ１は、典型的には、ＣＰＵ(Central Processing Unit) またはＭＰＵ(Micro Processing Unit) から構成される。
プログラムメモリ２は、典型的には、ＲＯＭ(Read Only Memory)から構成されており、描画処理用のプログラム２１を格納している。
ワーキングエリア３は、典型的には、ＲＡＭ(Random Access Memory)から構成されており、図２に示すように、メッシュ用の一時記憶エリア３１、オブジェクト用の一時記憶エリア３２、多角形描画用の一時記憶エリア３３および３次元画像用の一時記憶エリア３４に分割される。
【００２８】
記憶装置Ｕstorは、典型的には、ハードディスクドライブ、コンパクトディスクドライブまたはＤＶＤドライブのように、少なくとも、内部に記録されたデータを読み出し可能な機器から構成されており、図３に示すように、メッシュデータベースＤＢmeshおよびオブジェクトデータベースＤＢobj を格納している。
【００２９】
メッシュデータベースＤＢmeshは、以下のようにして作成される。図４（ａ）に示すように、所定範囲に含まれる地表の形状を表す地形図が緯度方向（Ｘ軸方向）および経度方向（Ｙ軸方向）にそれぞれ所定間隔で区切られる。つまり、地形図は、まず、２次メッシュにより分割される。２次メッシュの交点は、緯度座標値Ｘmsおよび経度座標値Ｙmsの組み合わせで特定され、さらに、２次メッシュの各交点には、地表の３次元形状を特定するために標高値Ｚmsが割り当てられ、これによって、３次元空間における座標値（Ｘms，Ｙms，Ｚms）で特定される複数の交点Ｐmsからなる３次メッシュＭＳが構成される。本実施形態では、便宜上、交点Ｐmsの総数をｍ個（ｍは自然数）とし、３次メッシュＭＳは、交点Ｐms1 ，Ｐms2 ，…，Ｐmsm からなるとする。メッシュデータベースＤＢmeshは、図４（ｂ）に示すように、以上のような交点Ｐms1 〜Ｐmsm の３次元座標値からなるメッシュデータＤms1 〜Ｄmsm から構成される。また、図４（ａ）の３次メッシュＭＳにおいて、交点Ｐmsq 、Ｐmsr 、Ｐmss およびＰmst のように１つの網の目を構成する交点Ｐmsを直線で結んだ領域を３次元微小ブロックΔ3dと称する。
【００３０】
オブジェクトデータベースＤＢobj は、図５（ａ）に示すように、オブジェクトデータＤpol1〜Ｄpolnと、オブジェクトデータＤlin1〜Ｄliniとから構成される。各オブジェクトデータＤpol1〜Ｄpolnは、互いに異なる描画対象の多角形ＰＬの２次元平面上での形状を特定するために、図５（ｂ）に示すように、識別フラグＦpolyと、バウンダリボックスの情報Ｉbdr と、頂点数Ｎvtx と、色情報Ｉpcr と、頂点座標列Ｓcvx とを含む。
【００３１】
ここで、後に続くオブジェクトデータＤpol1〜Ｄpolnの説明を分かり易くするために、まず、多角形ＰＬの一例を、図５（ｃ）を参照して説明する。図５（ｃ）において、多角形ＰＬは、緯度方向をＸ軸方向とし、経度方向をＹ軸方向とした場合のＸＹ平面内に収容され、ｊ個（ｊは３以上の自然数）の頂点Ｐpl1 〜Ｐplj （図５（ｃ）には頂点Ｐpl1 、Ｐpl2 およびＰplj のみを図示）を順番に直線で結んだ形状を有する。各頂点Ｐpl1 〜Ｐplj は、ＸＹ平面における緯度方向の座標値Ｘplおよび経度方向の座標値Ｙplの組み合わせで特定される。その一例として、図５（ｃ）には、頂点Ｐpl1 の座標値（Ｘpl1 ，Ｙpl1 ）として示されている。また、図示は省略しているが、他の頂点Ｐpl2 〜Ｐplj の座標値は、（Ｘpl2 ，Ｙpl2 ）〜（Ｘplj ，Ｙplj ）である。以上のような多角形ＰＬは、典型的には、街区および建造物に代表される地図上の要素を表す。
【００３２】
識別フラグＦpolyは、これを含むオブジェクトデータＤpol が多角形ＰＬの２次元形状を特定していることを示す。便宜上、本実施形態では、識別フラグＦpolyは０であるとする。バウンダリボックスの情報Ｉbdr は、本発明には付随的な情報であるため、後で簡単に説明する。頂点数Ｎvtx は、多角形ＰＬの頂点Ｐplの総個数ｊである。色情報Ｉpcr は、多角形ＰＬの描画色を示す。頂点座標列Ｓcvx は、多角形ＰＬの頂点座標値（Ｘpl1 ，Ｙpl1 ）〜（Ｘplj ，Ｙplj ）からなる。頂点座標列Ｓcvx において、頂点座標値（Ｘpl1 ，Ｙpl1 ）〜（Ｘplj ，Ｙplj ）は、多角形ＰＬを一筆書きできる順番に並べられる。
【００３３】
バウンダリボックスの情報Ｉbdr は、図５（ｃ）に示すバウンダリボックスＢbdr （点線部分参照）を特定する。バウンダリボックスＢbdr は、典型的には、その各辺が多角形ＰＬに接し、かつ当該多角形ＰＬを内部に収容する長方形であり、ＸＹ平面上の頂点Ｐbdr1〜Ｐbdr4の２次元座標値からなる。
【００３４】
また、図５（ａ）において、各オブジェクトデータＤlin1〜Ｄliniは、互いに異なる描画対象の線ＬＮの２次元空間上での形状を表すために、図６（ａ）に示すように、識別フラグＦlineと、特徴点数Ｎchp と、色情報Ｉlcr と、特徴点座標列Ｓchp と、線種情報Ｔlineとを含む。
【００３５】
ここで、後に続くオブジェクトデータＤlin1〜Ｄliniの説明を分かり易くするために、まず、線ＬＮの一例を、図６（ｂ）を参照して説明する。図６（ｂ）において、線ＬＮは、緯度方向をＸ軸方向とし、経度方向をＹ軸方向とした場合のＸＹ平面内に含まれ、ｋ個（ｊは自然数）の特徴点Ｐln1 〜Ｐlnk （図６（ｂ）には特徴点Ｐln1 、Ｐln2 およびＰlnk のみが図示）を直線で順番につないだものである。各特徴点Ｐln1 〜Ｐlnk は、線ＬＮのＸＹ平面上での形状を定義するために必要な点を意味し、本実施形態では、少なくとも、線ＬＮの両端点と、当該線ＬＮにおける屈曲点とを含む。また、各特徴点Ｐln1 〜Ｐlnk は、ＸＹ平面における緯度方向の座標値Ｘlnおよび経度方向の座標値Ｙlnの組み合わせで特定される。その一例として、図６（ｂ）には、特徴点Ｐln1 の２次元座標値（Ｘln1 ，Ｙln1 ）が示されている。また、図示は省略しているが、他の特徴点Ｐln2 〜Ｐlnk の２次元座標値は、（Ｘln2 ，Ｙln2 ）〜（Ｘlnk ，Ｙlnk ）である。
【００３６】
識別フラグＦlineは、自身を含むオブジェクトデータＤlin が線ＬＮを特定している。便宜上、本実施形態では、識別フラグＦlineは１であるとする。特徴点数Ｎchp は、線ＬＮの特徴点Ｐlnの総個数ｋである。色情報Ｉlcr は、線ＬＮの描画色を示す。特徴点座標列Ｓchp は、線ＬＮの特徴点Ｐln1 〜Ｐlnk の２次元座標値（Ｘln1 ，Ｙln1 ）〜（Ｘlnk ，Ｙlnk ）からなる。特徴点座標列Ｓchp において、２次元座標値（Ｘln1 ，Ｙln1 ）〜（Ｘlnk ，Ｙlnk ）は、線ＬＮを一筆書きできる順番に並べられる。線種情報Ｔlineは、少なくとも、線ＬＮの種類（実線、点線等）および太さを示す。
【００３７】
また、図１において、表示装置Ｕdispは、後で説明する描画処理によりワーキングエリア３に作成される表示画像データＤdispに従って表示処理を行って、自身の画面上に、当該表示画像データＤdispにより表される３次元画像（本実施形態では３次元地図）を表示する。
【００３８】
以上の構成の端末装置Ｄterm1 において、描画装置Ｕrend1 のプロセッサ１は、プログラム２１に従って描画処理を行って、記憶装置Ｕstor内のメッシュデータＤms、オブジェクトデータＤpol およびＤlin を基礎として、表示画像データＤdispをワーキングエリア３に作成する。以下、端末装置Ｄterm1 の動作について、描画装置Ｕrend1 の動作を中心に、より詳しく説明する。
【００３９】
ここで、図７および図８は、プログラム２１に記述されたプロセッサ１の処理手順を示すメインフローチャートである。図７において、プロセッサ１は、プログラム２１の実行開始直後に、予め定められた範囲β1 に属するメッシュデータＤmsを記憶装置Ｕstorから一時記憶エリア３１に転送する（ステップＳ３１）。
【００４０】
ここで、範囲β1 に属するメッシュデータＤmsについて説明する。図９（ａ）に示すように、緯度方向（Ｘ軸方向）および経度方向（Ｙ軸方向）からなるＸＹ平面上において、基準点Ｐref （Ｘref ，Ｙref ）が予め定められている。基準点Ｐref は、端末装置Ｄterm1 のユーザにより指定される地点であったり、プロセッサ１の演算により算出される地点である。さらに、緯度座標値Ｘref からＸ軸方向に沿う距離Ｘ1 、および経度座標値Ｙref からＹ軸方向に沿う距離Ｙ1 が予め定められている。範囲β1 （点線で囲まれた領域）に属するメッシュデータＤmsとは、緯度座標値Ｘref から緯度座標値Ｘref ＋Ｘ1 に含まれる緯度座標値Ｘmsを有し、かつ経度座標値Ｙref から経度座標値Ｙref ＋Ｙ1 に含まれる経度座標値Ｙmsを有する。以上の範囲β1 は、表示装置Ｕdispにおいて表示される３次元地図の範囲でもある。
【００４１】
なお、説明の簡素化の観点から、ステップＳ３１では、範囲β1 に属するメッシュデータＤmsが転送されるとして説明するが、３次元地図の表示を高速化する観点から、ステップＳ３１において、範囲β1 よりも広い範囲に属するメッシュデータＤmsが、記憶装置Ｕstorと比較して高速なＲＡＭで構成される一時記憶エリア３１に転送されてもよい。
【００４２】
次に、プロセッサ１は、範囲β1 に属するオブジェクトデータＤpol およびＤlin を記憶装置Ｕstorから一時記憶エリア３２に転送する（ステップＳ３２）。なお、説明の簡素化のため、ステップＳ３２では、範囲β1 のオブジェクトデータＤpol およびＤlin が転送されるとして説明しているが、範囲β1 よりも広範囲のオブジェクトデータＤpol およびＤlin が転送されてもよい。
【００４３】
ステップＳ３２の後、プロセッサ１は、一時記憶エリア３２内のオブジェクトデータＤpol と、オブジェクトデータＤlin との総個数Ｎobj を計数および保持し、さらに、カウンタ（図示せず）の値Ｃobj を初期値０に設定する（ステップＳ３３）。ここで、後で説明するステップＳ３５では、オブジェクトデータＤpol およびＤlin の中から、いずれか１つが選択される。値Ｃobj は、ステップＳ３５で選択されたオブジェクトデータＤpol またはＤlinの個数を示す。
なお、以上のステップＳ３１、Ｓ３２およびＳ３３は、当該ステップＳ３３がステップＳ３２の後に行われるという条件さえ満足すれば、上述の順番以外で行われてもよい。
【００４４】
次に、プロセッサ１は、カウンタの値Ｃobj が個数Ｎobj 以下であるか否かを判断する（ステップＳ３４）。プロセッサ１は、Ｃobj ≦Ｎobj でなければ、一時記憶エリア３２内のすべてのオブジェクトデータＤpol およびＤlin がステップＳ３５で選択されたとみなして、後述するステップＳ４０（図８参照）を実行する。一方、プロセッサ１は、Ｃobj ≦Ｎobj であれば、一時記憶エリア３２内に未選択のオブジェクトデータＤpol またはＤlin が残っているとみなして、ステップＳ３５を実行する。
【００４５】
プロセッサ１は、一時記憶エリア３２から１つのオブジェクトデータＤpol またはＤlin を選択し（ステップＳ３５）、その後、今回選択したものが多角形ＰＬを特定しているか、線ＬＮを特定しているかを判断する（ステップＳ３６）。より具体的には、プロセッサ１は、選択したオブジェクトデータＤpol またはＤlin 内の識別フラグＦpolyまたはＦlineの値をチェックする。プロセッサ１は、識別フラグＦpolyまたはＦlineの値に応じて、オブジェクトデータＤpol を選択したか、オブジェクトデータＤlin を選択したかを判断する。本実施形態では、識別フラグＦpolyの値が０であれば、プロセッサ１は、ステップＳ３５でオブジェクトデータＤpol を選択したと判断する。逆に、識別フラグＦlineの値が１であれば、ステップＳ３５でオブジェクトデータＤlin を選択したと判断する。
【００４６】
ステップＳ３６において、今回選択したものがオブジェクトデータＤlin であると判断された場合、後述するステップＳ３９が実行される。一方、プロセッサ１は、ステップＳ３５でオブジェクトデータＤpol を選択したと判断した場合には、当該オブジェクトデータＤpol を基礎として、多角形の描画処理を行う（ステップＳ３７）。ここで、一時記憶エリア３３は、範囲β1 で特定されるＸＹ平面を表しており、プロセッサ１は、ステップＳ３７において、図９（ｂ）に示すように、一時記憶エリア３３上に、多角形ＰＬを表すビットイメージε1 である中間画像データＤim1 を作成する。さらに、プロセッサ１は、必要に応じて、中間画像データＤim1 に、基準点Ｐref （Ｘref ，Ｙref ）、距離Ｘ1 、および距離Ｙ1 の値を付加する。
【００４７】
次に、プロセッサ１は、ステップＳ３５で選択したオブジェクトデータＤpol を一時記憶エリア３２から消去し（ステップＳ３８）、さらに、カウンタの値Ｃobj を１だけインクリメントする（ステップＳ３９）。その後、プロセッサ１は、ステップＳ３４に戻る。
【００４８】
以上のステップＳ３４〜Ｓ３９を繰り返すことで、プロセッサ１は、一時記憶エリア３２内の各オブジェクトデータＤpol だけに描画処理を行って、多角形ＰＬを表すビットイメージε1 である中間画像データＤim1 を一時記憶エリア３３に作成する（ステップＳ３７）。これによって、ステップＳ３４において値Ｃobj ≦個数Ｎobj を満足しないと判断された時点では、一時記憶エリア３３上には、範囲β1 に属する全ての多角形ＰＬを表すビットイメージε1 である中間画像データＤim1 が作成される。また、この時点で、一時記憶エリア３２から、全てのオブジェクトデータＤpol が消去されており、当該エリア３２上にはオブジェクトデータＤlin だけが残っている。
【００４９】
さて、ステップＳ３４で値Ｃobj ≦個数Ｎobj を満足しないと判断された場合、プロセッサ１は、ステップＳ３１で一時記憶エリア３１に転送されたメッシュデータＤmsを基礎として、メッシュの描画処理を行う（ステップＳ４０）。このとき、プロセッサ１は、メッシュデータＤmsに対して透視変換処理を行う。これによって、プロセッサ１は、図１０（ａ）に示すように、一時記憶エリア３４上に、予め定められた視点（または注視点）γ（図９（ａ）参照）から３次メッシュＭＳを見たときの３次メッシュＭＳ' を表す中間画像データＤim2 を作成する。ここで、３次メッシュＭＳ’は、３次メッシュＭＳが有する複数の３次元微小ブロックΔ3dを視点γから見たときの複数の３次元微小ブロックΔ3d' からなる。図１０（ａ）には、その一例として、４つの頂点Ｐmsq 〜Ｐmst を有する３次元微小ブロックΔ3dを透視変換したものが示されている。
【００５０】
次に、プロセッサ１は、一時記憶エリア３３内の中間画像データＤim1 と、一時記憶エリア３４内の中間画像データＤim2 とを基礎として、テクスチャマッピングに代表されるマッピング処理を行う（ステップＳ４１）。
【００５１】
ステップＳ４１の具体的な処理を説明すると、プロセッサ１は、まず、一時記憶エリア３１のメッシュデータＤmsから、より具体的には、３次メッシュＭＳの各３次元微小ブロックΔ3dの各頂点座標値（Ｘms，Ｙms，Ｚms）から、２次元微小ブロックΔ2dを算出する。例えば、図９（ａ）においてドットを付けた３次元微小ブロックΔ3dは、頂点Ｐmsq （Ｘmsq ，Ｙmsq ，Ｚmsq ）、頂点Ｐmsr （Ｘmsr ，Ｙmsq ，Ｚmsr ）、頂点Ｐmss （Ｘmsq ，Ｙmss ，Ｚmss ）、および頂点Ｐmst （Ｘmsr ，Ｙmss ，Ｚmst ）を有すると仮定する。この仮定下において、プロセッサ１は、頂点Ｐmsq 〜Ｐmst のＺ方向座標値（つまり標高値）を０に置換し、これによって、３次元微小ブロックΔ3dを、上記標高値Ｚmsが０のＸＹ平面に投影した４つの頂点ＰΔ2d1〜ＰΔ2d4からなる２次元微小ブロックΔ2d（斜線を付けた部分参照）を算出する。頂点ＰΔ2d1は２次元座標値（Ｘmsq ，Ｙmsq）、頂点ＰΔ2d2は２次元座標値（Ｘmsr ，Ｙmsq ）、頂点ＰΔ2d3は２次元座標値（Ｘmsq ，Ｙmss ）、さらに、頂点ＰΔ2d4は２次元座標値（Ｘmsr ，Ｙmss）を有することとなる。
【００５２】
次に、プロセッサ１は、頂点ＰΔ2d1〜頂点ＰΔ2d4の２次元座標値を基礎として所定領域Δ2d' を算出する。ここで、所定領域Δ2d' は、ビットイメージε1 （図９（ｂ）参照）において、２次元微小ブロックΔ2dに対応する部分的な領域である。所定領域Δ2d' を特定する４つの頂点ＰΔ2d1' 、ＰΔ2d2' 、ＰΔ2d3'およびＰΔ2d4' が２次元座標値（Ｘmsq"，Ｙmsq"）、（Ｘmsr"，Ｙmsq"）、（Ｘmsq"，Ｙmss"）および（Ｘmsr"，Ｙmss"）を有するとすると、Ｘmsq"＝Ｘmsq −Ｘrefであり、Ｙmsq"＝Ｙmsq −Ｙref であり、Ｘmsr"＝Ｘmsr −Ｘref であり、Ｙmss"＝Ｙmss −Ｙref である。
【００５３】
次に、プロセッサ１は、中間画像データＤim1 において、算出した領域Δ2d' に属する部分的なビットイメージε1 を、ステップＳ４０で得られた３次メッシュＭＳ’の３次元微小ブロックΔ3dに写像する。例えば、図１０（ａ）に示す３次メッシュＭＳ’には、３次元微小ブロックΔ3d' が示されている。前述したように、３次元微小ブロックΔ3d' は、４つの頂点Ｐmsq 〜Ｐmst を有する３次元微小ブロックΔ3dを透視変換したものである。３次元微小ブロックΔ3d' の頂点Ｐmsq'〜Ｐmst'には、所定領域Δ２d' の頂点ＰΔ2d1' 〜ＰΔ2d4' が対応するので、プロセッサ１は、図１０（ｂ）に示すように、当該頂点ＰΔ2d1' 〜ＰΔ2d4' が頂点Ｐmsq'〜Ｐmst'に対応するように、領域Δ2d' に属する部分的なビットイメージε1 を３次元微小ブロックΔ3dに写像（マッピング）する。
【００５４】
プロセッサ１は、以上の処理を３次メッシュＭＳ'のすべての３次元微小ブロックΔ3d' に対して行い、これによって、多角形ＰＬが３次メッシュＭＳ'上に写像された３次元画像を表す中間画像データＤim3 が、一時記憶エリア３４に作成される。なお、以下の説明において、３次メッシュＭＳ'上に写像された多角形ＰＬを、多角形ＰＬ'と称する。
【００５５】
次に、プロセッサ１は、一時記憶エリア３２内のオブジェクトデータＤlin の総個数Ｎlin を計数および保持し、さらに、カウンタ（図示せず）の値Ｃlin を初期値０に設定する（ステップＳ４２）。ここで、カウンタは、後で説明するステップＳ４４で選択されたオブジェクトデータＤlin の個数を計数する。
【００５６】
次に、プロセッサ１は、カウンタの値Ｃlin が個数Ｎlin 以下であるか否かを判断する（ステップＳ４３）。プロセッサ１は、Ｃlin ≦Ｎlin でなければ、一時記憶エリア３２内のすべてのオブジェクトデータＤlin がステップＳ４４で選択されたとみなして、後述するステップＳ５０を実行する。一方、プロセッサ１は、Ｃlin ≦Ｎlin であれば、一時記憶エリア３２内に未選択のオブジェクトデータＤlin が残っているとみなして、ステップＳ４４を実行する。
【００５７】
プロセッサ１は、一時記憶エリア３２内のオブジェクトデータＤlin から１つを選択し（ステップＳ４４）、その後、所定の条件を満たすメッシュデータＤmsを一時記憶エリア３１から取得する（ステップＳ４５）。ステップＳ４５において、プロセッサ１は、まず、ステップＳ４４で選択したオブジェクトデータＤlin の特徴点座標列Ｓchp から、緯度方向（Ｘ軸方向）の最小座標値Ｘmin および最大座標値Ｘmax と、経度方向（Ｙ軸方向）の最小座標値Ｙmin および最大座標値Ｙmax とを得る。そして、プロセッサ１は、（Ｘmin ，Ｙmin）および（Ｘmax，Ｙmax ）で規定される矩形領域に、その緯度方向座標値Ｘmsおよび経度方向座標値Ｙmsが含まれるメッシュデータＤmsを一時記憶エリア３１から取得する。
【００５８】
次に、プロセッサ１は、ステップＳ４５で取得したメッシュデータＤmsを使って、ステップＳ４４で選択したオブジェクトデータＤlin の各特徴点Ｐlnに標高値ｈlnを与える（ステップＳ４６）。以下、各標高値ｈlnの算出方法の具体例を、図１１（ａ）を参照して説明する。図１１（ａ）に示すように、ステップＳ４４で選択したオブジェクトデータＤlin は、２次元座標値（Ｘln，Ｙln）を持つ特徴点Ｐlnを含む。また、特徴点Ｐlnは、説明の便宜のため、図９（ａ）に示す２次元微小ブロックΔ2dに含まれると仮定する。２次元微小ブロックΔ2dに対応する３次元微小ブロックΔ3dは、頂点Ｐmsq （Ｘmsq ，Ｙmsq ，Ｚmsq ）、頂点Ｐmsr （Ｘmsr ，Ｙmsq ，Ｚmsr ）、頂点Ｐmss （Ｘmsq ，Ｙmss ，Ｚmss ）、および頂点Ｐmst （Ｘmsr ，Ｙmss ，Ｚmst ）を有する。
【００５９】
この仮定下では、特徴点Ｐlnに与えられる標高値ｈlnは以下のようにして求められる。まず、ｈ' およびｈ" を次式（１）および（２）で表す。
ｈ' ＝（Ｚmsr −Ｚmsq ）×（Ｘln−Ｘmsq ）／（Ｘmsr −Ｘmsq ）＋Ｚmsq
…（１）
ｈ" ＝（Ｚmst −Ｚmss ）×（Ｘln−Ｘmsp ）／（Ｘmsr −Ｘmsq ）＋Ｚmss
…（２）
上式（１）および（２）を使うと、標高値ｈln2 は、次式（３）で表される。
ｈln2 ＝（ｈ" −ｈ' ）×（Ｙln−Ｙmsq ）／（Ｙmss −Ｙmsq ）＋ｈ'
…（３）
【００６０】
プロセッサ１は、他の特徴点Ｐlnに対しても、上述と同様の方法により算出される標高値ｈlnを与える。以上のステップＳ４６により、プロセッサ１は、ステップＳ４４で選択したオブジェクトデータＤlin つまり線ＬＮの特徴点Ｐln1 〜Ｐlnk の３次元座標値（Ｘln1 ，Ｙln1 ，ｈln1 ），（Ｘln2 ，Ｙln2 ，ｈln2 ），…，（Ｘlnk ，Ｙlnk ，ｈlnk ）を得る。
【００６１】
次に、プロセッサ１は、上記線ＬＮの３次元座標値Ｐln1 （Ｘln1 ，Ｙln1 ，ｈln1 ）〜Ｐlnk （Ｘlnk ，Ｙlnk ，ｈlnk ）と、そのオブジェクトデータＤlin の色情報Ｉlcr および線種情報Ｔlineを基礎として、一時記憶エリア３４上で、線ＬＮの描画処理を行う（ステップＳ４７）。より具体的には、プロセッサ１は、一時記憶エリア３４上で、３次元座標値で表された線ＬＮの特徴点Ｐlnを、色情報Ｉlcr が示す色、ならびに線種情報Ｔlineが示す太さおよび線種で、３次元座標値Ｐln1 〜Ｐlnk を順番に結んでいく。
【００６２】
なお、プロセッサ１は、上式（３）に従って、各特徴点Ｐlnの標高値ｈlnを算出するが、算出された各標高値ｈlnに、予め定められた補正値Δh を加えた後に、３次元座標値Ｐln1 〜Ｐlnk を順番に結び、線ＬＮを３次メッシュＭＳ’の表面から浮かせるような描画処理を行ってもよい。
【００６３】
また、上記のように３次元座標値Ｐln1 〜Ｐlnk を順番に結ぶだけでは、線ＬＮは、３次メッシュＭＳ’の表面上に沿わない場合が多い。そのため、プロセッサ１は、線ＬＮが３次メッシュＭＳ’の表面に沿うような処理を行うことがより好ましい。
【００６４】
さらに、ステップＳ４７で、プロセッサ１は、上記線ＬＮの３次元座標値Ｐln1 （Ｘln1 ，Ｙln1 ，ｈln1 ）〜Ｐlnk （Ｘlnk ，Ｙlnk ，ｈlnk ）に対して透視変換処理を行って、上述と同じ視点γから線ＬＮをみたときの線ＬＮ’を得る。これによって、プロセッサ１は、図１１（ｂ）に示すように、一時記憶エリア３４上に、３次元微小ブロックΔ3d' 上に写像された多角形ＰＬ’上に線ＬＮ’が合成された３次元画像を表す表示画像データＤdispを作成する。本実施形態では、表示画像データＤdispは、範囲β1 に属する多角形ＰＬ’（街区、建造物）および線ＬＮ’（道路、線路）が３次メッシュＭＳ’（地表）上に描画された３次元地図を表す。
【００６５】
次に、プロセッサ１は、ステップＳ４４で選択したオブジェクトデータＤlin を一時記憶エリア３２から消去し（ステップＳ４８）、さらに、カウンタの値Ｃlin を１だけインクリメントする（ステップＳ４９）。その後、プロセッサ１は、ステップＳ４３に戻る。
【００６６】
以上のステップＳ４３〜Ｓ４９を繰り返すことで、プロセッサ１は、一時記憶エリア３２内の各オブジェクトデータＤlin に描画処理を行って、表示画像データＤdispを一時記憶エリア３４に作成する（ステップＳ４７）。これによって、ステップＳ４３において値Ｃlin ≦個数Ｎlin を満足しないと判断された時点で、一時記憶エリア３４上には、全ての線ＬＮが描画された３次元地図を表す表示画像データＤdispが完成している。また、この時点で、一時記憶エリア３２上からはオブジェクトデータＤlin が全て消去されている。
【００６７】
ステップＳ４３で値Ｃlin ≦個数Ｎlin を満足しないと判断された場合、プロセッサ１は、現在一時記憶エリア３４に格納されている表示画像データＤdispを表示装置Ｕdispに転送する（ステップＳ５０）。表示装置Ｕdispは、受信した表示画像データＤdispに従って表示処理を行って、自身の画面上に、３次元画像（本実施形態では３次元地図）を表示する。
【００６８】
以上説明したように、描画装置Ｕrend1 は、オブジェクトデータＤpol から、３次元の多角形ＰＬを直接描くのではなく、一時記憶エリア３３上に２次元のビットイメージを作成してから３次メッシュＭＳ' に写像することにより、３次元の多角形ＰＬを描画する。それに対して、描画装置Ｕrend1 は、オブジェクトデータＤlin の各特徴点Ｐlnに対して標高値ｈlnを与えて、多角形ＰＬが描画された３次メッシュＭＳ' 上に、線種情報Ｔlineおよび色情報Ｉlcr に従って線ＬＮを直接描いていく。
【００６９】
以上のように、多角形ＰＬと線ＬＮとの描画処理を異ならせるのは、以下の観点による。つまり、多角形ＰＬは、線ＬＮよりも幅が大きいため、３次メッシュＭＳ' に写像されたとしても、当該多角形ＰＬ’には歪みは目立たない。それに対して、もし、線ＬＮが３次メッシュＭＳ' 上に写像されると、その細さゆえに、線ＬＮ’には歪みが目立ってしまう。この観点から、描画装置Ｕrend1 においては、線ＬＮは、３次メッシュＭＳ' 上に写像されずに、３次元座標値で表された各特徴点Ｐln1 〜Ｐlnk を、直線で順番に線種情報Ｔlineが示す太さで結ぶことにより描かれる。その結果、線ＬＮには歪みが生じず、端末装置Ｄterm1 は、従来よりも線ＬＮがより現実的な３次元地図を表す表示画像データＤdispを作成することができる。
【００７０】
さらに、多角形ＰＬと線ＬＮとの描画処理を異ならせることにより、他の技術的効果も得られる。例えば、多角形ＰＬは、地図の構成要素（街区や建造物）となる場合、単純な形状ではなく、頂点数Ｎvtx が多い複雑な形状を有する。かかる場合、多角形ＰＬを写像せずに、オブジェクトデータＤpol を基礎として３次元形状を直接描画してしまうと、座標変換の回数が多くなり、プロセッサ１に処理負担を強いる。このような観点から、描画装置Ｕrend1 では、プロセッサ１は、オブジェクトデータＤpol から２次元のビットイメージε1 を作成し、当該ビットイメージを３次メッシュＭＳ' 上に写像する。これによって、プロセッサ１の処理負担を軽くしている。
【００７１】
なお、以上の実施形態において、３次メッシュＭＳにおいて、３次元微小ブロックΔ3dは、４つの交点により特定されるとして説明した。しかし、これに限らず、３次元微小ブロックΔ3dは、３つ以上であれば、いくつの交点により特定されてもよい。
【００７２】
また、以上の実施形態において、プロセッサ１は、街区等を表す多角形ＰＬと、道路等を表す線ＬＮとを描画するとして説明した。しかし、３次元地図上には、他にも、ランドマークの名称や地名が配置される。端末装置Ｄterm1 においては、これらランドマークの名称や地名に代表される文字を表す文字データを記憶装置Ｕstorに格納しておき、プロセッサ１は、範囲β1 に属する多角形ＰＬ（街区、建造物）および線ＬＮ（道路、線路）が３次メッシュＭＳ’上に描画された３次元地図上に、上記文字を合成した表示画像データＤdispを作成してもよい。これによって、より分かり易い３次元地図を表す表示画像データＤdispを作成することができる。ここで注意を要するのは、３次元地図の見やすさの観点から、プロセッサ１は、文字データに対して座標変換処理を行わず、予め定められた位置に文字を当該３次元地図上に合成することが好ましい。
【００７３】
また、以上の実施形態において、プロセッサ１は、作成した表示画像データＤdispを表示装置Ｕdispに転送するとして説明した。しかし、これに加えて、プロセッサ１は、作成した表示画像データＤdispを、ワーキングエリア３において一時記憶エリア３１〜３４以外の他の記憶エリアに退避させておいてもよい。これにより、プロセッサ１は、なんらかの理由で表示画像データＤdispが後で必要になった場合に、再度、図７および図８の処理手順を実行せずに、ワーキングエリア３の他の記憶エリアにアクセスするだけで、表示画像データＤdispを得ることができる。
【００７４】
また、第１の実施形態では、説明を明確にするために、端末装置Ｄterm1 は３次元地図を表示するとして説明した。しかし、端末装置Ｄterm1 は、３次元地図に限らず、例えば、建造物、人体、動物に代表される３次元物体の描画処理にも簡単に応用することができる。具体的には、メッシュデータＤmsが３次元物体の表面形状を特定し、オブジェクトデータＤpol が当該３次元物体の表面上にマッピングされる多角形の２次元形状を特定し、さらに、オブジェクトデータＤlin が当該３次元物体の表面上に描かれる線の２次元形状を特定する。描画装置Ｕrend1 は、以上のようなメッシュデータＤms、ならびにオブジェクトデータＤpol およびＤlin を基礎として、図７および図８に示す処理手順に従って、表示画像データＤdispを作成する。
【００７５】
また、第１の実施形態では、プロセッサ１は、端末装置Ｄterm1 が有する記憶装置ＵstorからメッシュデータＤms、ならびにオブジェクトデータＤpol およびＤlin をワーキングエリア３に転送するとして説明した。しかし、メッシュデータＤms、ならびにオブジェクトデータＤpol およびＤlin が、インターネット、ＬＡＮ(Local Area Network)に代表されるネットワークを通じて、描画装置Ｕrend1 の遠隔に設置されたサーバに格納されていてもよい。この場合、描画装置Ｕrend1 は、ネットワークを通じてサーバからメッシュデータＤms、ならびにオブジェクトデータＤpol およびＤlin を取得した後に、図７および図８に示す処理手順に従って、表示画像データＤdispを作成する。以上から明らかなように、記憶装置Ｕstorは、描画装置Ｕrend1 に必須の構成要素ではなく、付随的な構成要素である。
【００７６】
また、第１の実施形態では、プロセッサ１は、端末装置Ｄterm1 が有する表示装置Ｕdispに表示画像データＤdispを転送するとして説明した。しかし、表示画像データＤdispは、上記のようなネットワークを通じて、描画装置Ｕrend1 から、その遠隔に設置された表示装置に転送されてもよい。つまり、表示装置Ｕdispは、描画装置Ｕrend1 に必須の構成要素ではなく、付随的な構成要素である。
【００７７】
図１２は、本発明の第２の実施形態に係る描画装置Ｕrend2 を組み込んだ端末装置Ｄterm2 の構成を示すブロック図である。図１２の端末装置Ｄterm2 は、図１の端末装置Ｄterm1 と比較すると、図１３に示すようにワーキングエリア３が後述する２次元画像用の一時記憶エリア３５および合成画像用の一時記憶エリア３６を有する点、図１４に示すように記憶装置ＵstorがメッシュデータベースＤＢmeshおよびオブジェクトデータベースＤＢobj に加えて２次元画像データベースＤＢ2dpiをさらに格納している点と、ならびにプログラムメモリ２がプログラム２１に代えてプログラム２２を格納している点で相違する。これら３点以外に相違点はないので、端末装置Ｄterm2 において、端末装置Ｄterm1 の構成に相当するものには、同一の参照符号を付け、その説明を省略する。
【００７８】
２次元画像データベースＤＢ2dpiは、図１４（ａ）に示すように、記憶装置Ｕstorに格納されており、以下のようにして作成される。まず、少なくとも、３次メッシュＭＳ（第１の実施形態参照）のカバーエリアに含まれる地表の様子を上空から撮影した航空写真が準備される。この航空写真は、描画処理の便宜上、緯度方向（Ｘ軸方向）および経度方向（Ｙ軸方向）にそれぞれ所定間隔で、第１の実施形態で説明した２次メッシュ単位で分割される。２次元画像データベースＤＢ2dpiは、図１４（ｂ）に示すように、各２次メッシュに属する航空写真を表すｍ個の２次元画像データＤ2dpiから構成される。ここで、各２次元画像データＤ2dpiは、ビットイメージであり、図１４（ｃ）に示すように、航空写真を構成する各ピクセルの値Ｖpxl1、Ｖpxl2、…が順番に並んでいる。この点で、２次元画像データＤ2dpiはオブジェクトデータＤpol およびＤlin と顕著に相違する。
【００７９】
以上の構成の端末装置Ｄterm2 において、描画装置Ｕrend2 のプロセッサ１は、プログラム２２に従って描画処理を行って、記憶装置Ｕstor内のメッシュデータＤms、オブジェクトデータＤpol およびＤlin 、ならびに２次元画像データＤ2dpiを基礎として、表示画像データＤdispをワーキングエリア３に作成する。以下、端末装置Ｄterm2 の動作について、描画装置Ｕrend2 の動作を中心に、より詳しく説明する。
【００８０】
ここで、図１５は、プログラム２２に記述されたプロセッサ１の描画処理手順の前半部分を示すメインフローチャートである。図１５の処理手順は、図７の処理手順と比較すると、ステップＳ５１およびＳ５２をさらに備える点で相違する。それ以外に相違点はないので、図１５において、図７のステップに相当するものには同一のステップ番号を付け、その説明を省略する。また、プロセッサ１の処理手順の後半部分については、図８と同様であるので、その図示を省略する。
【００８１】
図１５において、プロセッサ１は、プログラム２２の実行開始直後に、予め定められた範囲β1 （第１の実施形態参照）に属する２次元画像データＤ2dpiを記憶装置Ｕstorから一時記憶エリア３５に転送する（ステップＳ５１）。なお、本実施形態では、説明の都合上、ステップＳ５１は、プログラム２２の実行開始直後に行われる。しかし、一時記憶エリア３５の２次元画像データＤ2dpiは、後で説明するステップＳ５２で使用されるので、ステップＳ５１はステップＳ５２の実行以前であればいつ行われてもよい。
【００８２】
ステップＳ５１の後、プロセッサ１は、ステップＳ３１〜Ｓ３９を行う。ここで、第１の実施形態でも説明したように、ステップＳ３４において値Ｃobj ≦個数Ｎobj を満足しないと判断された時点で、一時記憶エリア３３上には、中間画像データＤim1 が作成される。また、値Ｃobj ≦個数Ｎobj を満足しないと判断された場合、プロセッサ１は、中間画像データＤim1 と、ステップＳ５１で一時記憶エリア３５に転送された２次元画像データＤ2dpiとを基礎として、αブレンディングを行って（ステップＳ５２）、一時記憶エリア３６上に、中間画像データＤim1 が表す多角形ＰＬの２次元画像および２次元画像データＤ2dpiが表す航空写真を合成した合成画像データＤbrd を作成する。ここで、本実施形態では、中間画像データＤim1 および２次元画像データＤ2dpiにおいて、縦方向（つまり経度方向）のピクセル数Ｉhei および横方向（緯度方向）のピクセル数Ｉwid は互いに同じに調整されているとする。
【００８３】
ここで、図１６は、ステップＳ５２の詳細な処理手順を示すフローチャートである。図１６において、プロセッサ１は、カウンタ（図示せず）の値Ｃhei を初期値０に設定する（ステップＳ６１）。ここで、値Ｃhei は、中間画像データＤim1 および２次元画像データＤ2dpiにおいて、基準点Ｐref を起算点とした縦方向（つまり経度方向）のピクセル番号である。
【００８４】
次に、プロセッサ１は、カウンタの値Ｃhei がピクセル数Ｉhei 以上であるか否かを判断する（ステップＳ６２）。プロセッサ１は、Ｃhei ≧Ｉhei であれば、中間画像データＤim1 および２次元画像データＤ2dpiの全ピクセルを処理したとみなして、αブレンディング（ステップＳ５２）を終了し、ステップＳ４０（図８参照）を実行する。一方、プロセッサ１は、Ｃhei ≧Ｉhei でなければ、未処理のピクセルが残っているとみなして、ステップＳ６３を実行する。
【００８５】
次に、プロセッサ１は、カウンタ（図示せず）の値Ｃwid を初期値０に設定する（ステップＳ６３）。ここで、値Ｃwid は、中間画像データＤim1 および２次元画像データＤ2dpiにおいて、基準点Ｐref を起算点とした横方向（つまり緯度方向）のピクセル番号である。
【００８６】
次に、プロセッサ１は、カウンタの値Ｃwid がピクセル数Ｉwid 以上であるか否かを判断する（ステップＳ６４）。プロセッサ１は、Ｃwid ≧Ｉwid であれば、中間画像データＤim1 および２次元画像データＤ2dpiの横方向１列分のピクセルをすべて処理したとみなして、ステップＳ７０を実行する。一方、プロセッサ１は、Ｃwid ≧Ｉwid でなければ、中間画像データＤim1 および２次元画像データＤ2dpiの横方向１列分において未処理のピクセルが残っているとみなして、ステップＳ６５を実行する。
【００８７】
次に、プロセッサ１は、値ＶRGB_SRC1として、２次元画像データＤ2dpiにおいて、両カウンタの現在の値Ｃhei および値Ｃwid により一意に特定されるピクセルの値Ｖpxl を選択する（ステップＳ６５）。
【００８８】
さらに、プロセッサ１は、値ＶRGB_SRC2として、中間画像データＤim1 において、両カウンタの現在の値Ｃhei および値Ｃwid により一意に特定されるピクセルの値を選択する（ステップＳ６６）。なお、ステップＳ６５およびＳ６６の順番は入れ替わってもよい。
【００８９】
次に、プロセッサ１は、次式（４）で表される値ＶRGB_DESTを算出する（ステップＳ６７）。
ＶRGB_DEST＝ＶRGB_SRC1×α＋ＶRGB_SRC2×（１−α）…（４）
次に、プロセッサ１は、一時記憶エリア３６において、両カウンタの現在の値Ｃhei および値Ｃwid により一意に特定されるピクセルの値として、ステップＳ６７で算出した値ＶRGB_DESTを設定する（ステップＳ６８）。
【００９０】
次に、プロセッサ１は、カウンタの値Ｃwid を１だけインクリメントして（ステップＳ６９）、ステップＳ６３に戻る。以上のステップＳ６４〜Ｓ６９を繰り返すことで、プロセッサ１は、一時記憶エリア３６内に、合成画像データＤbrendの横方向１列分の各ピクセルの値を決定していく。そして、ステップＳ６４においてＣwid ≧Ｉwid を満足すると判断された時点で、一時記憶エリア３６上には、合成画像データＤbrd の横方向１列分の全ピクセルの値が設定されている。
【００９１】
プロセッサ１は、ステップＳ６４でＣwid ≧Ｉwid を満足すると判断した場合、カウンタの値Ｃhei を１だけインクリメントして（ステップＳ７０）、ステップＳ６２に戻る。以上のステップＳ６２〜Ｓ７０を繰り返すことで、プロセッサ１は、一時記憶エリア３６内に、合成画像データＤbrd の横方向１列分の各ピクセルの値を決定すると、次の横方向１列分の各ピクセルの値を算出していく。そして、ステップＳ６２においてＣhei ≧Ｉhei を満足すると判断された時点で、一時記憶エリア３６上には、合成画像データＤbrd におけるＩhei ×Ｉwid 個のピクセルの値が設定されていることになる。以上のようにして、プロセッサ１は、一時記憶エリア３６上に、図１７に示すように、多角形ＰＬと航空写真ＰＩＣとを合成した合成画像データＤbrd を作成し、αブレンディングの終了後、図８のステップＳ４０以降の処理を行う。
【００９２】
ステップＳ４０以降の処理については、第１の実施形態において既に説明しているので、その説明を省略するが、ステップＳ４１においては、一時記憶エリア３６内の合成画像データＤbrd と、一時記憶エリア３４内の中間画像データＤim2 とを基礎として、テクスチャマッピングが行われ、これによって、中間画像データＤim3 が作成される点には注意を要する。
【００９３】
以上説明したように、端末装置Ｄterm2 は、中間画像データＤim1 および２次元画像データＤ2dpiに基づいてαブレンディングを行うので、表示画像データＤdispが表す３次元地図上には、多角形ＰＬおよび線ＬＮだけでなく、実際の航空写真ＰＩＣが合成表示されることとなる。これによって、表示装置Ｕdispは、より表現力が豊かな３次元地図を表示することができる。
【００９４】
なお、以上の第２の実施形態では、ステップＳ５１において、範囲β1 に属する航空写真を表す２次元画像データＤ2dpiが一時記憶エリア３５に転送されていた。また、ステップＳ３１では、同じ範囲β1 に属する３次メッシュＭＳを特定するメッシュデータＤmsが一時記憶エリア３１に転送されていた。さらに、ステップＳ３２では、同じ範囲β1 に属する多角形ＰＬおよび線ＬＮを特定するオブジェクトデータＤpol およびＤlin が一時記憶エリア３２に転送されていた。しかし、上記に限らず、ステップＳ５１において、範囲β2 に属する航空写真を表す２次元画像データＤ2dpiが一時記憶エリア３５に転送され、ステップＳ３２において、当該範囲β2 とは異なる範囲β3 に属する多角形ＰＬおよび線ＬＮを特定するオブジェクトデータＤpol およびＤlin が一時記憶エリア３２に転送されるようにしてもよい。ここで、範囲β2 およびβ3 はそれぞれ範囲β1 の一部分であり、かつ、範囲β2 およびβ3 を合わせた時に範囲β1 を構成する。
【００９５】
また、第２の実施形態では、中間画像データＤim1 および２次元画像データＤ2dpiにおいて、縦方向（つまり経度方向）のピクセル数Ｉhei および横方向（緯度方向）のピクセル数Ｉwid は互いに同じに調整されていると仮定して説明した。しかしながら、一般的なナビゲーション装置では、ユーザの希望に応じて、表示される３次元地図のサイズを変更することができる。かかるサイズ変更を行うには、プロセッサ１は、図示しない入力装置から、ユーザが希望する表示サイズを特定する縦方向の大きさＸH および横方向の大きさＹV を取得する。プロセッサ１は、図１５のステップＳ３７においてスケーリング処理を行って、縦方向の大きさＸH および横方向の大きさＹV を有する中間画像データＤim1 を作成する。さらに、プロセッサ１は、中間画像データＤim1 に、基準点Ｐref （Ｘref ，Ｙref ）、距離Ｘ1 およびＹ1 、ならびに大きさＸH およびＹV の値を付加する。そして、プロセッサ１は、図１５のステップＳ５２のαブレンディングに先立って、中間画像データＤim1 に付加されている距離Ｘ1 およびＹ1 ならびに大きさＸH およびＹV を基礎としてスケーリング率Ｒscale を算出する。そして、プロセッサ１は、一時記憶エリア３５内の２次元画像データＤ2dpiに対して、算出したスケーリング率Ｒscale でスケーリング処理を行った後に、αブレンディングを行う。
【００９６】
また、第２の実施形態において、２次元画像データＤ2dpiは航空写真を表すとして説明したが、第１の実施形態からも明らかなように、端末装置Ｄterm2 は、３次元地図以外の３次元物体を表す表示画像データＤdispを作成することができる。したがって、２次元画像データＤ2dpiは、航空写真に限らず、建造物、人体、動物をカメラで撮影した画像を表していてもよい。
【００９７】
また、第２の実施形態においては、αブレンディングにより合成画像データＤbrd が作成されていたが、他のブレンディング処理により、合成画像データＤbrd が作成されてもよい。
【図面の簡単な説明】
【図１】描画装置Ｕrend1 の構成を示すブロック図である。
【図２】一時記憶エリア３１〜３４を示す図である。
【図３】メッシュデータベースＤＢmeshおよびオブジェクトデータベースＤＢobj を示す図である。
【図４】メッシュデータベースＤＢmeshを説明するための図である。
【図５】オブジェクトデータＤpol およびＤlin を示す図である。
【図６】オブジェクトデータＤlin を説明するための図である。
【図７】図１のプロセッサ１の描画処理手順の前半部分を示すフローチャートである。
【図８】プロセッサ１の描画処理手順の後半部分を示すフローチャートである。
【図９】範囲β1 に属するメッシュデータＤmsおよび中間画像データＤim1 を説明するための図である。
【図１０】中間画像データＤim2 および写像処理を説明するための図である。
【図１１】各標高値ｈlnの算出方法および表示画像データＤdispを説明するための図である。
【図１２】描画装置Ｕrend2 の構成を示すブロック図である。
【図１３】一時記憶エリア３５および３６を示す図である。
【図１４】２次元画像データベースＤＢ2dpiを説明するための図である。
【図１５】図１２のプロセッサ１の描画処理手順の前半部分を示すフローチャートである。
【図１６】αブレンディング処理（ステップＳ５２）の詳細な処理手順を示すフローチャートである。
【図１７】合成画像データＤbrd を説明するための図である。
【符号の説明】
Ｕrend1 ，Ｕrend2 …描画装置
１…プロセッサ
２…プログラムメモリ
３…ワーキングエリア
Ｄpol ，Ｄlin …オブジェクトデータ
Ｄms…メッシュデータ
Ｄdisp…表示画像データ
Ｄ2dpi…２次元画像データ
Ｄim1 〜Ｄim3 …中間画像データ
Ｄbrd …合成画像データ
【図１】
0004541537.tif 000002
【図２】
0004541537.tif 000003
【図３】
0004541537.tif 000004
【図４】
0004541537.tif 000005
【図５】
0004541537.tif 000006
【図６】
0004541537.tif 000007
【図７】
0004541537.tif 000008
【図８】
0004541537.tif 000009
【図９】
0004541537.tif 000010
【図１０】
0004541537.tif 000011
【図１１】
0004541537.tif 000012
【図１２】
0004541537.tif 000013
【図１３】
0004541537.tif 000014
【図１４】
0004541537.tif 000015
【図１５】
0004541537.tif 000016
【図１６】
0004541537.tif 000017
【図１７】
0004541537.tif 000018