【実施例1】
【0017】
実施例1として、3次元地図をディスプレイに表示する3次元地図描画システムとしての構成例を示す。まず、実施例における自然地物の表示例を示した後、システム構成および処理内容について説明する。
【0018】
A.表示例:
図2は、点群による単位体の描画例を示す説明図である。ここでは、単位体として、1本の広葉樹を表現した例を示した。
図2(a)は、点群の発生方法を示している。この例では、代表点Cを中心とする半径Rの球面Sを基本形状とし、その表面近傍に点群を発生させるものとしている。点群は、厳密に球面上に発生させるのではなく、表面近傍で位置を不規則にずらして発生させるものとした。
球面S上で点を発生させる位置は、極座標θ、φで表すことができる。角度φは、x軸からのヨー角であり、角度θは、z軸とのなす角である。このように極座標を用いれば、乱数を発生させてφおよびθを決めることにより、点を発生させる位置を決定することができる。
球面S上に点を発生させる場合には、上述の2つの角度が決定すれば、点の位置を一義的に決定することができるが、本実施例では、代表点Cから点までの距離Rpを不規則に変化させるものとした。具体的には、距離Rpは、乱数に基づいて定まる係数を半径Rに乗じることにより求める。ただし、距離Rpの範囲は、半径Rの所定の倍率(例えば、0.9〜1.1倍など)の範囲で変化するように規制してある。距離Rpを変化させる範囲は、任意に設定可能である。
【0019】
図2(b)には、点群の発生例を示した。樹木を表現するため、緑色の点群を発生させている。色の濃淡は、点群の表裏によって異なっている。点群を発生させる際に、緑色の基準色を中心にして、色相、明度、彩度を不規則に変化させるものとしてもよい。例えば、R,G,Bで規定された基準色の各成分を乱数に基づいて変化させる方法をとることができる。この場合も、基準色からかけ離れた色とならないよう、変化の範囲を制限しておくことが望ましい。
また、
図2(b)の例では、点を一定サイズの矩形形状で発生させているが、点のサイズや形状も不規則に変化させても構わない。
本実施例では、このように生成された点群によって1本の樹木を表現する。樹木を構成する幹、枝などの要素を用いず、単純に点を配置するだけのシンプルなモデルとするところが特徴である。
【0020】
図3は、樹木の表示例を示す説明図である。
図2に示した1本の樹木のモデルを山の表面に多数配置した状態を示した。ここでは、山の山頂付近を高い密度で、ふもと付近を低い密度で配置しているが、配置密度は種々の態様をとることができる。
図3(a)は、緑が濃い状態の山を表現している。
図3(b)は、点群の色相を淡い色に変えることによって、春先の山、または雪山のように淡色の山を表現している。このように、点群で表現した単位体としての樹木のモデルを多数面状に配置することによって、自然地物を表現することができる。本実施例では、点群によって単位体を構成しているため、このように多数の樹木を配置した状態であっても、少ないデータ容量で高速に描画することが可能となる。
このように樹木を配置した山を表現する場合における、オブジェクトの区分は、種々考えられる。第1に、山の形状を表す3次元の地物において、その表面に自然地物としての樹木を配置するという「属性」を与える方法としてもよい。第2に、山の地肌のみの3次元オブジェクトを生成し、これとは別に、山と同一形状の領域に樹木を配置した「樹木」オブジェクトを生成する方法としてもよい。第3に、山の地肌のみの3次元オブジェクトと、樹木一本一本をオブジェクトとして生成する方法としてもよい。このように、自然地物を配置したオブジェクトは、種々の態様で定義することができる。
【0021】
B.システム構成:
図4は、実施例1における3次元地図描画システムの構成を示す説明図である。実施例1の3次元地図描画システム1は、
図3に示したような形式で自然地物を含む3次元地図を、ディスプレイ2に表示するためのシステムである。
3次元地図描画システム1は、図示する各機能を実現するためのコンピュータプログラムを、CPU、RAM、ROMを備えたコンピュータにインストールすることによってソフトウェア的に構成されている。これらの各機能の一部または全部を、ハードウェア的に構成してもよい。
また、3次元地図描画システム1は、スタンドアロンで稼働する装置としての構成例を示しているが、図示する各機能を、ネットワークで接続された複数のサーバ、端末によって実現するものとしてもよい。
【0022】
図中に示した各機能ブロックについて説明する。
地図データベース10は、3次元地図を表示するための地図データを格納している。地図データベース10には、大きく分けて文字データ11、地物データ12、自然地物データ13が格納されている。この他に、経路探索に用いるための道路ネットワークデータなどを格納してもよい。
文字データ11は、地図中に表示されるべき文字列を記憶するデータである。地図中の表示位置、表示すべき文字列、文字列の表示態様、即ちフォント、文字サイズ、文字色などのデータを記憶している。
地物データ12は、3次元地図に表示される地物の位置、形状等を記憶する。本実施例では、表示される地物は、自然地物とその他の地物(以下、「一般地物」という)に分けられる。自然地物とは、樹木、砂地、雪原、田園、海面、川面、山地、雲、岩石など、自然に存在する地物のうち、巨視的には面状になるものを言い、
図2および
図3で示した点群による表現の対象となるべき地物を言う。一般地物とは、建物、道路などの人工的な地物、および自然に存在するもののうち、上述の意味での自然地物として取り扱わないものを言う。
自然地物データ13は、自然地物を構成する単位体について、点群発生態様等を規定するデータである。地物データ12内に格納された自然地物を描画する際には、その自然地物に応じた自然地物データ13を参照して、点群を発生させる。
地物データ12、自然地物データ13のデータ構造は、後述する。
【0023】
指示入力部20は、ユーザからの指示を入力する。指示としては、例えば、3次元地図を表示する際の視点位置、視線方向などが挙げられる。
地図描画部30は、指示に応じて3次元地図を描画する。地図描画部30には、さらに、自然地物描画部31、一般地物描画部32、文字描画部33が用意されている。
自然地物描画部31は、自然地物データ13に基づいて発生させた点群により表される単位体のモデルを、多数配置して、自然地物を描画する。
一般地物描画部32は、自然地物以外の一般地物を3次元的に描画する。この処理は、通常の3次元地図において、地物のポリゴンを3次元的に描画する処理と同様である。
文字描画部33は、地図内に地物、行政界、方位、案内情報などの文字を描画する。
表示制御部40は、地図描画部30によって描画された地図を、ディスプレイ2に表示する機能を奏する。
3次元地図描画システム1は、
図4に示す他にも追加の機能を備えても良い。例えば、経路探索用の道路ネットワークデータが用意されている場合には、これを用いて経路探索を行う経路探索部を設けても良い。また、ユーザの現在位置に応じて、探索された経路を案内する経路案内部を設けても良い。
【0024】
図5は、地物データ12および自然地物データ13の構造を示す説明図である。左側に地物データ12のデータ例を示し、右側に自然地物データ13のデータ例を示した。
地物データ12は、地物ごとに、位置や3次元形状等を記憶するデータである。図では、地物ごとのデータをカード形式のイメージで図示したが、データ形式は、テーブル形式、XML形式など種々の態様をとることができる。
地物データ12の上側に示したのは、一般地物のデータ例である。
「地物ID」は、地物固有の識別情報を表している。
「種別」は、一般地物、自然地物の区別である。上側のデータは「一般地物」であることが分かる。
「名称」は、地物の名称である。この例では、「○○ビル」という建物であることが分かる。
「形状」は、地物を表す3次元ポリゴンの頂点の点列である。図の例では、頂点をP1、P2、P3のように記載しているが、それぞれの点について3次元空間での座標が格納される。
「属性」は、地物に応じた特徴等を表す情報である。例えば、建物の場合は、色、表面に貼り付けるテクスチャ、建物の階数などが格納される。道路の場合は、国道・県道などの道路種別、道路の車線数・幅、一方通行その他の通行規制などが格納される。
【0025】
地物データ12の下側には自然地物のデータ例を示した。地物ID、種別、名称は、一般地物と同様である。
「配置領域」は、自然地物の単位体を配置する領域の形状である。配置領域を表す点列PN1、PN2、PN3の座標を格納している。
「配置密度」は、自然地物を配置する配置点の密度である。D(個/エリア)は、予め設定された単位面積のエリア内にD個の配置点が存在する密度であることを意味している。配置領域、配置密度については、種々の変形例を後述する。
「自然地物」は、配置すべき自然地物を表す自然地物データを特定する。図の例では、自然地物データ13に格納されている自然地物ID「N1」のデータを指定していることになる。
「サイズ」は、自然地物データで表される単位体の拡大/縮小率である。この例では、単位体を1.2倍して配置することを意味している。
【0026】
自然地物データ13は、自然地物の単位体を構成する点群の発生態様を規定するデータである。自然地物IDは、各自然地物データに固有の識別情報である。
「名称」は、自然地物の名称を表している。
「基本形状」は、点群を発生させる基準となる形状を表している。図の例は、先に
図2に示したように、半径rの球を基本形状とすることを表している。基本形状は、自然地物の種類に応じて定めることができる。例えば、図に示すように、「広葉樹」としては基本形状「球」を用い、「針葉樹」としては基本形状「円錐」を用いることができる。
「色相」は、点群の基準となる色を赤(R)、緑(G)、青(B)の色成分で表している。
「許容誤差」は、点群の位置が基本形状の表面からずれる許容範囲を表すデータである。図の例は、
図2(a)に示した半径Rpの範囲が、基本形状の半径rのE(%)に規制されることを表している。
「構成点数」は、自然地物を構成する点群の数である。
【0027】
図5では、「□□山」という地物に、自然地物ID「N1」の広葉樹を配置する例を示した。これは、地表面に樹木を多数配置した山という形で、全体を一つのまとまった3次元オブジェクトとして捉える(各樹木は、そのオブジェクトのパーツとなる)態様に相当する。
地物の設定としては、かかる態様だけでなく、例えば、樹木を配置しない地表面としての山を一つの3次元オブジェクトと考え、その山の表面の領域に多数配置された樹木を山とは別の3次元オブジェクトと捉える態様も可能である。この場合は、地表面の山としての地物データと、樹木の地物データが、それぞれ別個に用意されることになる。
また、山を一つの3次元オブジェクトと捉え、各樹木を個別の3次元オブジェクトと捉えても良い。この場合には、地表面の山としての地物データと、各樹木を表す複数の地物データが別個に用意されることになる。
ここでは、説明の便宜上、「山」を地物の一つとして説明したが、山を個別の地物として表すのではなく、地表面の起伏(アンジュレーション)として表すことも可能である。
【0028】
地物データ12における配置領域、配置密度については、
図5に示した態様だけでなく、種々の変形例が考えられる。
図6は、配置点の生成方法を示す説明図である。3つのパターンを例示した。
パターン1は、自然地物を配置する領域と配置密度を指定する態様である。
図5の地物データ12で示した態様に相当する。図中に、パターン1における自然地物の配置例を示した。このパターンでは、配置領域の形状が、点列P1、P2、P3によって特定されている。そして、この配置領域内で、指定された配置密度になるよう自然地物の配置点が自動生成される。かかる態様をとる場合には、右欄に示すように、配置領域の形状および配置密度を指定することになる。
パターン2は、自然地物を配置するラインと、配置密度を指定する態様である。例えば、街路樹や、川のように線状に自然地物を配置する場合に利用できる。図中に、パターン2における自然地物の配置例を示した。このパターンでは、自然地物を配置する配置ラインの形状が、点列PL1、PL2、PL3によって特定されている。そして、この配置ライン上で、指定された配置密度になるよう自然地物の配置点が自動生成される。かかる態様をとる場合には、右欄に示すように、配置ラインの形状および配置密度を指定することになる。
パターン3は、自然地物の配置点を直接指定する態様である。図中に、パターン3における自然地物の配置例を示した。このパターンでは、自然地物を配置する配置点1、2、3の座標値が直接指定されることになる。かかる態様によれば、配置点を自動生成する態様に比較し、予め設定した場所に自然地物を配置することができるため、意図通りの描画結果を得ることができる利点がある。かかる態様をとる場合には、右欄に示すように、緯度(LAT)、軽度(LON)、高さ(H)などの形式で配置点の座標を指定することになる。
図6で例示した種々のパターンは、いずれか一つを選択して利用してもよいし、これらを組み合わせて利用してもよい。例えば、パターン1、2で自然地物の配置点を自動生成させつつ、パターン3によって、当該領域内に部分的に自然地物を配置することで、意図通りの描画結果を比較的容易に得ることが可能となる。
【0029】
C.処理例:
図7は、3次元地図表示処理のフローチャートである。ユーザからの指示に従って、ディスプレイ2に3次元地図を表示するための処理であり、ハードウェア的には3次元地図描画システム1のCPUが実行する処理である。ユーザの現在位置に応じて、3次元地図を表示することにより、経路案内に利用することもできる。
処理を開始すると、3次元地図描画システム1のCPUは、視点位置および視線方向を入力する(ステップS10)。これらは、透視投影や平行投影によって3次元地図を表示するためのパラメータである。さらに地図として表示する範囲の指定などを入力するようにしてもよい。
そして、CPUは、地図データベース10から地図データ(文字データ11、地物データ12、自然地物データ13を意味する)を読込み(ステップS11)、一般地物を描画する(ステップS12)。この描画は、地物データ12に格納されたポリゴンデータを3次元的に描画する通常の処理である。
次に、自然地物描画処理を実行する(ステップS20)。この処理は、樹木などの自然地物について、自然地物データ13を参照して、点群を発生させつつ、多数配置することによって自然地物を描画する処理である。この処理内容については、後述する。
CPUは、さらに、文字描画を行い(ステップS30)、3次元地図表示処理を終了する。これによってユーザの指定に応じた3次元地図がディスプレイ2に表示される。
なお、3次元地図の出力は、必ずしもディスプレイ2上に電子的に表示する態様には限られない。プリンタ等によって印刷する態様をとってもよい。
【0030】
図8は、自然地物描画処理のフローチャートである。
図7に示した3次元地図表示処理のステップS20の処理内容に相当する。
自然地物描画処理では、CPUは、配置領域の背景を描画する(ステップS21)。地物データ12で特定された配置領域を着色等して描画する処理である。例えば、
図3に示した山肌の部分を茶色で描く処理に相当する。図の右側に処理例を示した。この例では、ハッチングを付して配置領域が描画されているが、かかる態様で配置領域を描画するのが、このステップでの処理である。
次に、CPUは、配置点を発生させる(ステップS22)。配置領域内に所定の関数によって規則的に配置点を発生させるようにしてもよいし、乱数によってランダムな位置に発生させるようにしてもよい。右側の図に例示した×印が、配置点である。
こうして配置点を発生させると、CPUは、その密度(以下、「配置密度」と言う)を算出する(ステップS23)。配置密度は、所定の領域内の配置点の個数で規定される(
図5参照)。例えば、所定領域が半径rの円である場合の例を右側の図に示した。配置点PがステップS22で新たに生成されたものであるとすると、この配置点Pを中心として半径rの円Aを描き、その内部にある配置点の数を求め、これを配置密度とする。
こうして求められた配置密度が地物データ12で与えられた適正な値でない場合(ステップS24)、つまり、局所的に配置点が発生し、配置密度が規定された値を超えるときは、発生した配置点を無効としつつ、別の配置点を発生させる(ステップS22、S23)。
配置密度が適正な場合、即ち規定された値以下である場合には、CPUは自然地物データ13を読込み(ステップS25)、それに基づいて点群を発生させる(ステップS26)。こうすることで、単位体としての自然地物の描画が完成する。
CPUは、以上の処理を、終了条件を満たすまで(ステップS27)、繰り返し実行する。終了条件としては、配置領域内に自然地物が規定された配置密度で配置された状態を挙げることができる。かかる状態になると、新たに配置点を発生した場合に、配置密度が規定値を超える確率が高くなる。従って、ステップS24で「NO」となる確率、または回数を監視しておき、これが閾値を超えた場合に、終了条件(ステップS27)を満たすと判断する方法をとってもよい。終了条件としては、その他、配置点の数が閾値を超えるなど、種々の条件を用いることができる。
【0031】
D.効果:
以上で説明した3次元地図描画システムによれば、自然地物を点群で表すことにより、データ容量を抑制しつつ、高速での描画を実現することができる。また、点群によって、自然地物の不規則な凹凸感を表すことができ、リアリティの高い表現を実現することもできる。