(57)【要約】【課題】  ３次元地図を表示する際に視点から遠方で生じるＺファイティングを回避する。【解決手段】  地図データベース１３０には、地物の３次元ポリゴンの他、海・湖などの水系および地表面のポリゴンを格納する。地図データベース１３０は、レベルＬＶａ〜ＬＶｃのように詳細度異なる複数レベルの地図データを格納する。３次元地図を表示する際には、水系を地表面に対してオフセットした上で、視点に遠い遠景領域を粗いレベルの地図データを用いて描画した後、デプスバッファを一旦クリアし、改めて近景領域を詳細なレベルの地図データを用いて描画する。オフセット量は、遠景領域で大きく、近景領域で小さくする。  このように遠景領域でオフセット量を大きくすることで、視点から遠方で生じるＺファイティングを回避することができる。【選択図】  図２
2014186569.tif 000002
【特許請求の範囲】
【請求項１】
３次元地図を表示する３次元地図表示システムであって、
地形および地物の３次元形状を表す３次元ポリゴンデータを格納した地図データベースと、
略水平面を表す第１のポリゴンと第２のポリゴンとが重なる領域において、第１および第２のポリゴンを、両者に高低差が生じるよう、高さ方向に相対的に移動させるオフセット処理を行うオフセット設定部と、
前記３次元ポリゴンデータおよび前記オフセット設定部による処理が施されたポリゴンを用いて、指定された視点位置、視線方向からみた前記３次元地図を描画する描画制御部とを備え、
前記オフセット設定部は、前記透視投影の視点から遠方の地点では、視点に近い地点よりも前記高低差が大きくなるよう前記移動を行う３次元地図表示システム。
【請求項２】
請求項１記載の３次元地図表示システムであって、
前記地図データベースは、前記３次元ポリゴンデータを所定の地理的サイズのメッシュに分割して格納しており、
前記オフセット設定部は、前記メッシュごとに前記移動を行う３次元地図表示システム。
【請求項３】
請求項２記載の３次元表示システムであって、
前記オフセット設定部は、前記視点位置から遠い遠景領域から視点位置に近い近景領域に向けて、メッシュの境界で高さ方向の移動量を小さくしながら前記オフセット処理を行い、
前記描画制御部は、
前記高さ方向の移動量が大きい領域から順に、同じ移動量でオフセット処理が行われた領域ごとに前記地図を描画し、
新たな領域は、既に描かれた地図上の各点の表示深さの値にかかわらず、上書きによって描画を行う
３次元地図表示システム。
【請求項４】
請求項３記載の３次元表示システムであって、
前記地図データベースは、地図の詳細度が異なる複数のレベルにおいて、レベルごとに、前記３次元地図を表示するための地図データを格納しており、
前記描画制御部は、前記視点位置から遠い遠景領域ほど地図の詳細度が粗いレベルの地図データを用い、視点位置に近い近景領域ほど地図の詳細度が細かいレベルの地図データを用いて、複数のレベルの地図データを併用して地図を描画し、
前記オフセット設定部は、前記各レベルの描画に先立って、該レベルごとに前記移動を行う
３次元地図表示システム。
【請求項５】
請求項１〜４いずれか記載の３次元地図表示システムであって、
前記地図データベースは、地表面を表す３次元ポリゴンデータと、該地表面の上側に全体または部分的に被せて描かれる水系を表す３次元ポリゴンデータとが含まれており、
前記オフセット設定部は、前記水系を前記地表面に対して相対的に高く移動させる
３次元地図表示システム。
【請求項６】
コンピュータによって３次元地図を表示する３次元地図表示方法であって、
前記コンピュータは、地形および地物の３次元形状を表す３次元ポリゴンデータを地図データベースを有しており
前記コンピュータが実行するステップとして、
略水平面を表す第１のポリゴンと第２のポリゴンとが重なる領域において、第１および第２のポリゴンを、両者に高低差が生じるよう、高さ方向に相対的に移動させるオフセット処理を行うステップと、
前記３次元ポリゴンデータおよび前記オフセット処理が施されたポリゴンを用いて、指定された視点位置、視線方向からみた前記３次元地図を描画するステップとを備え、
前記オフセット処理を行うステップは、前記透視投影の視点から遠方の地点では、視点に近い地点よりも前記高低差が大きくなるよう前記移動を行う３次元地図表示方法。
【請求項７】
地形および地物の３次元形状を表す３次元ポリゴンデータを格納した地図データベースを備えたコンピュータによって３次元地図を表示するためのコンピュータプログラムであって、
略水平面を表す第１のポリゴンと第２のポリゴンとが重なる領域において、第１および第２のポリゴンを、両者に高低差が生じるよう、高さ方向に相対的に移動させるオフセット処理を行う機能と、
前記３次元ポリゴンデータおよび前記オフセット処理が施されたポリゴンを用いて、指定された視点位置、視線方向からみた前記３次元地図を描画する機能とを前記コンピュータ実現させるコンピュータプログラムであり、
前記オフセット処理は、前記透視投影の視点から遠方の地点では、視点に近い地点よりも前記高低差が大きくなるよう前記移動を行う処理であるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元地図を表示する３次元地図表示システムに関する。
【背景技術】
【０００２】
ナビゲーション装置やコンピュータの画面等に用いられる電子地図では、建物などの地物を３次元的に表現した３次元地図が用いられることがある。３次元地図は、通常、３次元モデルを透視投影などで３次元的に描くことによって表示される。
３次元地図には、次に示す通り、地表面および海などの水系も３次元ポリゴンで表される。
特許文献１は、メッシュ状に用意された標高データから地表面、海面のポリゴンを生成して表示する技術を開示する。
特許文献２は、地表面のポリゴンを生成すると共に地表面以外の部分も地表面と同じ背景色で塗りつぶした上で、その上に水系のポリゴンを表示することによって、地表と水系の境界の不整合を目立たなくさせる技術を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３０６０７３号公報
【特許文献２】特開２００６−２５９０３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
透視投影によって３次元地図を表示する際には、奥行き関係を判断し、隠線処理が施される。しかし、地表面と水系との境界部分において、双方のポリゴンが重なって描かれる領域では、ほぼ同じ高さに２つのポリゴンが存在することになるため、奥行き関係の判断が不安定になるＺファイティングと呼ばれる現象が生じ、画像のちらつきなどの支障が生じることがある。かかる現象は、地表面と水系に限らず、同じ高さのポリゴンが重なって描かれる領域において共通に生じる課題である。本発明は、かかる課題に鑑み、３次元地図を表示する際に、複数のポリゴンが重なって描かれる領域におけるＺファイティングを回避することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、
３次元地図を表示する３次元地図表示システムであって、
地形および地物の３次元形状を表す３次元ポリゴンデータを格納した地図データベースと、
略水平面を表す第１のポリゴンと第２のポリゴンとが重なる領域において、第１および第２のポリゴンを、両者に高低差が生じるよう、高さ方向に相対的に移動させるオフセット処理を行うオフセット設定部と、
前記３次元ポリゴンデータおよび前記オフセット設定部による処理が施されたポリゴンを用いて、指定された視点位置、視線方向からみた前記３次元地図を描画する描画制御部とを備え、
前記オフセット設定部は、前記透視投影の視点から遠方の地点では、視点に近い地点よりも前記高低差が大きくなるよう前記移動を行う３次元地図表示システムとして構成することができる。
【０００６】
本発明によれば、第１のポリゴンと第２のポリゴンを相対的に移動させることによって、Ｚファイティングの発生を抑制することができる。また、オフセット量を、視点から遠方の地点で大きくすることによって、以下に示す通り、遠方で生じるＺファイティングを効果的に抑制することが可能となる。
図１はオフセットによる効果を示す説明図である。図中の３次元地図では、３次元ポリゴンとして生成されている地表ポリゴンの上に、一部重ねて海ポリゴンが描かれている。いずれも略水平面を表すポリゴンであるため、本発明における第１および第２のポリゴンに相当する。そして、地表ポリゴンと海ポリゴンとの境界部分では、奥行き判定が不安定となるＺファイティングが生じ得る。
これを回避するため、海ポリゴンを全体的にＨａ（ｍ）だけ上方にオフセットする。領域Ａにおける様子を図の下方に示した。図示するように、海ポリゴンをオフセットすることによって、地表ポリゴンと海ポリゴンとの間には、現実には存在しない隙間が生じることになるが、両者の高さの差違が明確になるため、Ｚファイティングを回避することができる。上述の隙間は、上方の視点から見下ろす視線方向で描く限り問題とはならない。
しかし、透視投影で描く場合、領域Ｂのように視点から遠方の地域では、縦横の表示スケールが非常に小さくなり、高さＨａ（ｍ）のオフセットも、表示時には実質的にほとんど差がなくなってしまうことがある。Ｚファイティングは、表示画面における奥行き判定を行うものであるから、遠方の領域ＢではＺファイティングを回避できなくなることが生じ得る。
これを回避するため、逆に、遠方の領域ＢでＺファイティングを回避できる程度の大きなオフセットを与えようとすると、オフセットの大きさは数百メートルに至ることもある。このように大きなオフセット量では、手前の領域Ａでは、オフセットによる隙間が視認され、表示内容が不正確なものとなってしまう。
本発明では、上述した問題点を回避するため、手前側ではオフセット量を小さく、遠方ではオフセット量を大きくするのである。こうすることによって、手前側で適切な表示内容を実現しつつ、遠方におけるＺファイティングも回避することができる。
図１では、地表ポリゴンと海ポリゴンの例を示したが、本発明が、これらのポリゴンに限らず適用可能である。
【０００７】
本発明において、上述したオフセット量の変化は、種々の態様で与えることができる。例えば、視点からの距離に応じてオフセット量を関数またはマップで与えるようにしてもよい。
また別の態様として、
前記地図データベースは、前記３次元ポリゴンデータを所定の地理的サイズのメッシュに分割して格納しており、
前記オフセット設定部は、前記メッシュごとに前記移動を行うものとしてもよい。
こうすることにより、各地点のオフセット量を計算する負荷を軽減することができる。メッシュごとのオフセット量は、視点からの距離に応じて予めテーブル等で定めておけばよい。
【０００８】
メッシュごとにオフセット量を与える場合には、オフセット量が階段状に変化するため、その境界部分に隙間が生じる。かかる隙間が視認されないようにするため、例えば、描画の際の背景色をオフセットするポリゴンと同一色としておく方法が考えられる。また、段差の部分を覆う垂直の仮想的なポリゴンを生成してもよい。
【０００９】
また、別の態様として、次の態様をとってもよい。
即ち、前記オフセット設定部は、前記視点位置から遠い遠景領域から視点位置に近い近景領域に向けて、メッシュの境界で高さ方向の移動量を小さくしながら前記オフセット処理を行い、
前記描画制御部は、
前記高さ方向の移動量が大きい領域から順に、同じ移動量でオフセット処理が行われた領域ごとに前記地図を描画し、
新たな領域は、既に描かれた地図上の各点の表示深さの値にかかわらず、上書きによって描画を行うものとしてもよい。
【００１０】
この態様では、移動量が大きい領域、即ち遠景領域から近景領域に順に描画を行うのであるが、この際、視点に近い側を描く際には、既に描かれた地図上との間で表示深さの判定を行わない。つまり、近い側を描く際には、遠景領域は２次元的な背景として扱われることになる。従って、遠景領域の方が、オフセット量が大きい場合であっても、視点位置から視認できる隙間が生じることを回避できる。
表示深さの判定を行わない方法としては、例えば、遠景領域を描画した後、Ｚバッファをクリアする方法をとることができる。
【００１１】
メッシュ単位でオフセット量を変化させる場合、本発明では、以下に示すように、複数種類の地図データを併用するようにしてもよい。
即ち、前記地図データベースは、地図の詳細度が異なる複数のレベルにおいて、レベルごとに、前記３次元地図を表示するための地図データを格納する。
そして、前記描画制御部は、前記視点位置から遠い遠景領域ほど地図の詳細度が粗いレベルの地図データを用い、視点位置に近い近景領域ほど地図の詳細度が細かいレベルの地図データを用いて、複数のレベルの地図データを併用して地図を描画し、
前記オフセット設定部は、前記各レベルの描画に先立って、該レベルごとに前記移動を行うのである。
各レベルの地図データはメッシュに区分して格納されていてよい。
【００１２】
かかる態様では、レベルごとにオフセット処理を行うが、各レベルの地図データはメッシュで区分されているため、メッシュ単位でオフセット処理を行うのと同様、オフセットに伴う計算負荷を軽減できる利点がある。
また、遠景領域から順にオフセット量を変化させながら描画を行うことにより、オフセット量が階段状に変化することに伴う隙間の発生を回避することができる。
このように複数種類の地図データを併用する場合、メッシュの大きさも詳細度に応じて異なるから、描画に用いる地図データのレベルを切り換える境界において、異なるレベルの地図データが重なって描画されることになる。本発明では、上述の通り、レベルを変えた後は、既に描かれている地図との関係では表示深さの判定は行わないから、このように異なるレベルの地図データが重なっている領域でもＺファイティングを回避することができる。
さらに、このように遠景領域は粗いレベルの地図データを用いることにより、地図の描画に要する処理負荷を軽減することも可能となる。
【００１３】
本発明は、種々のポリゴンに適用可能であるが、
前記地図データベースは、地表面を表す３次元ポリゴンデータと、該地表面の上側に全体または部分的に被せて描かれる水系を表す３次元ポリゴンデータとが含まれており、
前記オフセット設定部は、前記水系を前記地表面に対して相対的に高く移動させるものとしてもよい。
図１で例示した態様がこれに相当する。地表面および水系は、３次元地図において、視点に近い領域から遠方の領域まで広範囲に描かれることが多く、Ｚファイティングの問題が生じやすい。従って、本発明は、これらのポリゴンに対し、特に有用性が高い。
【００１４】
本発明においては、上述した種々の特徴を必ずしも全て備えている必要はなく、適宜、その一部を省略したり、組み合わせたりして構成してもよい。
本発明は、その他、コンピュータによって３次元地図を表示する３次元地図表示方法として構成してもよいし、かかる表示をコンピュータに実行させるためのコンピュータプログラムとして構成してもよい。また、かかるコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体として構成してもよい。
【図面の簡単な説明】
【００１５】
【図１】オフセットによる効果を示す説明図である。
【図２】３次元地図表示システムの構成を示す説明図である。
【図３】地図データベースのセル構造を示す説明図である。
【図４】地図データベースのデータ構造を示す説明図である。
【図５】地図表示処理のフローチャート（１）である。
【図６】地図表示処理のフローチャート（２）である。
【図７】デプスバッファクリアの効果を示す説明図である。
【図８】変形例としての地図表示処理のフローチャートである。
【発明を実施するための形態】
【実施例１】
【００１６】
本発明につき、パーソナルコンピュータを利用して、そのディスプレイ上に３次元地図を表示する３次元地図表示システムとして構成した実施例を説明する。本発明は、経路探索・経路案内装置など、他の装置の３次元地図表示機能として組み込む態様で適用することも可能である。
【００１７】
Ａ．システム構成：
図２は、３次元地図表示システム１００の構成を示す説明図である。３次元地図表示システムは、パーソナルコンピュータを用いて構成されており、ディスプレイ上に、ユーザからの指示に従って３次元地図を表示するシステムである。
本実施例では、パーソナルコンピュータを利用したスタンドアロンのシステムを例示するが、地図データベース１３０等をサーバに格納し、サーバとパーソナルコンピュータとをネットワークで接続したシステムとして構成してもよい。また地図を表示する端末としては、パーソナルコンピュータだけでなく、タブレット端末、携帯電話、スマートフォンなど種々の端末を利用可能である。
【００１８】
３次元地図表示システムは、図示する種々の機能ブロックを有している。これらの機能ブロックは、それぞれの機能を実現するソフトウェアをインストールすることによって構成することができるが、その一部または全部をハードウェア的に構成してもよい。
地図データベース１３０は、３次元地図の表示するために地物の３次元形状等を表した３次元モデル等を含む地図データを格納している。本実施例では、図中に示すように地図データは、複数のレベルＬＶａ〜ＬＶｃに分けて格納されている。いずれも所定のサイズのメッシュに区切って管理されている。レベルＬＶｃは、最も詳細度が高いデータ、即ち、細い道路や、小さな地物までデータを格納している。レベルＬＶｃは、必然的にデータ容量が大きくなるため、比較的小さなメッシュに区切って管理されている。レベルＬＶｂは、レベルＬＶｃよりも、若干、詳細度が低くなっている。レベルＬＶｂでは、細かな道路等のデータは省略され、標準的な道路、建物等のデータが格納されている。レベルＬＶｂのメッシュサイズは、レベルＬＶｃよりも大きく設定されている。レベルＬＶａは、さらに詳細度を低くしたデータである。高速道路などのような主要な道路、およびランドマークとなるような主要な建物等に絞ってデータが格納されている。レベルＬＶａのメッシュサイズは、レベルＬＶｂよりもさらに大きなサイズに設定されている。
地図データは、このようにレベルに分けて格納されているが、地物のデータが各レベルのいずれかに選択的に格納されている訳ではない。例えば、ランドマークのような主要な建物は、レベルＬＶａ〜ＬＶｃの全レベルに共通して格納されることになる。つまり、各レベルのデータは、いずれを用いても、そのレベルに応じた詳細度で地図を表示可能なものとなっている。
本実施例では、地図データは、メッシュをさらに細分したセルで管理されている。このセルの構造については後述する。
【００１９】
コマンド入力部１１０は、３次元地図表示に関するユーザからの指示を受け付ける。例えば、地図を表示するための視点位置、視線方向、表示範囲（スケール）などの指示が含まれる。
地図データ読出部１２０は、地図データベース１３０から、地図データを読み出す機能を奏する。レベル・メッシュ設定部１２１は、ユーザから指定された視点位置等に応じて、地図データベース１３０のうちのどのレベル、どのメッシュのデータを使用するかを決定する。セル設定部１２２は、レベル・メッシュ設定部１２１によって設定されたメッシュ内において、どのセルに格納されたデータを用いるかを決定する。地図データ読出部１２０は、こうして設定されたメッシュ、セルから地図表示のためのデータを読み込むのである。
本実施例では、１枚の３次元地図を表示するために、複数のレベルの地図データを併用する。地図データ併用の制御については、後述する。
【００２０】
表示制御部１４０は、地図データベース１３０の地図データを用いて３次元地図を表示する。
本実施例では、地図を視点位置からの距離に応じて、複数の領域に分け、領域ごとに異なるレベルの地図データを用いて、以下の方法で表示を行う。
表示／非表示設定部１４１は、視点位置からの距離に応じて地図データに格納された各地物の表示／非表示を決定する。
オフセット設定部１４２は、オフセット量の設定を行う。オフセット処理とは、海を表すポリゴンを地図データベース１３０に格納されているときの値よりも高さ方向に移動させる処理を言い、オフセット量とは、その移動量を言う。オフセット量は、視点から遠い側から近い側に向けて小さくなるよう、領域ごとに異なる値を設定する。設定方法については後述する。
デプスバッファクリア部１４３は、地図描画の際に隠線処理のために用いられたデプスバッファの値を、領域の描画が終わる度に、初期化する。この処理により、描画された領域は、３次元的な意味を有さない、一枚の２次元的な背景画像を構成することになる。
描画制御部１４４は、視点から遠い側の領域から順に、領域ごとに地図データを用いて透視投影により地図を描画する。各領域を描画する際には、デプスバッファを用いて隠線処理が行われる。次の領域は、上述の通り、デプスバッファを初期化した後に描画を行う。この領域を描く際には、表示深さが新たにデプスバッファに記憶され、これに基づいて隠線処理が施されることになる。ただし、先に描画した領域は、ただの背景画像としての扱いとなっているから、新たな領域は、既存の領域の画像上に上書きされることとなる。
【００２１】
Ｂ．地図データベースの構造：
次に、本実施例における地図データベースの構造について説明する。先に説明した通り、本実施例においては、詳細度の異なるレベルに分けて地図データが用意されており（図２参照）、各レベルにおいては、地図データは、所定の地理的サイズからなるメッシュ単位で格納されている。そして、さらにメッシュ内において、格納される地物のサイズおよびデータ量に基づいて、メッシュを細分化したセルを定義し、セル単位でデータを格納しているのである。以下では、まず、セルの概念を説明し、次に、データの構造について説明する。
【００２２】
図３は、地図データベースのセル構造を示す説明図である。左側に地図データを構成するメッシュの例を示した。
メッシュ内には、種々の地物の形状等を表す地物データが格納されている。図中の例では、池、道路、鉄道、複数の建物の地物データが格納されていることになる。そして、各地物は、２次元的なサイズが異なる。例えば、道路は、メッシュ内のほぼ全域にわたって存在する「長い」地物である。このような２次元的なサイズが大きい地物をここでは大地物と呼ぶ。池や鉄道は、メッシュ内の比較的広い領域を占めるサイズが中程度の地物（以下、「中地物」と呼ぶ）である。大地物、中地物という区分は、地物の属性によって一義的に定まるものではなく、メッシュ内の各地物が占める実際の大きさに基づいて定め得るものである。例えば、図３に示したよりも大きな池が存在する場合には、その池を大地物として扱っても構わない。
このような大地物、中地物以外の２次元的なサイズが比較的小さい建物等は小地物となる。
【００２３】
本実施例では、上述の通り、２次元的なサイズに応じて地物を区分した後、それぞれの地物を管理する単位となるセルを設定する。
大地物の場合は、右側に示すようにメッシュと同サイズのセル１（Ｃ１）となる。中地物の場合は、メッシュよりも小さい２つのセル２（Ｃ２１，Ｃ２２）を設定する。セルＣ２１、Ｃ２２を合わせたサイズのセルを用いるものとしてもよい。セル２を２つのセルＣ２１、Ｃ２２に分割するか否かは、各セルに含まれるデータ量が予め設定された上限値を超えるか否かに基づいて判断する。池および鉄道の地物データの総データ量が、セル２に設定された上限値を超える場合には、セルＣ２１、Ｃ２２に分割して管理することになるし、上限値以下に収まる場合には、セルＣ２１、Ｃ２２を合わせた単一のセルとして管理すればよい。このように、セルＣ２１、Ｃ２２等の形状は、各セルに含まれる地物の大きさと、各セル内の地物のデータ量に基づいて定まる。
小地物の場合も同様に、２つのセル３（Ｃ３１、Ｃ３２）に分けて建物の地物データが管理される。セルＣ３１、Ｃ３２の形状も、各セル内に含まれる地物の形状、およびデータ量に基づいて定められる。図３において、セル３が一つの建物ごとに設定されているのではなく、セルＣ３１には２つの建物、セルＣ３２には４つの建物が格納されているのは、これらの複数の建物を格納した状態でも、各セルのデータ量の上限値以下であることを表している。
【００２４】
左側の図中に示した一点鎖線はセル２を示し、破線はセル３を示している。このように１枚のメッシュ内の地物データは、複数のセルに分割されて管理されることになる。図３の例では、大地物、中地物、小地物という３種類に分類し、それぞれに対してセルを設定したが、大地物、小地物という２種類に分類した上で、小地物についてのみセルを設定するようにしてもよい。
本実施例のセルは、メッシュ内の地物を、単に地理的な区分に基づいて細分化したものではなく、地物自体を大地物、小地物等に分類した上で、分類ごとに設定されるものである。従って、いずれか一つの分類、例えば、小地物を格納するセル３のみを読み込んでも、地図を表示できる訳ではない。適正な地図を表示するためには、セル１〜３の全てを読み込む必要がある。しかし、地図の表示範囲によっては、セルＣ３１のデータさえあれば足り、セルＣ３２のデータは表示範囲外という場合、本実施例によれば、セルＣ３２の読込みを省略できるため、地図表示の処理負荷を軽減することが可能となる。
【００２５】
図４は、地図データベースのデータ構造を示す説明図である。
地図データベースは、図２で示した通り、複数のレベルに分けて管理されている。
各レベルのデータは、所定の地理的サイズの複数のメッシュで構成される。
そして、各メッシュは、図３で示したように、大地物を格納するセル１、中地物を格納するセル２、小地物を格納するセル３に分けられている。セル２は省略してもよいし、４段階以上のセル構造を採用してもよい。
セル１を例に、各地物に対するデータ構造を例示した。各地物に対しては、図示する種々のデータが格納されている。
「地物ＩＤ」は、地物に固有の識別情報である。
「名称」は、地物の名称である。
「位置」は、地物の代表点位置である。例えば、２次元的な形状の重心の座標値を用いることができる。
「形状」は、地物の２次元または３次元形状を表すポリゴンデータである。
「種別」は、道路、建物など、地物の種別を表す情報である。
「表示レベル」は、地図を表示する際の視点からの距離に応じて地物の表示／非表示を制御するための情報である。本実施例では、図中に示すように、表示レベルを０〜３の整数値で示すものとした。表示レベル「０」は、その地物が、視点から比較的近い距離Ｄ１の範囲にある場合に表示されることを表している。同様に、表示レベル「１」は視点から距離Ｄ２までの範囲、表示レベル「２」は視点から距離Ｄ３までの範囲にある場合に表示されることを表している。表示レベル「３」は距離の上限値が設定されていないため、視点からの距離にかかわらず表示されることになる。
表示範囲の例を、図中にハッチングで示した。地物に対して、表示レベル「２」が設定されていると、距離Ｄ３よりも短い範囲、即ち図中にハッチングで示した範囲で表示されることとなる。
【００２６】
Ｃ．地図表示処理：
地図を表示するための処理について説明する。これは、図２に示した表示制御部１４０が主として実行する処理であり、ハードウェア的には地図表示システム１００のＣＰＵが実行する処理である。
【００２７】
図５、図６は、地図表示処理のフローチャートである。
処理を開始すると、地図表示システム１００のＣＰＵは、ユーザからの視点、視線方向、表示スケールの指示を入力する（ステップＳ１０）。これらの指示は、デフォルト値を用いるようにしてもよい。
そして、ＣＰＵは、地図データを読み込むべきレベルおよびメッシュを特定する（ステップＳ１２）。図中に、メッシュの特定方法を例示した。
本実施例では、複数の領域で、レベルの異なる地図データを併用して地図を表示する。本実施例では、視点から遠い側の領域から順に、領域Ａ、領域Ｂと呼ぶ。
ＣＰＵは、まず、ユーザから指定された表示スケールに基づき、各領域のレベルを特定する。例えば、表示スケールとして、広域の表示が指定されている場合には、図２に示したレベルＬＶａを領域Ａ用、ＬＶｂを領域Ｂ用として選択することができる。これに対し、詳細な表示が指定されている場合には、図２に示したレベルＬＶｂを領域Ａ用、ＬＶｃを領域Ｂ用として選択してもよい。
レベルが選択されると、ＣＰＵは、視点および視線方向に基づき、各レベルで、地図データの読込対象となるメッシュを特定する。図中にメッシュの特定方法を例示した。視点を中心とする扇形状の範囲が地図の表示範囲である。この中で、視点に比較的近い、ハッチングを付した範囲が領域Ｂとなり、その遠方の白抜きの範囲が領域Ａである。
領域Ｂ用に選択されたレベルの地図データのうち、領域Ｂと重なるメッシュ、即ち図中の破線で示した９つのメッシュが領域Ｂ用の地図データにおける読込み対象となる。領域Ａ用についても同様に、領域Ａと重なるメッシュ、即ち図中に実線で示した２つのメッシュが領域Ａ用の地図データにおける読込み対象となる。
後述する通り、本実施例では、領域Ａについて描かれた地図画像上に、領域Ｂの地図画像が上書きされる。従って、領域Ａについては、必ずしも地図データの読込み範囲を、領域Ａに限定する必要はない。例えば、視点付近から全体を領域Ａとして描画しても差し支えない。
【００２８】
次に、ＣＰＵは地図表示位置、視線方向に基づいて、地図データを読み込むべきセルを特定する（ステップＳ１４）。図中にセルの特定方法を例示した。
ステップＳ１２の処理によって、メッシュＭ１、Ｍ２が読込対象として特定されたものとする。メッシュＭ１には、図中に破線で示す通りセルＣ１〜Ｃ６が定義されている。メッシュＭ２には、セルＣ７〜Ｃ１１が定義されている。ＣＰＵは、このメッシュＭ１、Ｍ２に含まれるセルＣ１〜Ｃ１１の中から、地図の表示範囲Ｖ（図中では矩形で表示したが、厳密には透視投影の領域としては扇形状になる）と重なるセルを読込対象として特定する。この結果、図の例では、セルＣ４〜Ｃ９が読込対象となる。
このようにセル単位で読込対象を特定することにより、メッシュＭ１、Ｍ２全体の地図データを読み込む必要がなくなるため、地図データの読込みに要する時間を短縮することができる。
【００２９】
ＣＰＵは、特定されたセルから、視点からの距離が表示レベルを満足する地物データを読み込む（ステップＳ１６）。例えば、図４で示した通り、表示レベル「２」は視点から距離Ｄ３以内で表示されることを意味しているから、この地物が視点から距離Ｄ３より遠方に存在する場合には、読込対象から除外するのである。この判断に用いられる視点から地物までの距離は、地物ごとに個別に算出するものとしてもよいし、セルの代表点（例えば、セルの境界上の視点に最も近い点）を用いて算出してもよい。
上述の処理に代えて、地物データを一旦、読み込んだ後、表示レベルに基づいて、表示／非表示を制御するものとしてもよい。
【００３０】
地物データを読み込むと、ＣＰＵは、描画領域を選択する（ステップＳ１８）。本実施例では、図中に矢印ＤＡで示すように、視点から遠い側から順に描画を行う。従って、最初に描画を開始する領域としては、領域Ａを選択し、それが終わった後、領域Ｂというように順に描画領域を選択するのである。
【００３１】
そして、ＣＰＵは、海ポリゴンに対して、領域即ちレベルに応じたオフセットを付与する（ステップＳ２０）。図中に、オフセットの例を示した。視点から遠方側から領域Ａ、Ｂ、Ｃの各領域には、ＯＳＴａ、ＯＳＴｂ、ＯＳＴｃなるオフセット量が与えられている。本実施例では、視点から遠方に行くほど、オフセット量を大きくしている。従って、ＯＳＴｃ＜ＯＳＴｂ＜ＯＳＴａである。それぞれの値は、透視投影した場合にＺファイティングが生じないように設定されており、具体的にどのような値にするかは、各領域の視点からの距離、視点位置、視線方向、透視投影画像の解像度などに応じて定めることができる。
本実施例では、視点をどの位置においた場合であっても、視点と各描画領域の広さおよび位置は固定である。従って、オフセット量は、ステップＳ２０で毎回算出する必要はなく、予め各描画領域ごとに用意された値を用いればよい。
【００３２】
こうしてオフセットの付与が完了すると、ＣＰＵは、地図データを用いて選択された描画領域を透視投影で描画する（ステップＳ２２）。この処理で用いるのは選択された描画領域に定められたレベルの地図データである。この描画時には、各点の表示深さは、デプスバッファに記憶され、隠線処理が行われる。
また、この描画を行う際に、視線が近い側の他の領域との境界付近では、３次元の地物を描画しないように制御する。かかる処理は、近い側の領域との境界付近に地物を表示しない非表示領域を設定し、各地物ごとに、この非表示領域に属するか否かを判断することによって実現できる。かかる処理に代えて、遠方の領域では、地物を一切描画せず、地表面のポリゴンのみを描画するようにしてもよい。
【００３３】
描画が完了すると、ＣＰＵは、デプスバッファをクリアする（ステップＳ２０）。これによって、描画済みの領域の画像は、表示深さの情報を持たない、単なる２次元の背景画像を表すものとなる。
【００３４】
以上の処理で、地図全体の描画が終了していない場合には（ステップＳ２６）、ＣＰＵは、１つ手前の領域を描画領域として選択し（ステップＳ１８）、ステップＳ２０〜Ｓ２４の処理を行って、地図を描画する。
デプスバッファがクリアされているため、新たな領域は、既に描画を終えた領域の画像に上書きされることになる。ただし、新たな領域の透視投影時には改めて表示深さがデプスバッファに格納されるため、この領域自体に対する隠線処理は適切に施される。
【００３５】
ここで、領域の描画時に設定した非表示領域の意味について説明する。
本実施例では、上述の通り、デプスバッファをクリアすることにより、遠い側の領域の画像の上に近い側の領域の画像を上書きしている。従って、両者の境界付近に３次元の地物が描かれている場合、近い側の画像によって、その一部が不自然に覆い隠されることが生じるおそれがある。上述の通り、遠い側の領域を描く際に、境界付近に非表示領域を設け、境界付近で３次元の地物が描かれないようにしておけば、こうした不都合を回避することができるのである。非表示領域の大きさは、近い側の領域によって上書きされる範囲を踏まえて、上述の目的を達成できるように任意に設定することができる。
【００３６】
次に、デプスバッファクリアの意義について説明する。
図７は、デプスバッファクリアの効果を示す説明図である。図７（ａ）は、領域Ａを描画している状態を示している。この領域を描く際には、図６のステップＳ２０で示したように、海ポリゴン（図中では海ａと表した）を地表面（図中では地表ａと表した）よりも高さＯＳＴａだけオフセットする。ちょうど、図７（ａ）に示すように、海ポリゴンは、地表面の上空に浮いている位置関係で描画されることになる。このように海ポリゴンを浮かせることによって、海ポリゴンと地表面との間でのＺファイティングを回避することができる。
このように海ポリゴンを浮かせた位置関係で描画するものの、透視投影で描くと遠方のオフセットは、ほとんど視認できないほどになるから、図７（ｂ）に示すように、地表ａと海ａとが海岸線を形成した状態の描画がなされる。
この状態で、デプスバッファがクリアされるため、地表ａと海ａとは、以下の描画では、ただの背景画像として扱われることになる。
図７（ｃ）には、領域Ａの手前にある領域Ｂを描画している状態を示している。この領域を描く際には、図６のステップＳ２０で示したように、海ポリゴン（図中では海ｂと表した）を地表面（図中では地表ｂと表した）よりも高さＯＳＴｂだけオフセットする。従って、図７（ｃ）に示すように、海ｂは、地表ｂの上空に浮いている位置関係で描画されることになる。ただし、既に描画されている海ａ、地表ａは、デプスバッファのクリアによって、ただの背景画像と化しているため、海ｂは海ａの上に上書きされることになる。本実施例では、視点よりも遠い海ａのオフセット量ＯＳＴａの方が、海ｂのオフセット量ＯＳＴｂよりも大きく設定されているが（図６のステップＳ２０参照）、デプスバッファクリアによって、図６のステップＳ２０に示したような階段状の隙間が生じることを回避できる。領域Ｂのさらに手前を描画するときも同様である。
【００３７】
デプスバッファのクリアは、海ポリゴンのオフセットについてだけでなく、地表面についても効果的である。本実施例では、レベルの異なる地図データを併用して描画を行うため、地表面についても、地表ａ、地表ｂのように部分的にポリゴンが重なって描画される。かかる場合に、仮にデプスバッファのクリアがなされていないと、地表ａ、地表ｂが重なっている領域では、Ｚファイティングが生じ、画像が不安定になることが起きる。これに対し、本実施例では、デプスバッファをクリアしているため、地表ａの上に地表ｂが上書きされることとなり、Ｚファイティングを回避することができる。
【００３８】
Ｄ．地図表示処理（変形例）：
図８は、変形例としての地図表示処理のフローチャートである。処理を開始すると、ＣＰＵは、視点、視線方向、表示スケールを入力する（ステップＳ４０）。変形例では、表示スケールに応じて、いずれか１つのレベルの地図データを選択し、これを用いるものとする。
ＣＰＵは、海ポリゴンに対し、視点からの距離に応じてオフセットを付与する（ステップＳ４２）。実施例では、レベルごとにオフセット量を定めていたのに対し、変形例では、視点からの距離に応じて地点ごとにオフセット量を定める。図中にオフセットの設定例を示した。視点に近い領域でのＺファイティングを回避するため、視点位置でも所定値ＯＳＴ０オフセットを与える。そして、距離Ｄに応じてオフセット量ＯＳＴは、単調増加の関数で与えている。ステップＳ４２の処理では、ＣＰＵは、海ポリゴン上の各点に対し、視点からの距離Ｄを求め、予め設定された関数に基づいてオフセット量ＯＳＴを算出して、海ポリゴンの高さ値に加えることになる。かかる処理を、海ポリゴンの各点ごとに行うのである。
【００３９】
以上の処理を終えると、ＣＰＵは、地図表示位置、視線方向に基づきセルを特定し（ステップＳ４４）、視点からの距離が表示レベルを満足する地物データを読み込んで（ステップＳ４６）、透視投影で描画を行う（ステップＳ４８）。これらの処理は、実施例（図５、図６）と同様であるため、詳細な説明を省略する。変形例では、単一のレベルの地図データを用いるため、デプスバッファのクリアは不要である。もっとも、実施例と同様、異なるレベルの地図データを併用して描画するようにしても構わない。
【００４０】
以上で説明した本実施例の３次元地図表示システムによれば、オフセット量を、視点から遠い領域ほど大きく、手前領域ほど小さくして地図を描画することができる。従って、手前側から遠方まで、Ｚファイティングの発生を回避するとともに、手前側でオフセットが視認されるなどの支障も回避することができる。
【００４１】
また、複数レベルの地図データを併用することにより、遠景領域について詳細な地図データを読み込む必要がなくなるから、近景領域では十分詳細な情報を提供しつつ、遠景領域ではデータ量の低い地図データを用いて効率的に地図を描画することが可能となる。
さらに、本実施例では、地図データをメッシュ単位で格納するだけでなく、メッシュを細分化したセル単位で読み出し可能に格納している。こうすることによって、地図表示に無用なデータの読込を回避することができ、地図の表示時にデータ読み出しに要する時間の短縮化を図ることができる。
【００４２】
以上、本発明の実施例について説明した。
本発明の３次元地図表示システムは、必ずしも上述した実施例の全ての機能を備えている必要はなく、一部のみを実現するようにしてもよい。また、上述した内容に追加の機能を設けてもよい。
本発明は上述の実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、実施例においてハードウェア的に構成されている部分は、ソフトウェア的に構成することもでき、その逆も可能である。
実施例では、地表面および海のポリゴン間でオフセットを適用する例を示したが、本発明は、これらに限らず、種々のポリゴン間で適用可能である。
【産業上の利用可能性】
【００４３】
本発明は、視点に近い領域から遠方に至るまでの範囲でＺファイティングを回避して３次元地図を表示するために利用可能である。
【符号の説明】
【００４４】
１００…３次元地図表示システム
１１０…コマンド入力部
１２０…地図データ読出部
１２１…レベル・メッシュ設定部
１２２…セル設定部
１３０…地図データベース
１４０…表示制御部
１４１…表示／非表示設定部                           
１４２…オフセット設定部
１４３…デプスバッファクリア部
１４４…描画制御部
【図２】
2014186569.tif 000003
【図３】
2014186569.tif 000004
【図４】
2014186569.tif 000005
【図５】
2014186569.tif 000006
【図６】
2014186569.tif 000007
【図７】
2014186569.tif 000008
【図８】
2014186569.tif 000009
【図１】
2014186569.tif 000010