説明

地図データ処理方法、コンピュータグラフィック処理方法およびコンピュータグラフィック処理装置

【課題】地図中の建物の正面を判定可能にする。正面判定機能を応用したコンピュータグラフィックス処理技術を提供する。
【解決手段】コンピュータグラフィックス処理装置10は、正面判定を行う地図データ処理機能をもつ。すなわち、正面判定部18は、地図データ取得部12により取得された地図データから、地図データに含まれる建物の正面を、周囲の建物までの距離に基づいて判定する。周囲の建物までの距離が最大である面を建物の正面であると判定される。建物を取り囲むバウンディングボックスを用いることで、判定処理が簡単になる。コンピュータグラフィックス処理装置10は、正面の判定結果に従って正面が表現された建物を含む3次元コンピュータグラフィック画像を生成する。具体的には、テキスチャ生成部20が、出入口を表すテキスチャを建物正面に張り付ける。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、地図データ処理方法およびその方法を利用したコンピュータグラフィック処理装置に関する。
【背景技術】
【0002】
近年、コンピュータグラフィックス(以下、CG)の技術の発展は目覚しく、我々の目にも触れる機会が多くなり身近なものとなった。CGは新たな映画やゲームなどの分野で大きく貢献している。3次元表示による説得力については誰も疑う余地の無いものである。今後もCGの活躍分野というのはさらに増えるであろう。ここで現在のCGの世界を観察してみると、個人が自分のためにCGを作成するというのはそれほど多くはない。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、写真が撮影してもらうという受動的な立場から、自ら撮影し楽しむものになったように、現在、専門家がCGを作成するという状況から、気軽に一個人が自分のためにCGを作成する状況に変化していくだろう。そのような観点から考えると、現在のCG作成には膨大な費用と時間、そして作成者の技術力が必要という問題がある。それを解決する技術として、個々のオブジェクトを写真から作成するイメージ・ベースド・モデリング(例えば、除 剛、写真から作る3次元CG−イメージ・ベースド・モデリング&レンダリング−2001)は、個人がCGを作成するには非常に有効な技術である。3次元・モデラーへの見識がそれほど無くとも、求める3次元オブジェクトが作成できる。しかし、多くの建物が立ち並ぶ街並みを再現するにはオブジェクトを個別に作成していては多くの手間・時間が必要となる。街並み作成の場合は一つ一つのオブジェクトの完成度よりも、どれだけ大量のオブジェクトを簡単に作成できるかが問題となる。
【0004】
現在、数値地図から3次元の街並みを生成する技術として、数値地図と航空写真を用いてテクスチャまで動的に生成するもの(3次元GISと消防支援システムへの利用、http://www.isad.or.jp/magzin/61_3zigen.htm)、数値地図のみを用いて3次元を生成するもの(杉原 健一、GISとCGの統合化による3次元街並み自動生成システム、http://www.gis.pasco.co.jp/community/doc_lib/uc2000/user_pdf/p2000_4..pdf)が代表的な手法である。航空写真を用いる場合、確かにその完成度は向上するが作成にかかる時間の大幅な減少は望めず、手軽とは言い難い。また、作成を行う数値地図の場所に適合する航空写真が必要となり、データの入手方法も決して簡易とは言えない。ただ、国土地理院が平成14年4月からインターネットで空中写真の閲覧サービスを開始するため、この手法が有効になる可能性も出てきてはいる。しかしながら、手軽さ・速度を求める場合にはこの手法は適さない。またもう一つの方法である数値地図のみからの作成では、テクスチャをどのように用意するのかが大きな問題となる。
【0005】
本発明者は、以上のような問題点を考慮しながら、手軽さ・速度を目標に研究を行っている。そして、本発明者は、航空写真は用いず3次元の街並み生成を行い、テクスチャは動的に生成するグラフィック処理の研究を行っている。
【0006】
本発明者は、こうした研究の中で、建物を含んだ街並み等の地図データを利用するうちに、こうした地図データが建物の正面の情報をもっていないことに着目した。これまで、地図データ中の建物の正面を判定する技術は提案されていない。仮に、建物の正面を判定できれば、そのような情報はグラフィックス処理にとって有用であると考えられる。例えば、建物の正面を考慮することで、よりリアルな画像を作ることができると考えられる。
【0007】
上記の点に関し、従来の高度なCG作成技術は、一般に、建物の玄関等を含む細かな形状をもモデリングの対象にしている。すなわち、モデリングの段階で建物の正面が決められている。したがって、建物の正面がどこかを判断するニーズがなかった。一方、簡単なCG作成技術においては、建物の正面がどこかを表す情報に基づく処理は一般に行われていない。したがって、この場合も、建物の正面がどこかを判定するニーズがなかった。このような背景の下、発明者は、地図データから簡易に3次元グラフィックス画像を作る技術を研究する中で、建物の正面を判定することの有用性に着目した。
【0008】
また、本発明者は、上述のように、グラフィックスの研究の中で建物正面の情報の有用性に着目した。しかし、建物正面の情報は、道案内等、地図データを使う他の用途にとっても有用であると考えられる。この点で、本発明の適用範囲はグラフィックス技術に限定される必要はない。
【0009】
本発明は上記背景の下でなされたものであり、その目的は、地図データ中の建物の正面を判定する好適な技術を提供することにある。
【課題を解決するための手段】
【0010】
本発明の地図データ処理方法は、地図データに含まれる建物の正面を、周囲の建物までの距離に基づいて判定する。好ましくは、本発明の地図データ処理方法は、周囲の建物までの距離が最大である面を建物の正面であると判定する。
【0011】
本発明は、街並みの地図データの処理を行うときに特に好適に作用する。街並みの地図データは、典型的には市街地の地図であって、比較的多くの建物がある場所の地図である。街並みの地図は、実際の街並みの地図でもよく、仮想的な街並みの地図でもよい。街並みでは、一般に、道路を挟む建物間の距離は比較的大きく、道路を挟まない建物間の距離は比較的小さい。そして、建物の正面は道路に面していることが多い。さらに、複数の道路に建物が面する場合、より広い道路に建物が面していることが多い。したがって、建物の正面は、一般に周囲の建物までの距離が大きい面である。本発明によれば、このような建物間の距離と建物の正面との関係に基づいて建物の正面を判定することにより、建物の正面を適切に求められる。
【0012】
本発明の地図データ処理方法は、典型的には、後述するコンピュータグラフィックス処理技術に適用される。しかし、本発明はこれに限定されない。正面判定は、地図データを使う他の用途にも適用可能である。例えば、地図データを使った道案内に本発明の技術が応用されてもよ。また例えば、建物のみの2次元地図上に道路を描くとき、本発明の正面判定結果を好適に利用できる。
【0013】
好ましくは、本発明の地図データ処理方法は、建物を取り囲むバウンディングボックス間の距離を建物間の距離として用いて、建物の正面を判定する。本発明によれば、建物が複雑な形状を有するときでも、比較的単純な処理によって建物の正面を求められる。バウンディングボックスは典型的には四角形である。この場合、建物が単純な四角形以外の形状を有するときでも、四角形同士の距離から建物の正面を判断すればよいので、正面判定処理が簡単になる。
【0014】
好ましくは、本発明の地図データ処理方法において、一のバウンディングボックスから他のバウンディングボックスまでの距離は、前記他のバウンディングボックスの辺の延長線が前記一のバウンディングボックスに達するまでの延長線の長さである。この延長線の長さは、比較的簡単な処理で求められる。したがって、本発明によれば、比較的簡単な処理で建物の正面を求められる。
【0015】
好ましくは、本発明の地図データ処理方法は、バウンディングボックスの各辺に対応するサラウンドボックスを形成し、サラウンドボックスとバウンディングボックスの交点を求め、サラウンドボックスに包含されるバウンディングボックスの頂点である内包点を求め、サラウンドボックスの辺上にある交点から内包点までの距離をバウンディングボックス間の距離として正面判定に用いる。上述の交点および内包点は比較的簡単に求められる。したがって、本発明によれば、比較的簡単な処理で建物の正面を求められる。
【0016】
なお、サラウンドボックスは典型的には多角形であり、そして好ましくは四角形である。後述する実施形態においては、サラウンドボックスが長方形である。長方形を使った処理を行うとき、特殊な場合には、長方形の隣り合う2辺の長さが同じになり、結果的に正方形が生成されるが、このようにして作られた正方形も本発明では長方形に含まれるとみなされてよい。
【0017】
好ましくは、建物の周囲に別の建物がないときに、前記建物の最も大きい面が正面であると判定する。例えば、上述の長方形を用いる態様において、長方形が他のバウンディングボックスと交差しないことがある。このような場合に、建物の最も大きい面が正面であることが多い。したがって、本発明によれば、建物の正面を適切に判定することができる。
【0018】
本発明の別の態様における地図データ処理方法は、地図データに含まれる建物の最も大きな面が前記建物の正面であると判定する正面判定処理を行う。建物の正面は、建物がもつ複数の面のうちで最も大きな面であることが多い。したがって、本発明によれば、建物の正面を適切に判定できる。
【0019】
本発明の別の態様は、コンピュータグラフィックス処理方法であり、この方法は、地図データを取得するステップと、地図データに含まれる建物の正面を、周囲の建物までの距離に基づいて判定するステップと、を含み、正面の判定結果を用いて地図データからコンピュータグラフィック画像を生成する。この態様は、上述の地図データ処理方法を利用してコンピュータグラフィックス画像を生成する。地図の正面の判定結果を用いることにより適切なコンピュータグラフィックス画像が生成される。例えば、建物の正面には建物の出入口のテキスチャが張り付けられ、現実により近い画像が得られる。
【0020】
本発明の別の態様は、コンピュータグラフィックス処理装置であり、この装置は、地図データを取得する地図データ取得部と、地図データに含まれる建物の正面を、周囲の建物までの距離に基づいて判定する正面判定部と、を含み、正面の判定結果を用いて地図データからンピュータグラフィック画像を生成する。本発明によっても適切なコンピュータグラフィックス画像が生成される。
【0021】
本発明の別の態様は、コンピュータグラフィック処理装置であり、建物の2次元形状および配置を含む地図データを取得する地図データ取得部と、前記地図データに含まれる建物の高さの情報を取得する高さ取得部と、地図データに含まれる建物の正面を、地図データから得られる周囲の建物までの距離に基づいて判定する正面判定部と、を含み、前記高さ取得部により取得された高さまで前記2次元形状を引き上げることにより得られる3次元形状を有し、前記正面判定部の判定結果に従って正面が表現された建物を含む3次元コンピュータグラフィック画像を生成する。本発明によれば、2次元の地図データから容易に3次元コンピュータグラフィックス画像を生成できる。さらに、建物の表現が表された、現実により近い画像を生成できる。
【0022】
好ましくは、本発明のコンピュータグラフィック処理装置は、建物の正面であると判定された面には、建物の正面を表すテキスチャを張り付ける処理を行う。建物の正面を表すテキスチャは、例えば、出入口のテキスチャである。本発明によれば、現実により近い画像を生成できる。
【0023】
正面判定結果は、上述のテキスチャの張り付け処理以外にも有用に利用可能である。例えば、建物の正面が道路に面していることが多い傾向を利用して、建物間の道路を自動生成することができる。
【0024】
本発明の別の態様において、地図データ処理方法は、地図データに含まれる建物の正面を、周囲の建物までのスペースの情報に基づいて判定する正面判定処理を行う。好ましくは、本発明の方法は、周囲の建物までのスペースが最大である面を建物の正面であると判定する。この態様において、周囲の建物までのスペースは、上述した距離を含む。
【0025】
しかし、スペースは、距離以外の情報でもよい。スペースは、面積でもよい。一例としては、建物の壁面の両端から、壁面に垂直な線が引かれる。壁面と両垂線と他の建物が形成する多角形の面積が求められる。この面積が最大になるような面が建物の正面であると判定される。また、このスペース判定にもバウンディングボックスが利用されてよい。
【0026】
このように、スペースは距離以外でもよく、例えば、面積で表されてもよい。ただし、スペースとして距離を用いることは、処理が簡単であり、有利である。特に、バウンディングボックスを用いることで、さらには延長線、交点、内包点等を用いることで、簡単な処理により適切な判定ができ、有利である。
【0027】
スペース情報を使えること、すなわち、距離に限定されなくてもよいことは、他の態様、例えば、コンピュータグラフィックス処理装置の態様においても同様である。
【0028】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、サーバ、システム、コンピュータプログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0029】
以上に説明したように、本発明によれば、地図データ中の建物の正面を判定可能になり、また、正面判定を利用する好適なコンピュータグラフィック処理技術を提供できる。
【発明を実施するための最良の形態】
【0030】
以下、本発明についてさらに説明する。以下では、まず、本発明者による研究「数値地図を用いた3次元街並みCG映像の構築」について説明する。それから、同研究が適用されたコンピュータグラフィック処理装置の実施形態を説明する。このコンピュータグラフィックス処理装置には、下記の研究における正面判定機能が有利に組み込まれる。
【0031】
1.はじめに
本研究では、街並みを構築する各3次元オブジェクトを、数値地図及び単純なテクスチャから作成する手法を述べる。目的はデジタルシティとバーチャルシティの中間点に位置するような2次元オブジェクトを作成することである。このシステムにより複数の建物オブジェクトが立ち並ぶ仮想空間の生成が誰にでも容易に短時間で可能となる。
【0032】
現在でもGISにおいて2次元表示を可能としているシステムは多数あるが、3次元データとしての書き出しができない、別途航空写真を必要するシステムなど、本研究の目的である手軽な仮想空間の構築には適さない形態が多い。また、技術者がモデラーを用いて一から作成するには、モデラーに対する深い見識と熟練が必要とされ、街並み全体を作成するには大変な時間と労力を要する。この方法も本研究の目的には適さない。
【0033】
本研究では2次元数値地図から瞬時に3次元データを作成し、建物オブジェクトの正面がどの面であるかを判定すると共に、テクスチャを自動生成することで「容易に短時間に仮想空間を構築」という目標を達成する。
【0034】
2.システム構成、処理の流れ
図1は、本研究でのシステム構成と処理の流れを示している。本研究では数値地図データを扱うために、GeoBaseと呼ばれるGISに必要な各種の機能が凝縮された32ビットWINDOWS DLLのツールライブラリを用いる。 本システムは、始めに2次元数値地図からデータを読みこむ。この数値地図はGeoBaseが読み込める形式のものでなければならない。その後、読み込んだ図形群に対し高さ変更及び新たなオブジェクトの追加を行う。この段階でもGeoBaseの機能を活かして仮の3次元表示が可能である。その後高さ情報を持った2次元データを書き出し、別プログラムへ処理を移す。
【0035】
街並み作成プログラムでは、高さ情報と2次元データから3次元ポリゴンデータを生成し、そのオブジェクト間の距離を計算することで正面・側面を決定する。そして自動的にテクスチャを生成・貼り付けを行う。その後個々のオブジェクトに対し手入力による修正を施し、終了となる。また本研究では表示にOpenGLを用いている
【0036】
3.2次元数値地図での処理
3.1 GeoBaseアプリケーションおよび基本的な処理
このアプリケーションに用いたGeoBaseのイメージを図2に示す。このアプリケーションでは数値地図の読み込み、建物オブジェクトの追加・削除、及び高さの変更が行える。また、3次元に加工するとどのような概観になるのかを、プリミティブなオブジェクトの状態でプレビューできる。その後、範囲を指定し2次元のベクトルデータを書き出す。
【0037】
GeoBaseはアプリケーションではなく、アプリケーション作成を手助けするライブラリ群である。図3はGeoBaseが提供する機能を示す。図3の支援機能の内、ウインドウコントロール、カラーパレットコントロール、ベクター図面表示、図形操作コマンドの4つを用いて以下の5つの基本的な処理を作成した。すなわち、(1)数値地図の読み込み、(2)ズームイン・ズームアウト、(3)ピック処理、(4)図形の追加・色の変更および(5)3次元表示である。これらの機能を用いて、2次元地図を自分が思い描いた配置に変更することが可能となる。
【0038】
図4を参照すると、右側ウインドウが2次元地図、左ウインドウが3次元表示を行っている。2次元地図に対しオブジェクト追加の処理を加えると、左ウインドウにもリアルタイムに反映される。続いてこのGeoBaseアプリケーションで最も特徴的なマウスを用いた高さ変更について述べる。
【0039】
3.2 マウスによる高さ変更
GeoBase自体にはマウスで高さを変更できる機能は無いため、ピック処理と図形データ変更機能を組み合わせ実現した。図5を参照すると、高さを変更したいオブジェクトを選択し、その状態でマウスをドラッグすることでリアルタイムな高さ変更が可能となった。図5では途中経過がないが、実際の実行画面では滑らかに高さが変化する。
【0040】
ここまでの処理により作成された2次元ベクトルデータを、「高さ情報、色、頂点データ」をセットにし、ファイルに書き出す。3次元街並み作成プログラムではそのデータを元に3角ポリゴンデータを作成する。
【0041】
4.3次元空間の生成
4.1 2次元データから3次元データの生成
4章ではGeoBaseアプリケーションによって吐き出された2次元データから3次元データを生成する手法を述べる。始めに、その書き出されたデータの一部を図6に示す。
【0042】
図6において、始めの3つの値はRGB(色データ)を示し、4番目の値「2」は高さを表す。最後の「4」はその次の行から羅列される頂点の数を示している。つまりこのデータは四角形ということになる。数値地図は巨大なマップで表現されるため、座標は非常に大きな値となっている。この値はいったん読み込んだ後正規化を施し、扱いやすい数値に変換する。次項でこの2次元座標を3次元ポリゴンに分割する方法を述べる。
【0043】
4.1.1 側面ポリゴンの生成
今回は建物のオブジェクトの形状を、側面は平らであることに限定しているので、側面ポリゴンの生成は上面に比べ難易度は低く、非常に簡単である。面を上に引っ張るようなイメージそのままで作成できる。
【0044】
図7を参照すると、ある一辺の2つの頂点座標をA(x1,y1)、B(x2,y2)、高さをHとすると、その側面の三角ポリゴンは図示のようになる。A、B以外の座標はC:(x2,y2+H)、D:(x1,y2+H)となる。つまり側面の三角ポリゴンは「A,B,C」、「A,C,D」の頂点を結ぶことで作成できる。この方法を他の3辺にも適用することで3次元な立体の座標が手に入れられる。
【0045】
4.1.2 上面ポリゴンの生成
上面の形状は、単純で無い多角形の場合が多いため、側面に比べ三角形分割が複雑になる。多角形の分割アルゴリズムには「ボロノイ多角形とドロネー三角形分割」、「デローニ三角形分割」などがあるが、今回は描画プログラムにOpenGLを使用しているということもあり、OpenGLのライブラリの一つであるGLUライブラリのタイリングルーチンを利用した(Mark J.Kigard, OpenGL Programing for the X Window System(日本語版)、p58、1997)。
【0046】
OpenGLでは性能上の理由から凸多角形の描画だけをサポートしており、凹型の多角形は小さな凸型多角形に分割しなければならない。タイリング用のGLUライブラリルーチンには図8に示されるようなものがある。
【0047】
図8のルーチンの実際の用法を順に説明する;
static GLUtriangulatorObj *tobj = NULL;
タイリングオブジェクト格納用のポインタを宣言する;
tobj = gluNewTess();
新しくタイリングオブジェクトを作成し、先ほど作成したポインタに代入する;
次にコールバックを指定する;
gluTessCallback(tobj,GLU_BEGIN, (void (__stdcall *) (void))glBegin);
gluTessCallback(tobj,GLU_VERTEX, (void (__stdcall *) (void))GetVertex);
gluTessCallback(tobj,GLU_EDGE_FLAG,(void (__stdcall *) (void))GetFlag);
gluTessCallback(tobj,GLU_END, (void (__stdcall *) (void))glEnd);
この4つの指定の中でもGLU_VERTEX、GLU_EDGEが重要となる。GLU_VERTEXはgluTessVertex()ルーチンによって登録された凹型多角形の頂点が三角形に分割されるごとに呼び出されるコールバックルーチンを指定する。ここではGetVertexとしているが、この関数は _stdcall void GetVertex(void *data) の様に定義され、void型のポインタによりGLdouble型の3つの頂点の値を受け取る。それをメンバ変数などで保持することで、三角形分割ができる。ただし、このコールバックと共にGLU_EDGEについても指定しなければ正しい値を受け取ることはできない。ここでのコールバック関数は _stdcall void GetFlag(GLboolean b) の様に記述したが、このフラグはこのGetFlagの次に呼ばれるGetVertexに渡される頂点の値が、始めに登録した凹型の多角形の頂点の中にあるかどうかを示すものである。今回の処理においてこの値は必要としないが、正しく分割された頂点の値を得るにはこのコールバックを指定しなければならない。
【0048】
gluBeginPolygon(tobj);
for(int i=0; i<VerNum++)
{
gluTessVertex(tobj, vertex[i], vertex[i]);
}
gluEndPolygon(tobj);
その後、gluBeginPolugon(tobj)でタイリングを開始し、自分の多角形の頂点数ループを繰り返し、gluTessVertexでfloat[3]やdouble[3]の形で頂点の値を渡す。2、3番目の引数は同じもので良い。そして最後にgluEndPolygonを実行することで、先ほど指定したコールバック関数が連続で呼ばれ、タイリングされた頂点が取得できる。
【0049】
4.2 正面判定
本研究では自動的に正面を判定することで様々な自動処理の実現を図る。その判定項目は、周囲の建物との距離(距離が遠い面を正面とする)、面の大きさを用いるのだが、始めに前者の方法について説明する。
【0050】
周囲の建物との距離の計算には直方体のバウンディングボックスを用いる。作成したバウンディングボックスの4辺それぞれに対し、縦の長さが一定の長方形を作成し、その長方形に対して他辺との交点、内側に含まれる点を他の全ての建物オブジェクトに対し計算する。その値を元に各オブジェクトとの距離を算出し、正面判定に利用する。次節においてバウンディングボックスについて述べる。
【0051】
4.2.1 バウンディングボックス
バウンディングボックスとはオブジェクトを囲む衝突判定領域のことである。最も単純な作成方法は、あるオブジェクトの最大・最小のX,Y座標を用いるもので、非常に簡単に作成できる反面、判定が曖昧になってしまうという欠点がある。例えば図9左側に示される様なバウンディングボックスを作る時、右下に大き空間ができてしまう。
【0052】
今回はオブジェクトの正面のスペースを判定するためのものであり、このバウンディングボックスの作成方法は適さない。そこで以下に説明する方法で、図9右側に示されるような、よりオブジェクトにフィットしたバウンディングボックスを作成する。
【0053】
図10は、バウンディングボックスの生成処理を示す。この手法の特徴は、始めに述べた最大・最小値から求める手法ではX・Y軸に沿った辺が作成されるのに対し、始めの一辺をそのオブジェクトを象徴するような最も大きな辺と同じ傾きで作成し、それを基準に次からの辺を作成することにある。次に、作成された辺が縦・横の方向について調べる。そして縦であるなら上向き・下向きを、横であるなら右向き・左向きかをチェックする。これは次に作成する辺がどの点を通れば、オブジェクトを包むような辺ができるのかを判断する為のものである。
【0054】
図11を参照し、具体的な例を用いて説明する。(図11、1段目)始めに、オブジェクトの最長の辺を探し出し、それに平行な辺Aを作成する。まだこの辺Aの終点は決定していない。(図11、2段目)次に、作成した辺Aの向きを調べる。今回は横・右向きであるので、次に作成する辺は、最大のX座標を通り、作成した辺に直行するものになる。その条件を用いて作られたのが、図11、2段目の辺Bである。そしてこの辺Bと辺Aの交点を求め、それが辺Aの終点となる。次はこの辺Bを基準にして、同じ判定を行う。(図11、3段目)線Bは縦・上向きである。よって次に作成する辺は最大のY座標を通るものとなるので、図11、3段目の辺Cが引かれる。先ほどと同様に交点を求め、それを辺Bの終点に設定する。(図11、4段目)同様の方法を4本目の辺にも適用することで、最長の辺を活かしたバウンディングボックスを作成できた。まだ左上部にはスペースがあるが、建物であると想定するとその部分は敷地内であり、建物オブジェクトの一部と考えられるのでむしろ都合がよい。このアルゴリズムを適用することで、様々なバウンディングボックスを作成可能である。
【0055】
4.2.2 建物オブジェクト周囲のスペース判定
オブジェクト周囲スペース計算の具体的な方法として、前述したバウンディングボックスに密着した長方形を作成する。その長方形(以後サラウンドボックスと呼ぶ)と、他の建物オブジェクトのバウンディングボックスとの交点を求め、その交点から自分のバウンディングボックスまでの距離を求める。ここでは、上述の交点、及び長方形内側にあるバウンディングボックスの頂点(以下内包点)を求め、その求められた点までの距離が求められる。この距離が、建物オブジェクトの一面からの他の建物オブジェクトまでの距離となる。
【0056】
図13は、交点および内包点を求めた結果の例であり、二つの建物オブジェクトA、Bについて計算している。中央にある四角形のオブジェクトの周囲に設けられた4つの長方形(A1〜A4、B1〜B4)がサラウンドボックスである。点aは、サラウンドボックスA3(バウンディングボックスAから右側に延びる)とバウンディングボックスBとの交点である。この図の建物オブジェクトはバウンディングボックスとほぼ同じ形状であるため、交点は建物オブジェクトの辺上にある。右側の建物(B)から左に延びているサラウンドボックスB3では、内包点bがポイントされている。内包点bは、バウンディングボックスAの頂点である。
【0057】
ある面で複数の交点・内包点がある場合、もっとも距離が近い点を採用する。例えば、ある面(バウンディングボックスの一辺)に関して2組の交点、内包点が得られたとき、交点、内包点間の距離が比較され、距離が短い方の組合せの交点、内包点が採用される。こうして、各面にはたった一つだけの交点が対応する。そして、採用された交点、内包点の距離が、該当する面の前のスペースとして用いられる。この処理は、バウンディングボックスの4面すべてに施される。
【0058】
以上により、バウンディングボックスの各面上の交点および対応する内包点が求められる。次に、交点および内包点を用いた正面判定条件を説明する。正面判定においては、(1)交点が存在しない場合:面の大きさにより正面を決定する。(2)交点が一つの場合:交点がある面を正面とする。(3)交点が複数ある場合:複数の交点のうち、交点までの距離が最も長い面を正面とする。すなわち、各面上の交点から対応する内包点までの距離が得られ、これらの距離が比較される。距離が最大である交点が乗っている面が正面であると判断される。詳細には、求められたバウンディングボックスの辺に対応する建物の面が、建物の正面とされる。
【0059】
続いて、交点を求めるために必要なサラウンドボックス(バウンディングボックスの周囲に延びた長方形)の作成方法を図13を参考にしながら説明する。
【0060】
全ての建物オブジェクトを公平に判定するためには、建物オブジェクトの辺から伸びる長方形は一定の長さ・オブジェクトに適した傾きであることが求められる。今回のプログラム中では20という距離設定になっている。傾きが一定でない辺から距離が一定の点を求めて長方形を得るために、以下の処理を行う。
【0061】
図13に示されるように、まずあらかじめ定めておいた長さ(20)の正方形を作成する。次にその正方形の2辺を、対象となる建物オブジェクトの面(バウンディングボックスの辺)の長さに変形する。その後、面とX軸との角度を内積を利用して求め、その角度だけ変形した長方形を回転させる。そして作成された長方形を密着させたい面の座標に移動させる。以上の処理により、建物オブジェクトのある面に密着した一定の距離の長方形が作成できる。
【0062】
作成したサラウンドボックスと他の全ての建物オブジェクトに対する交点・内包する点を求め、これにより正面判定を行える。
【0063】
ここで、交点は直線と直線の交点を求めればよく容易である。また、内包点は以下のようにして判定される。
【0064】
図14を参照すると、ある四角形の中に点が内包されるかどうかを判定するために、外積を用いて、点が四角形の全ての辺に対し同じ方向(今回のサラウンドボックスは左回りに定義されているので左側)に位置するかを調べる。全てが同じ方向であれば内包され、一つでも異なる方向があれば外側にあるということになる。
【0065】
以上の計算により決定されたバウンディングボックスの正面と、建物オブジェクトを構成する面との傾きを比較し、最も角度が近く距離が近い面を正面とし、テクスチャの変更などを行う。
【0066】
4.3 テクスチャ生成
数値地図では様々な大きさ・高さの建物オブジェクトが存在し、かつ動的に高さの変更も行えるため、あらかじめテクスチャを用意することができない。そこで、多様な建物オブジェクトのために数多くのテクスチャを動的に生成する必要がある。今回はビルに対象を絞った手法を述べる。
【0067】
ビル壁面のデザインは単調なパターンで形成されている。それは現実の建物を見ても明らかである。そこで壁・窓を別々に用意し、壁に対し窓を重ねるように合成することで「壁の種類×窓の種類」個の壁面パターンが作成できる。図15は、その用意されたテクスチャ画像の一部である。
【0068】
窓の白い部分を切り抜いて壁と合成することで、一箇所のパターンが作成できる。これを面の長さ・高さに合わせて繰り返す回数を変更することで、ビルの大きさにあったテクスチャを張ることが可能となる。テクスチャの繰り返し回数の変更はOpenGLを用いて行った。図16はその実行例である。
【0069】
5.実行結果
5.1 実験環境
本システム作成環境はDELL社のDimension4300を用いた.CPUはDual Pentium IV 1.7GHz、Memoryは256MB、OSはWindows2000を使用し、Visual C++6.0でビルドした.3次元グラフィクス表示ライブラリにOpenGLを使用している。動作環境はOpenGLランタイムライブラリを導入しているWindows9x、WindowsNT、Windows2000で実行可能である.
【0070】
5.2 実行結果
図17および図18は同じ数値地図から作成したデータを描画したものである。テクスチャ自動生成の手法により、このような多くの建物オブジェクトが存在する空間を非常に手軽に作成することができた。
【0071】
また図19では正面判定を行った結果を形式的に描画した図である。図19において、四角形のポイントされている面が正面と判定されている。ある一つの建物オブジェクトの正面の判定が他のオブジェクトとは異なっているが、その原因は図欄外に他の建物オブジェクトが存在し、それとの交点の方が距離が遠い、つまり空間的スペースが大きかったため、正面の判定が横に立ち並ぶ建物オブジェクトとは異なっている。しかし、その他はほぼ理想通りの結果となっている。このことから今回の正面判定の手法は実用性があるといえる。さらにアルゴリズムを追加することで、今回正面方向が一つ異なっていることも解消できる。
【0072】
6.本研究では数値地図から、素早く・手軽に3次元空間を構築する手法についての検討を行った。街並みを構成するだけのオブジェクトを手作業によって構築するには大きなコストが必要である。しかしながら近年は3次元チャット、ゲーム等仮想空間を作成する機会が高まっており、また個人がCGを作成する流れも来ると予想され、手軽に3次元空間を構築したいという必要性および需要は高まりつつある。それに応えるべく本研究では、テクスチャの動的な生成による多数の建物オブジェクトの自動生成、入り口や道路作成に応用できる正面の判定などを行った。また今回はあえて簡単な情報のみの数値地図を用いた。これは将来的には数値地図及びGeoBaseを用いらずとも街並みを作成可能なシステムを考えていることに起因する。そうすることで本当に手軽に3次元空間が構築できると考える。
【0073】
なお、本研究の他の参考文献は、上原将文、全炳東、「数値地図を利用した広域都市3次元モデル構築」、電子情報通信学会論文誌D−II、Vol.J84D-II、No.8 pp1921-1924、2001」、である。
【0074】
「コンピュータグラフィックス処理装置の実施形態」
以下、上述の研究の発明が適用されたコンピュータグラフィックス処理装置の実施形態を説明する。
【0075】
図20は、本実施形態のコンピュータグラフィックス処理装置を示している。この構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0076】
図20の装置は、以下に説明されるように、本発明の地図データ処理方法を実行する。すなわち、この装置は、地図データ中の建物の正面を判定する機能をもつ。そして、この装置は、正面判定結果を利用して、街並みの3次元コンピュータグラフィックス画像(CG画像)を生成する。この装置の機能は、本発明のプログラムをコンピュータが実行することにより実現される。
【0077】
さらに、図20の装置は、汎用のパーソナルコンピュータで構成されている。したがって、キーボード、ポインティングデバイス、ディスプレイ、プリンタ等の入出力装置が備えられる。そして、生成された画像はディスプレイに表示される。ただし、本発明はこれに限定されない。例えば、本発明の装置は、WWWサーバとともに設けられ、インターネットに接続されてもよい。そして、この装置は、インターネットを介してユーザコンピュータから要求を受け付け、要求に応じてデータ処理を行い、その結果をユーザコンピュータに返してもよい。このときは、ユーザコンピュータに向けて、コンピュータグラフィックス画像が出力される。
【0078】
図20に示されるように、コンピュータグラフィックス処理装置10は、地図データ取得部12を含む。地図データ取得部12は、例えば、ハードディスク装置またはCD−ROM等の記録媒体から、地図データを取得する。地図データ取得部12は、通信により外部から地図データを取得してもよい。
【0079】
地図データは、建物の2次元形状(上方から見た形状)および配置を表す情報をもっていれば、任意のデータでよい。地図データは、典型的には、上述にて説明された比較的単純な数値地図である。ただし、本発明の範囲内で地図データはこれに限定されない。地図データは、より詳細な数値地図でもよい。
【0080】
また、地図データは、典型的には、実際の街並み等の電子化地図であるが、これに限定はされない。地図データは、仮想的な街並み等のデータでもよい。例えば、コンピュータグラフィックス処理装置10を用いて、ユーザにより市街地の建物群が画面上で描かれる。建物が描かれ、建物の配置が決定される。こうして作られたデータが、地図データとして、コンピュータグラフィックス処理装置10自身のCG作成機能に取得される。
【0081】
高さ情報取得部14は、地図データ取得部12により取得された地図データに含まれる建物の高さの情報を取得する。ユーザは、前述したように、マウス等のポインティングデバイスを用いて、各々の建物の高さを指定する。この指定された高さが、高さ情報取得部14に取得される。
【0082】
なお、本発明の範囲内で、高さ情報を取得する構成は上記に限定されない。例えば、高さの数値がユーザにより入力されてもよい。また、デフォルトの高さが自動的に建物に与えられ、その高さがユーザにより必要に応じて調整されてもよい。
【0083】
また、本実施形態では、地図データの一部のCGが作成されてもよい。この場合、ユーザにより地図の一部の範囲が指定される。そして、指定された範囲に含まれる建物の高さ情報が取得される。
【0084】
次に、3次元データ生成部16は、地図データおよび高さ情報に基づいて3次元データを生成する。3次元データ生成部16は、建物の2次元形状を、その高さまで引き上げることにより、3次元形状を得る。この処理は、コンピュータ上では、前述の処理により側面ポリゴンおよび上面ポリゴンを生成することで実現される。
【0085】
正面判定部18は、地図データに基づいて、地図データに含まれる建物の正面を判定する。建物の正面判定処理は、既に述べた通りである。すなわち、建物の正面は、地図データから得られる周囲の建物までの距離に基づいて判定される。正面判定部18は、周囲の建物までの距離が最大である面が建物の正面であると判定する。本実施形態では、建物を取り囲むバウンディングボックスが生成される。そして、バウンディングボックス間の距離が建物間の距離として用いられる。
【0086】
テキスチャ生成部20は、建物の壁面にテキスチャを張り付ける処理を行う。既に述べたように、予め複数のテキスチャが用意されている。それらの一つが各建物のために選択される。これによりテキスチャ生成のためのユーザの作業が簡単になる。
【0087】
出力処理部22は、テキスチャが張り付けられたCG画像を出力するための処理を行う。出力装置は典型的にはディスプレイである。このとき、出力処理部22は、CG画像をディスプレイに表示するための処理を行う。また、出力装置がプリンタであるとき、出力処理部22は、プリンタに向けてプリントデータを出力するための処理を行う。また、CG画像を別のコンピュータに送るとき、出力処理部22は、CG画像データを送出するための処理を行う。さらに、出力処理部22は、出力処理の一形態として、記録媒体(ハードディスクを含む)にCG画像を記録するための処理を行ってもよい。
【0088】
図21は、正面判定部18の構成を示している。バウンディングボックス生成部30は、図10および図11に示した処理を行って、建物を取り囲むバウンディングボックスを生成する。バウンディングボックスは、長方形でもよく、直方体でもよい。直方体の場合に、平面形状の長方形が図10および図11の処理で形成され、後述の処理で利用される。長方形生成部32は、図12および図13に示した処理を行って、バウンディングボックスに密着する長方形(サラウンドボックス)を生成する。
【0089】
バウンディングボックスおよび長方形は、地図データに含まれる複数の建物の各々に対して生成される。各建物の回りには、図12に示されるように、4つの長方形が生成される。
【0090】
交点・内包点検出部34は、バウンディングボックスおよび長方形を用いて、交点および内包点を検出する。交点および内包点の意味および検出処理は、図12を参照して既に説明した通りである。交点は、長方形とバウンディングボックスの交点である。また、内包点は、長方形に包含されるバウンディングボックスの頂点である。一の長方形の一の辺上にある交点と内包点の組合せ(図12参照)が、以下の処理で利用される。
【0091】
一つのバウンディングボックスは、4つの辺をもつ。各辺ごとに、交点とそれに対応する内包点が求められる。一つの辺に密着する長方形が複数の内包点をもつことがある。このとき、一つの辺上に複数の交点が存在する(交点および内包点の組合せが複数組存在する)。このような状況では、既に説明したとおり、交点および内包点の距離が最小になるような交点が選ばれる。
【0092】
最大面判定部36は、建物がもつ最大の面を判定する。最大面判定部36は、地図データに含まれる複数の建物の各々について、どの面が最も大きいかを判定する。
【0093】
正面決定部38は、建物の正面を決定する。正面決定部38は、地図データに含まれる複数の建物の各々について、どの面が正面かを決定する。正面判定においては、(1)交点が存在しない場合、面の大きさにより正面が決定される。正面決定部38は、最大の面が正面であると判定する。(2)交点が一つの場合、正面決定部38は、交点がある面が正面であると決定する。(3)交点が複数ある場合、正面決定部38は、交点・内包点間の距離を比較する。この距離が最も大きい交点が求められる。正面決定部38は、求められた交点が乗っている面が建物の正面であると決定する。
【0094】
(2)(3)の場合、建物の実際の面ではなく、バウンディングボックスの辺が正面として求められている。そこで、正面決定部38は、求められたバウンディングボックスの辺に対応する建物の面を求める。この判断には、バウンディングボックスの辺と建物の面の傾きおよび距離が用いられる。距離が近く、傾きが小さい面が選択される。このアルゴリズムでは、例えば、まず、着目している辺(バウンディングボックスの辺)に対向する辺に近い建物面が除外される(すなわち、バウンディングボックスの反対側に近い建物面が除外される)。それから、着目している辺との傾きが所定値以下の建物面が選択される。さらに、着目している辺に最も近い建物面が選択される。この距離は適当に定義されてよい。このアルゴリズムは、建物の一部が屈曲している場合にも好適に対応できる。このようにして、建物の正面が最終的に求められる。
【0095】
なお、本実施形態では、建物の2次元形状における辺が、建物の面の向き、大きさ等を表す情報として用いられてよい。
【0096】
補正部40は、正面決定部38の決定の結果を補正する。図19の例では、一つの建物の正面が、周囲の建物の正面と異なった方向を向いている。このような場合に、周囲の建物の正面判定結果に基づき、周囲の建物と同じ方向を正面が向くように、建物の判定結果が補正される。
【0097】
このアルゴリズムでは、例えば、多数決によって補正が行われる。着目する建物と距離が近い両隣の建物が求められる。ここでは前述のバウンディングボックス間の距離が用いられる。そして、着目する建物の正面方向が、両隣の建物の正面方向と比較される。そして、両隣の建物の正面方向が一致し、着目する建物の正面方向のみが異なるとき、両隣の建物に合わせて正面方向が変更される。この処理が各建物に対して行われる。
【0098】
図22は、テキスチャ生成部20の構成を示している。テキスチャ記憶部50は、複数種類の壁のテキスチャ、複数種類の窓のテキスチャおよび複数種類の出入口のテキスチャを記憶している。
【0099】
壁テキスチャ選択部52は、テキスチャ記憶部50に記憶されている複数種類の壁テキスチャから、建物の壁面に張り付けられるべき壁テキスチャを選択する。複数種類の壁テキスチャがユーザに提示され、その中の一つがユーザに指定される。この指定に従い、壁テキスチャが選択される。
【0100】
窓テキスチャ選択部54は、テキスチャ記憶部50に記憶されている複数種類の窓テキスチャから、建物の壁面に張り付けられるべき窓テキスチャを選択する。また、出入口テキスチャ選択部56は、テキスチャ記憶部50に記憶されている複数種類の出入口テキスチャから、建物の壁面に張り付けられるべき出入口テキスチャを選択する。窓テキスチャ選択部54および出入口テキスチャ選択部56の処理は壁テキスチャと同様でよく、ユーザの指示に従ってテキスチャを選択する。
【0101】
テキスチャ生成部20は、選択されたテキスチャを建物の壁面に張り付ける処理を行う。壁テキスチャおよび窓テキスチャの張り付け処理は、図15および図16を参照して既に説明した通りである。出入口テキスチャの張り付け処理は、窓テキスチャと同様にして行われる。ただし、出入口テキスチャは、建物の正面における所定の位置に張り付けられる。所定の位置とは、典型的には、建物の正面の中央下方である。
【0102】
上記のテキスチャ張付処理は、地図データに含まれる複数の建物の各々に対して行われる。
【0103】
次に、図20を再び参照して、コンピュータグラフィックス処理装置10の全体的な動作を説明する。処理されるべき地図データをユーザが指定すると、地図データが地図データ取得部12により取得される。地図データは、前述のように、ユーザがコンピュータグラフィックス処理装置10を使って作成したものでもよい。ユーザは、地図データ中の、CGが作られるべき範囲を指定してもよい。
【0104】
次に、ユーザが各建物の高さを指定すると、高さの情報が高さ情報取得部14により取得される。3次元データ生成部16は、地図データ中の建物の情報と取得された高さの情報とを用いて、3次元データを生成する。正面判定部18は、地図データを用いて各建物の正面を自動的に判定する。
【0105】
さらに、ユーザは、壁テキスチャ、窓テキスチャおよび出入口テキスチャを指定する。ユーザの指定にしたがって、壁テキスチャ、窓テキスチャおよび出入口テキスチャが建物の壁に貼り付けられる。出入口テキスチャは、正面判定結果に従い、建物の正面に張り付けられる。
【0106】
テキスチャが張り付けられたCG画像は、出力処理部22により出力される。例えば、CG画像は、ディスプレイに表示される。このとき、ユーザの要求に応じて視点の変更等の処理が施される。
【0107】
以上、本発明の好適な実施形態を説明した。本実施形態によれば、上述のように、建物間の距離を判断基準に用いることにより、建物の正面の判定が可能になる。正面判定結果は、CG画像生成に好適に利用されている。上述の実施形態では、正面に出入口のテキスチャを張り付けることで、実際の状況に近い画像が得られる。
【0108】
また、本実施形態によれば、地図中の建物の高さを指定するという簡単な作業で、3次元CG画像を得られる。街並みのCG画像生成においては、多数の建物を簡単に生成できることが求められる。この点で、地図データと高さ指定によりCG画像を作れる本実施形態は有利である。ただし、建物正面が表現されないと、CG画像に違和感が生じる。特に、ウォークスルー画像においては違和感が顕著になり得る。本実施形態によれば、正面が自動的に判定され、正面を表現するCG画像が生成される。したがって、違和感の少ないCG画像を生成できる。そして、本実施形態によれば、熟練者でなくても容易に、違和感のより少ない3次元CG画像を作成可能にする技術を提供できる。
【0109】
本実施形態では、バウンディングボックスを用いることにより、比較的簡単な処理で建物間の距離を判定している。より詳細には、本実施形態の処理は、バウンディングボックスおよびサラウンドボックスを利用し、交点および内包点(図12)を使って距離を算出している。
【0110】
図12から明らかなように、実施形態の距離計算において、一のバウンディングボックスAから他のバウンディングボックスBまでの距離は、実質的には、他のバウンディングボックスBの辺の延長線が一のバウンディングボックスAに達するまでの延長線の長さである。この延長線の長さを建物間の距離として用いることは、計算処理が簡単なので有利である。そして、上述の実施形態で説明した交点および内包点を使うことで、処理が簡単になる。
【0111】
この点に関し、仮にバウンディングボックス同士の傾き(辺同士の傾き)がなければ、距離の計算は容易である。しかし、実際には、上述の実施形態で扱われた例に示されるように、2つのバウンディングボックスの間に傾きがあることが多い。この場合に、ある建物Xの正面を考えるためには、建物Xの面の端(バウンディングボックスの頂点)から別の建物までの距離は、判断材料として適切でない。建物Xの面上の点(バウンディングボックスの辺上で両端以外の点)から別の建物までの距離が、判断材料として適当である。本発明によれば、上記の観点で判断材料として適切な距離であって、かつ、簡単な処理で求められる距離が用いられ、これにより、正面判定の処理が適切に、かつ簡単に行われる。
【0112】
なお、本発明の範囲内で、バウンディングボックス間の距離が適当に求められる範囲で、あるいは、適当な内包点および交点が求められる範囲で、長方形以外の四角形または他の多角形など、別のかたちのサラウンドボックスが用いられてもよい。
【0113】
さらに、本実施形態によれば、バウンディングボックスを用いて交点が得られないとき、すなわち、建物の周囲の所定の範囲に別の建物がないときに、建物の最も大きい面が正面であると判定される。したがって、建物の周囲の所定の範囲に別の建物がない状況でも、正面を適切に判定できる。
【0114】
以上、本発明を実施の形態をもとに説明した。上述の実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0115】
例えば、上述の実施形態では、正面判定結果は壁面のテキスチャ生成に利用されている。正面判定結果は、別のかたちで利用されてもよい。例えば、正面判定結果に基づいて道路を生成することができる。道路生成処理の一例では、複数の建物の正面に所定の幅の歩道が生成される。好ましくは、歩道がギザギザにならないように適当な修正が行われる。歩道と歩道の間が車道である。歩道および車道に適当なテキスチャが張り付けられる。
【0116】
また、上述の実施形態では、正面判定を行う地図データ処理機能が、コンピュータグラフィックス処理装置に組み込まれている。しかし、地図データ処理機能は、他の装置に組み込まれてもよい。例えば、地図データを用いた道案内装置に組み込まれてもよい。正面判定結果を用いて、ユーザを建物の正面まで導く適切な案内が可能となる。もちろん、道案内装置にさらに上述のCG技術が盛り込まれてもよい。
【0117】
また、上述の実施形態では、建物間の距離に基づく判定と、建物の面の大きさに基づく判定が組み合わされている。しかし、これらの片方のみを行う構成も本発明に含まれる。
【0118】
その他、上述の実施形態においては、図19を参照して説明したように、正面判定結果が不正確なこともあり得る。本実施形態は、このような誤りを適宜ユーザが手作業で修正するように構成されてよい。ある程度高い確率で正面判定結果が正確に得られれば、多少の修正が必要であったとしても、本発明の利点が十分に得られる。同様の観点で、一部の建物の正面が判定不能な場合には、そのような建物がユーザに提示され、ユーザによる正面の指定が求めれてもよい。さらには、ユーザの好みに応じて手作業で自由に正面が変更されてもよい。
【図面の簡単な説明】
【0119】
【図1】数値地図を用いた3次元街並みCG映像の構築の研究におけるCG作成システムを示す図である。
【図2】図1のシステムに用いられるGeoBaseを示す図である。
【図3】GeoBaseの支援機能を示す図である。
【図4】GeoBaseを用いて作成したアプリケーションの画面を示す図である。
【図5】マウスを用いた高さ変更処理を示す図である。
【図6】GeoBaseアプリケーションによって吐き出されたデータの例を示す図である。
【図7】側面ポリゴンの生成処理を示す図である。
【図8】上面ポリゴン生成のためのタイリング用のGLUライブラリルーチンを示す図である。
【図9】バウンディングボックスを示す図である。
【図10】バウンディングボックスの生成処理を示すフローチャートである。
【図11】図10に従ったバウンディングボックスの生成処理を示す図である。
【図12】建物周囲のスペースを求めるために、バウンディングボックスを用いて交点および内包点を求める処理を示す図である。
【図13】バウンディングボックスの周囲に延びた長方形の作成方法を示す図である。
【図14】内包点の判定処理を示す図である。
【図15】窓のテキスチャ画像の例を示す図である。
【図16】テキスチャパターンの変更処理を示す図である。
【図17】実行結果を示す図である。
【図18】実行結果を示す図である。
【図19】実行結果であって正面判定結果を示す図である。
【図20】実施の形態におけるコンピュータグラフィックス処理装置の構成を示す図である。
【図21】図20の正面判定部の構成を示す図である。
【図22】図20のテキスチャ生成部の構成を示す図である。
【符号の説明】
【0120】
10 コンピュータグラフィックス処理装置
12 地図データ取得部
14 高さ情報取得部
16 3次元データ生成部
18 正面判定部
20 テキスチャ生成部
22 出力処理部
30 バウンディングボックス生成部
32 長方形生成部
34 交点・内包点検出部
36 最大面判定部
38 正面決定部
40 補正部

【特許請求の範囲】
【請求項1】
プログラムされたコンピュータによって地図データに含まれる建物の正面を判定する地図データ処理方法であって、
地図データ取得部が、地図データを記憶する記録媒体もしくは外部から地図データを取得するステップと、
バウンディングボックス生成部が、前記地図データに含まれる建物を取り囲むバウンディングボックスを作成するステップと、
長方形生成部が、前記バウンディングボックスの各辺に対応するサラウンドボックスを作成するステップと、
交点・内包点検出部が、前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出するステップと、
前記交点が検出された場合に、正面決定部が、その交点から前記バウンディングボックスまでの距離を算出し、前記各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定するステップと、
を備えることを特徴とする地図データ処理方法。
【請求項2】
前記交点・内包点検出部により前記バウンディングボックスにおける全てのサラウンドボックスについて前記交点が検出されなかった場合、
最大面判定部が、建物の最も大きい面を判定するステップと、
前記正面決定部が、建物の最も大きい面が正面であると判定するステップと、
をさらに備えることを特徴とする請求項1に記載の地図データ処理方法。
【請求項3】
前記サラウンドボックスは、長方形であり、その長方形の高さは一定であることを特徴とする請求項1または2に記載の地図データ処理方法。
【請求項4】
補正部が、前記正面決定部により判定された建物の正面の判定結果を、その建物の近傍に位置する建物の正面判定結果に基づいて補正するステップをさらに備えることを特徴とする請求項1から3のいずれかに記載の地図データ処理方法。
【請求項5】
前記補正部が建物の正面の判定結果を補正するステップは、
補正の対象として着目している建物の両隣に位置する建物を求めるステップと、
着目している建物の正面方向を両隣の建物の正面方向と比較するステップと、
両隣の建物の正面方向が一致し、着目している建物の正面方向のみが異なる場合に、着目している建物の正面方向を、両隣の建物の正面方向と同じ方向となるよう変更するステップと、
を備えることを特徴とする請求項4に記載の地図データ処理方法。
【請求項6】
プログラムされたコンピュータによって地図データからコンピュータグラフィック画像を生成するコンピュータグラフィック処理方法であって、
地図データ取得部が、地図データを記憶する記録媒体もしくは外部から地図データを取得するステップと、
バウンディングボックス生成部が、前記地図データに含まれる建物を取り囲むバウンディングボックスを作成するステップと、
長方形生成部が、前記バウンディングボックスの各辺に対応するサラウンドボックスを作成するステップと、
交点・内包点検出部が、前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出するステップと、
前記交点が検出された場合に、正面決定部が、その交点から前記バウンディングボックスまでの距離を算出し、前記各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定するステップと、
前記正面決定部による建物の正面の判定結果を用いて、3次元データ生成部が、地図データからコンピュータグラフィック画像を生成するステップと、
を備えることを特徴とするコンピュータグラフィック処理方法。
【請求項7】
前記正面決定部により建物の正面であると判定された面に対して、テクスチャ生成部が、建物の出入口のテクスチャを張り付けるステップをさらに備えることを特徴とする請求項6に記載のコンピュータグラフィック処理方法。
【請求項8】
地図データを記憶する記録媒体もしくは外部から地図データを取得する地図データ取得部と、
前記地図データに含まれる建物を取り囲むバウンディングボックスを作成するバウンディングボックス生成部と、
前記バウンディングボックスの各辺に対応するサラウンドボックスを作成する長方形生成部と、
前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出する交点・内包点検出部と、
前記交点が検出された場合に、その交点から前記バウンディングボックスまでの距離を算出し、前記各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定する正面決定部と、
前記正面決定部による建物の正面の判定結果を用いて、前記地図データからコンピュータグラフィック画像を生成する3次元データ生成部と、
を備えることを特徴とするコンピュータグラフィック処理装置。
【請求項9】
前記交点・内包点検出部により前記バウンディングボックスにおける全てのサラウンドボックスについて前記交点が検出されなかった場合、建物の最も大きい面を判定する最大面判定部をさらに備え、
前記交点が検出されなかった場合に、前記正面決定部は、前記建物の最も大きい面が正面であると判定することを特徴とする請求項8に記載のコンピュータグラフィック処理装置。
【請求項10】
前記サラウンドボックスは、長方形であり、その長方形の高さは一定であることを特徴とする請求項8または9に記載のコンピュータグラフィック処理装置。
【請求項11】
前記正面決定部により判定された建物の正面の判定結果を、その建物の近傍に位置する建物の正面判定結果に基づいて補正する補正部をさらに備えることを特徴とする請求項8から10のいずれかに記載のコンピュータグラフィック処理装置。
【請求項12】
前記補正部は、
補正の対象として着目している建物の両隣に位置する建物を求める手段と、
着目している建物の正面方向を両隣の建物の正面方向と比較する手段と、
両隣の建物の正面方向が一致し、着目している建物の正面方向のみが異なる場合に、着目している建物の正面方向を、両隣の建物の正面方向と同じ方向となるよう変更する手段と、
を備えることを特徴とする請求項11に記載のコンピュータグラフィック処理装置。
【請求項13】
建物の2次元形状および配置を含む地図データを記憶する記録媒体もしくは外部から地図データを取得する地図データ取得部と、
前記地図データに含まれる建物の高さの情報を取得する高さ情報取得部と、
前記地図データに含まれる建物を取り囲むバウンディングボックスを作成するバウンディングボックス生成部と、
前記バウンディングボックスの各辺に対応するサラウンドボックスを作成する長方形生成部と、
前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出する交点・内包点検出部と、
前記交点が検出された場合に、その交点から前記バウンディングボックスまでの距離を算出し、各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定する正面決定部と、
前記高さ情報取得部により取得された高さまで前記2次元形状を引き上げることにより得られる3次元形状を有し、前記正面決定部の判定結果に従って正面が表現された建物を含む3次元コンピュータグラフィック画像を生成する3次元データ生成部と、
を備えることを特徴とするコンピュータグラフィック処理装置。
【請求項14】
前記正面決定部により建物の正面であると判定された面に対して、建物の出入口のテクスチャを張り付けるテクスチャ生成部をさらに備えることを特徴とする請求項13に記載のコンピュータグラフィック処理装置。
【請求項15】
コンピュータに地図データの処理を実行させるためのプログラムであって、
地図データ取得部が、地図データを記憶する記録媒体もしくは外部から地図データを取得する機能と、
バウンディングボックス生成部が、前記地図データに含まれる建物を取り囲むバウンディングボックスを作成する機能と、
長方形生成部が、前記バウンディングボックスの各辺に対応するサラウンドボックスを作成する機能と、
交点・内包点検出部が、前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出する機能と、
前記交点が検出された場合に、正面決定部が、その交点から前記バウンディングボックスまでの距離を算出し、前記各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定する機能と、
を実行させるためのプログラム。
【請求項16】
建物を含む3次元コンピュータグラフィックス画像を生成する処理をコンピュータに行わせるためのプログラムであって、
地図データ取得部が、地図データを記憶する記録媒体もしくは外部から地図データを取得する機能と、
バウンディングボックス生成部が、前記地図データに含まれる建物を取り囲むバウンディングボックスを作成する機能と、
長方形生成部が、前記バウンディングボックスの各辺に対応するサラウンドボックスを作成する機能と、
交点・内包点検出部が、前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出する機能と、
前記交点が検出された場合に、正面決定部が、その交点から前記バウンディングボックスまでの距離を算出し、前記各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定する機能と、
前記正面決定部による建物の正面の判定結果を用いて、3次元データ生成部が、前記地図データからコンピュータグラフィック画像を生成する機能と、
をコンピュータに行わせるためのプログラム。
【請求項17】
請求項15または16に記載のプログラムを記録した、コンピュータにて読取可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2007−149108(P2007−149108A)
【公開日】平成19年6月14日(2007.6.14)
【国際特許分類】
【出願番号】特願2006−343124(P2006−343124)
【出願日】平成18年12月20日(2006.12.20)
【分割の表示】特願2002−86532(P2002−86532)の分割
【原出願日】平成14年3月26日(2002.3.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PENTIUM
2.WINDOWS
【出願人】(593165487)学校法人金沢工業大学 (202)
【Fターム(参考)】