(57)【要約】【課題】地図中の建物の正面を判定可能にする。正面判定機能を応用したコンピュータグラフィックス処理技術を提供する。【解決手段】コンピュータグラフィックス処理装置１０は、正面判定を行う地図データ処理機能をもつ。すなわち、正面判定部１８は、地図データ取得部１２により取得された地図データから、地図データに含まれる建物の正面を、周囲の建物までの距離に基づいて判定する。周囲の建物までの距離が最大である面を建物の正面であると判定される。建物を取り囲むバウンディングボックスを用いることで、判定処理が簡単になる。コンピュータグラフィックス処理装置１０は、正面の判定結果に従って正面が表現された建物を含む３次元コンピュータグラフィック画像を生成する。具体的には、テキスチャ生成部２０が、出入口を表すテキスチャを建物正面に張り付ける。【選択図】図２０
2007149108.tif 000002
【特許請求の範囲】
【請求項１】
プログラムされたコンピュータによって地図データに含まれる建物の正面を判定する地図データ処理方法であって、
地図データ取得部が、地図データを記憶する記録媒体もしくは外部から地図データを取得するステップと、
バウンディングボックス生成部が、前記地図データに含まれる建物を取り囲むバウンディングボックスを作成するステップと、
長方形生成部が、前記バウンディングボックスの各辺に対応するサラウンドボックスを作成するステップと、
交点・内包点検出部が、前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出するステップと、
前記交点が検出された場合に、正面決定部が、その交点から前記バウンディングボックスまでの距離を算出し、前記各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定するステップと、
を備えることを特徴とする地図データ処理方法。
【請求項２】
前記交点・内包点検出部により前記バウンディングボックスにおける全てのサラウンドボックスについて前記交点が検出されなかった場合、
最大面判定部が、建物の最も大きい面を判定するステップと、
前記正面決定部が、建物の最も大きい面が正面であると判定するステップと、
をさらに備えることを特徴とする請求項１に記載の地図データ処理方法。
【請求項３】
前記サラウンドボックスは、長方形であり、その長方形の高さは一定であることを特徴とする請求項１または２に記載の地図データ処理方法。
【請求項４】
補正部が、前記正面決定部により判定された建物の正面の判定結果を、その建物の近傍に位置する建物の正面判定結果に基づいて補正するステップをさらに備えることを特徴とする請求項１から３のいずれかに記載の地図データ処理方法。
【請求項５】
前記補正部が建物の正面の判定結果を補正するステップは、
補正の対象として着目している建物の両隣に位置する建物を求めるステップと、
着目している建物の正面方向を両隣の建物の正面方向と比較するステップと、
両隣の建物の正面方向が一致し、着目している建物の正面方向のみが異なる場合に、着目している建物の正面方向を、両隣の建物の正面方向と同じ方向となるよう変更するステップと、
を備えることを特徴とする請求項４に記載の地図データ処理方法。
【請求項６】
プログラムされたコンピュータによって地図データからコンピュータグラフィック画像を生成するコンピュータグラフィック処理方法であって、
地図データ取得部が、地図データを記憶する記録媒体もしくは外部から地図データを取得するステップと、
バウンディングボックス生成部が、前記地図データに含まれる建物を取り囲むバウンディングボックスを作成するステップと、
長方形生成部が、前記バウンディングボックスの各辺に対応するサラウンドボックスを作成するステップと、
交点・内包点検出部が、前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出するステップと、
前記交点が検出された場合に、正面決定部が、その交点から前記バウンディングボックスまでの距離を算出し、前記各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定するステップと、
前記正面決定部による建物の正面の判定結果を用いて、３次元データ生成部が、地図データからコンピュータグラフィック画像を生成するステップと、
を備えることを特徴とするコンピュータグラフィック処理方法。
【請求項７】
前記正面決定部により建物の正面であると判定された面に対して、テクスチャ生成部が、建物の出入口のテクスチャを張り付けるステップをさらに備えることを特徴とする請求項６に記載のコンピュータグラフィック処理方法。
【請求項８】
地図データを記憶する記録媒体もしくは外部から地図データを取得する地図データ取得部と、
前記地図データに含まれる建物を取り囲むバウンディングボックスを作成するバウンディングボックス生成部と、
前記バウンディングボックスの各辺に対応するサラウンドボックスを作成する長方形生成部と、
前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出する交点・内包点検出部と、
前記交点が検出された場合に、その交点から前記バウンディングボックスまでの距離を算出し、前記各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定する正面決定部と、
前記正面決定部による建物の正面の判定結果を用いて、前記地図データからコンピュータグラフィック画像を生成する３次元データ生成部と、
を備えることを特徴とするコンピュータグラフィック処理装置。
【請求項９】
前記交点・内包点検出部により前記バウンディングボックスにおける全てのサラウンドボックスについて前記交点が検出されなかった場合、建物の最も大きい面を判定する最大面判定部をさらに備え、
前記交点が検出されなかった場合に、前記正面決定部は、前記建物の最も大きい面が正面であると判定することを特徴とする請求項８に記載のコンピュータグラフィック処理装置。
【請求項１０】
前記サラウンドボックスは、長方形であり、その長方形の高さは一定であることを特徴とする請求項８または９に記載のコンピュータグラフィック処理装置。
【請求項１１】
前記正面決定部により判定された建物の正面の判定結果を、その建物の近傍に位置する建物の正面判定結果に基づいて補正する補正部をさらに備えることを特徴とする請求項８から１０のいずれかに記載のコンピュータグラフィック処理装置。
【請求項１２】
前記補正部は、
補正の対象として着目している建物の両隣に位置する建物を求める手段と、
着目している建物の正面方向を両隣の建物の正面方向と比較する手段と、
両隣の建物の正面方向が一致し、着目している建物の正面方向のみが異なる場合に、着目している建物の正面方向を、両隣の建物の正面方向と同じ方向となるよう変更する手段と、
を備えることを特徴とする請求項１１に記載のコンピュータグラフィック処理装置。
【請求項１３】
建物の２次元形状および配置を含む地図データを記憶する記録媒体もしくは外部から地図データを取得する地図データ取得部と、
前記地図データに含まれる建物の高さの情報を取得する高さ情報取得部と、
前記地図データに含まれる建物を取り囲むバウンディングボックスを作成するバウンディングボックス生成部と、
前記バウンディングボックスの各辺に対応するサラウンドボックスを作成する長方形生成部と、
前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出する交点・内包点検出部と、
前記交点が検出された場合に、その交点から前記バウンディングボックスまでの距離を算出し、各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定する正面決定部と、
前記高さ情報取得部により取得された高さまで前記２次元形状を引き上げることにより得られる３次元形状を有し、前記正面決定部の判定結果に従って正面が表現された建物を含む３次元コンピュータグラフィック画像を生成する３次元データ生成部と、
を備えることを特徴とするコンピュータグラフィック処理装置。
【請求項１４】
前記正面決定部により建物の正面であると判定された面に対して、建物の出入口のテクスチャを張り付けるテクスチャ生成部をさらに備えることを特徴とする請求項１３に記載のコンピュータグラフィック処理装置。
【請求項１５】
コンピュータに地図データの処理を実行させるためのプログラムであって、
地図データ取得部が、地図データを記憶する記録媒体もしくは外部から地図データを取得する機能と、
バウンディングボックス生成部が、前記地図データに含まれる建物を取り囲むバウンディングボックスを作成する機能と、
長方形生成部が、前記バウンディングボックスの各辺に対応するサラウンドボックスを作成する機能と、
交点・内包点検出部が、前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出する機能と、
前記交点が検出された場合に、正面決定部が、その交点から前記バウンディングボックスまでの距離を算出し、前記各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定する機能と、
を実行させるためのプログラム。
【請求項１６】
建物を含む３次元コンピュータグラフィックス画像を生成する処理をコンピュータに行わせるためのプログラムであって、
地図データ取得部が、地図データを記憶する記録媒体もしくは外部から地図データを取得する機能と、
バウンディングボックス生成部が、前記地図データに含まれる建物を取り囲むバウンディングボックスを作成する機能と、
長方形生成部が、前記バウンディングボックスの各辺に対応するサラウンドボックスを作成する機能と、
交点・内包点検出部が、前記サラウンドボックスごとに、サラウンドボックスの辺と他の建物のバウンディングボックスの辺とが交差する交点を検出する機能と、
前記交点が検出された場合に、正面決定部が、その交点から前記バウンディングボックスまでの距離を算出し、前記各サラウンドボックスについての前記距離を基に、前記距離が最大となるサラウンドボックスを判定し、前記距離が最大となるサラウンドボックスに対応する前記バウンディングボックスの辺を基に、建物の正面を判定する機能と、
前記正面決定部による建物の正面の判定結果を用いて、３次元データ生成部が、前記地図データからコンピュータグラフィック画像を生成する機能と、
をコンピュータに行わせるためのプログラム。
【請求項１７】
請求項１５または１６に記載のプログラムを記録した、コンピュータにて読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地図データ処理方法およびその方法を利用したコンピュータグラフィック処理装置に関する。
【背景技術】
【０００２】
近年、コンピュータグラフィックス（以下、ＣＧ）の技術の発展は目覚しく、我々の目にも触れる機会が多くなり身近なものとなった。ＣＧは新たな映画やゲームなどの分野で大きく貢献している。３次元表示による説得力については誰も疑う余地の無いものである。今後もＣＧの活躍分野というのはさらに増えるであろう。ここで現在のＣＧの世界を観察してみると、個人が自分のためにＣＧを作成するというのはそれほど多くはない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、写真が撮影してもらうという受動的な立場から、自ら撮影し楽しむものになったように、現在、専門家がＣＧを作成するという状況から、気軽に一個人が自分のためにＣＧを作成する状況に変化していくだろう。そのような観点から考えると、現在のＣＧ作成には膨大な費用と時間、そして作成者の技術力が必要という問題がある。それを解決する技術として、個々のオブジェクトを写真から作成するイメージ・ベースド・モデリング（例えば、除  剛、写真から作る３次元ＣＧ−イメージ・ベースド・モデリング＆レンダリング−２００１）は、個人がＣＧを作成するには非常に有効な技術である。３次元・モデラーへの見識がそれほど無くとも、求める３次元オブジェクトが作成できる。しかし、多くの建物が立ち並ぶ街並みを再現するにはオブジェクトを個別に作成していては多くの手間・時間が必要となる。街並み作成の場合は一つ一つのオブジェクトの完成度よりも、どれだけ大量のオブジェクトを簡単に作成できるかが問題となる。
【０００４】
現在、数値地図から３次元の街並みを生成する技術として、数値地図と航空写真を用いてテクスチャまで動的に生成するもの（３次元ＧＩＳと消防支援システムへの利用、http://www.isad.or.jp/magzin/61_3zigen.htm）、数値地図のみを用いて３次元を生成するもの（杉原  健一、ＧＩＳとＣＧの統合化による３次元街並み自動生成システム、http://www.gis.pasco.co.jp/community/doc_lib/uc2000/user_pdf/p2000_4..pdf）が代表的な手法である。航空写真を用いる場合、確かにその完成度は向上するが作成にかかる時間の大幅な減少は望めず、手軽とは言い難い。また、作成を行う数値地図の場所に適合する航空写真が必要となり、データの入手方法も決して簡易とは言えない。ただ、国土地理院が平成１４年４月からインターネットで空中写真の閲覧サービスを開始するため、この手法が有効になる可能性も出てきてはいる。しかしながら、手軽さ・速度を求める場合にはこの手法は適さない。またもう一つの方法である数値地図のみからの作成では、テクスチャをどのように用意するのかが大きな問題となる。
【０００５】
本発明者は、以上のような問題点を考慮しながら、手軽さ・速度を目標に研究を行っている。そして、本発明者は、航空写真は用いず３次元の街並み生成を行い、テクスチャは動的に生成するグラフィック処理の研究を行っている。
【０００６】
本発明者は、こうした研究の中で、建物を含んだ街並み等の地図データを利用するうちに、こうした地図データが建物の正面の情報をもっていないことに着目した。これまで、地図データ中の建物の正面を判定する技術は提案されていない。仮に、建物の正面を判定できれば、そのような情報はグラフィックス処理にとって有用であると考えられる。例えば、建物の正面を考慮することで、よりリアルな画像を作ることができると考えられる。
【０００７】
上記の点に関し、従来の高度なＣＧ作成技術は、一般に、建物の玄関等を含む細かな形状をもモデリングの対象にしている。すなわち、モデリングの段階で建物の正面が決められている。したがって、建物の正面がどこかを判断するニーズがなかった。一方、簡単なＣＧ作成技術においては、建物の正面がどこかを表す情報に基づく処理は一般に行われていない。したがって、この場合も、建物の正面がどこかを判定するニーズがなかった。このような背景の下、発明者は、地図データから簡易に３次元グラフィックス画像を作る技術を研究する中で、建物の正面を判定することの有用性に着目した。
【０００８】
また、本発明者は、上述のように、グラフィックスの研究の中で建物正面の情報の有用性に着目した。しかし、建物正面の情報は、道案内等、地図データを使う他の用途にとっても有用であると考えられる。この点で、本発明の適用範囲はグラフィックス技術に限定される必要はない。
【０００９】
本発明は上記背景の下でなされたものであり、その目的は、地図データ中の建物の正面を判定する好適な技術を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の地図データ処理方法は、地図データに含まれる建物の正面を、周囲の建物までの距離に基づいて判定する。好ましくは、本発明の地図データ処理方法は、周囲の建物までの距離が最大である面を建物の正面であると判定する。
【００１１】
本発明は、街並みの地図データの処理を行うときに特に好適に作用する。街並みの地図データは、典型的には市街地の地図であって、比較的多くの建物がある場所の地図である。街並みの地図は、実際の街並みの地図でもよく、仮想的な街並みの地図でもよい。街並みでは、一般に、道路を挟む建物間の距離は比較的大きく、道路を挟まない建物間の距離は比較的小さい。そして、建物の正面は道路に面していることが多い。さらに、複数の道路に建物が面する場合、より広い道路に建物が面していることが多い。したがって、建物の正面は、一般に周囲の建物までの距離が大きい面である。本発明によれば、このような建物間の距離と建物の正面との関係に基づいて建物の正面を判定することにより、建物の正面を適切に求められる。
【００１２】
本発明の地図データ処理方法は、典型的には、後述するコンピュータグラフィックス処理技術に適用される。しかし、本発明はこれに限定されない。正面判定は、地図データを使う他の用途にも適用可能である。例えば、地図データを使った道案内に本発明の技術が応用されてもよ。また例えば、建物のみの２次元地図上に道路を描くとき、本発明の正面判定結果を好適に利用できる。
【００１３】
好ましくは、本発明の地図データ処理方法は、建物を取り囲むバウンディングボックス間の距離を建物間の距離として用いて、建物の正面を判定する。本発明によれば、建物が複雑な形状を有するときでも、比較的単純な処理によって建物の正面を求められる。バウンディングボックスは典型的には四角形である。この場合、建物が単純な四角形以外の形状を有するときでも、四角形同士の距離から建物の正面を判断すればよいので、正面判定処理が簡単になる。
【００１４】
好ましくは、本発明の地図データ処理方法において、一のバウンディングボックスから他のバウンディングボックスまでの距離は、前記他のバウンディングボックスの辺の延長線が前記一のバウンディングボックスに達するまでの延長線の長さである。この延長線の長さは、比較的簡単な処理で求められる。したがって、本発明によれば、比較的簡単な処理で建物の正面を求められる。
【００１５】
好ましくは、本発明の地図データ処理方法は、バウンディングボックスの各辺に対応するサラウンドボックスを形成し、サラウンドボックスとバウンディングボックスの交点を求め、サラウンドボックスに包含されるバウンディングボックスの頂点である内包点を求め、サラウンドボックスの辺上にある交点から内包点までの距離をバウンディングボックス間の距離として正面判定に用いる。上述の交点および内包点は比較的簡単に求められる。したがって、本発明によれば、比較的簡単な処理で建物の正面を求められる。
【００１６】
なお、サラウンドボックスは典型的には多角形であり、そして好ましくは四角形である。後述する実施形態においては、サラウンドボックスが長方形である。長方形を使った処理を行うとき、特殊な場合には、長方形の隣り合う２辺の長さが同じになり、結果的に正方形が生成されるが、このようにして作られた正方形も本発明では長方形に含まれるとみなされてよい。
【００１７】
好ましくは、建物の周囲に別の建物がないときに、前記建物の最も大きい面が正面であると判定する。例えば、上述の長方形を用いる態様において、長方形が他のバウンディングボックスと交差しないことがある。このような場合に、建物の最も大きい面が正面であることが多い。したがって、本発明によれば、建物の正面を適切に判定することができる。
【００１８】
本発明の別の態様における地図データ処理方法は、地図データに含まれる建物の最も大きな面が前記建物の正面であると判定する正面判定処理を行う。建物の正面は、建物がもつ複数の面のうちで最も大きな面であることが多い。したがって、本発明によれば、建物の正面を適切に判定できる。
【００１９】
本発明の別の態様は、コンピュータグラフィックス処理方法であり、この方法は、地図データを取得するステップと、地図データに含まれる建物の正面を、周囲の建物までの距離に基づいて判定するステップと、を含み、正面の判定結果を用いて地図データからコンピュータグラフィック画像を生成する。この態様は、上述の地図データ処理方法を利用してコンピュータグラフィックス画像を生成する。地図の正面の判定結果を用いることにより適切なコンピュータグラフィックス画像が生成される。例えば、建物の正面には建物の出入口のテキスチャが張り付けられ、現実により近い画像が得られる。
【００２０】
本発明の別の態様は、コンピュータグラフィックス処理装置であり、この装置は、地図データを取得する地図データ取得部と、地図データに含まれる建物の正面を、周囲の建物までの距離に基づいて判定する正面判定部と、を含み、正面の判定結果を用いて地図データからンピュータグラフィック画像を生成する。本発明によっても適切なコンピュータグラフィックス画像が生成される。
【００２１】
本発明の別の態様は、コンピュータグラフィック処理装置であり、建物の２次元形状および配置を含む地図データを取得する地図データ取得部と、前記地図データに含まれる建物の高さの情報を取得する高さ取得部と、地図データに含まれる建物の正面を、地図データから得られる周囲の建物までの距離に基づいて判定する正面判定部と、を含み、前記高さ取得部により取得された高さまで前記２次元形状を引き上げることにより得られる３次元形状を有し、前記正面判定部の判定結果に従って正面が表現された建物を含む３次元コンピュータグラフィック画像を生成する。本発明によれば、２次元の地図データから容易に３次元コンピュータグラフィックス画像を生成できる。さらに、建物の表現が表された、現実により近い画像を生成できる。
【００２２】
好ましくは、本発明のコンピュータグラフィック処理装置は、建物の正面であると判定された面には、建物の正面を表すテキスチャを張り付ける処理を行う。建物の正面を表すテキスチャは、例えば、出入口のテキスチャである。本発明によれば、現実により近い画像を生成できる。
【００２３】
正面判定結果は、上述のテキスチャの張り付け処理以外にも有用に利用可能である。例えば、建物の正面が道路に面していることが多い傾向を利用して、建物間の道路を自動生成することができる。
【００２４】
本発明の別の態様において、地図データ処理方法は、地図データに含まれる建物の正面を、周囲の建物までのスペースの情報に基づいて判定する正面判定処理を行う。好ましくは、本発明の方法は、周囲の建物までのスペースが最大である面を建物の正面であると判定する。この態様において、周囲の建物までのスペースは、上述した距離を含む。
【００２５】
しかし、スペースは、距離以外の情報でもよい。スペースは、面積でもよい。一例としては、建物の壁面の両端から、壁面に垂直な線が引かれる。壁面と両垂線と他の建物が形成する多角形の面積が求められる。この面積が最大になるような面が建物の正面であると判定される。また、このスペース判定にもバウンディングボックスが利用されてよい。
【００２６】
このように、スペースは距離以外でもよく、例えば、面積で表されてもよい。ただし、スペースとして距離を用いることは、処理が簡単であり、有利である。特に、バウンディングボックスを用いることで、さらには延長線、交点、内包点等を用いることで、簡単な処理により適切な判定ができ、有利である。
【００２７】
スペース情報を使えること、すなわち、距離に限定されなくてもよいことは、他の態様、例えば、コンピュータグラフィックス処理装置の態様においても同様である。
【００２８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、サーバ、システム、コンピュータプログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２９】
以上に説明したように、本発明によれば、地図データ中の建物の正面を判定可能になり、また、正面判定を利用する好適なコンピュータグラフィック処理技術を提供できる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明についてさらに説明する。以下では、まず、本発明者による研究「数値地図を用いた３次元街並みＣＧ映像の構築」について説明する。それから、同研究が適用されたコンピュータグラフィック処理装置の実施形態を説明する。このコンピュータグラフィックス処理装置には、下記の研究における正面判定機能が有利に組み込まれる。
【００３１】
１．はじめに
本研究では、街並みを構築する各３次元オブジェクトを、数値地図及び単純なテクスチャから作成する手法を述べる。目的はデジタルシティとバーチャルシティの中間点に位置するような２次元オブジェクトを作成することである。このシステムにより複数の建物オブジェクトが立ち並ぶ仮想空間の生成が誰にでも容易に短時間で可能となる。
【００３２】
現在でもＧＩＳにおいて2次元表示を可能としているシステムは多数あるが、３次元データとしての書き出しができない、別途航空写真を必要するシステムなど、本研究の目的である手軽な仮想空間の構築には適さない形態が多い。また、技術者がモデラーを用いて一から作成するには、モデラーに対する深い見識と熟練が必要とされ、街並み全体を作成するには大変な時間と労力を要する。この方法も本研究の目的には適さない。
【００３３】
本研究では2次元数値地図から瞬時に３次元データを作成し、建物オブジェクトの正面がどの面であるかを判定すると共に、テクスチャを自動生成することで「容易に短時間に仮想空間を構築」という目標を達成する。
【００３４】
２．システム構成、処理の流れ
図１は、本研究でのシステム構成と処理の流れを示している。本研究では数値地図データを扱うために、ＧｅｏＢａｓｅと呼ばれるＧＩＳに必要な各種の機能が凝縮された３２ビットＷＩＮＤＯＷＳ  ＤＬＬのツールライブラリを用いる。  本システムは、始めに２次元数値地図からデータを読みこむ。この数値地図はＧｅｏＢａｓｅが読み込める形式のものでなければならない。その後、読み込んだ図形群に対し高さ変更及び新たなオブジェクトの追加を行う。この段階でもＧｅｏＢａｓｅの機能を活かして仮の３次元表示が可能である。その後高さ情報を持った２次元データを書き出し、別プログラムへ処理を移す。
【００３５】
街並み作成プログラムでは、高さ情報と2次元データから３次元ポリゴンデータを生成し、そのオブジェクト間の距離を計算することで正面・側面を決定する。そして自動的にテクスチャを生成・貼り付けを行う。その後個々のオブジェクトに対し手入力による修正を施し、終了となる。また本研究では表示にＯｐｅｎＧＬを用いている
【００３６】
３．２次元数値地図での処理
３．１  ＧｅｏＢａｓｅアプリケーションおよび基本的な処理
このアプリケーションに用いたＧｅｏＢａｓｅのイメージを図２に示す。このアプリケーションでは数値地図の読み込み、建物オブジェクトの追加・削除、及び高さの変更が行える。また、３次元に加工するとどのような概観になるのかを、プリミティブなオブジェクトの状態でプレビューできる。その後、範囲を指定し2次元のベクトルデータを書き出す。
【００３７】
ＧｅｏＢａｓｅはアプリケーションではなく、アプリケーション作成を手助けするライブラリ群である。図３はＧｅｏＢａｓｅが提供する機能を示す。図３の支援機能の内、ウインドウコントロール、カラーパレットコントロール、ベクター図面表示、図形操作コマンドの４つを用いて以下の５つの基本的な処理を作成した。すなわち、（１）数値地図の読み込み、（２）ズームイン・ズームアウト、（３）ピック処理、（４）図形の追加・色の変更および（５）３次元表示である。これらの機能を用いて、２次元地図を自分が思い描いた配置に変更することが可能となる。
【００３８】
図４を参照すると、右側ウインドウが２次元地図、左ウインドウが３次元表示を行っている。２次元地図に対しオブジェクト追加の処理を加えると、左ウインドウにもリアルタイムに反映される。続いてこのＧｅｏＢａｓｅアプリケーションで最も特徴的なマウスを用いた高さ変更について述べる。
【００３９】
３．２  マウスによる高さ変更
ＧｅｏＢａｓｅ自体にはマウスで高さを変更できる機能は無いため、ピック処理と図形データ変更機能を組み合わせ実現した。図５を参照すると、高さを変更したいオブジェクトを選択し、その状態でマウスをドラッグすることでリアルタイムな高さ変更が可能となった。図５では途中経過がないが、実際の実行画面では滑らかに高さが変化する。
【００４０】
ここまでの処理により作成された２次元ベクトルデータを、「高さ情報、色、頂点データ」をセットにし、ファイルに書き出す。３次元街並み作成プログラムではそのデータを元に３角ポリゴンデータを作成する。
【００４１】
４．３次元空間の生成
４．１  ２次元データから３次元データの生成
４章ではＧｅｏＢａｓｅアプリケーションによって吐き出された２次元データから３次元データを生成する手法を述べる。始めに、その書き出されたデータの一部を図６に示す。
【００４２】
図６において、始めの３つの値はＲＧＢ（色データ）を示し、４番目の値「２」は高さを表す。最後の「４」はその次の行から羅列される頂点の数を示している。つまりこのデータは四角形ということになる。数値地図は巨大なマップで表現されるため、座標は非常に大きな値となっている。この値はいったん読み込んだ後正規化を施し、扱いやすい数値に変換する。次項でこの２次元座標を３次元ポリゴンに分割する方法を述べる。
【００４３】
４．１．１  側面ポリゴンの生成
今回は建物のオブジェクトの形状を、側面は平らであることに限定しているので、側面ポリゴンの生成は上面に比べ難易度は低く、非常に簡単である。面を上に引っ張るようなイメージそのままで作成できる。
【００４４】
図７を参照すると、ある一辺の２つの頂点座標をＡ（ｘ１，ｙ１）、Ｂ（ｘ２，ｙ２）、高さをＨとすると、その側面の三角ポリゴンは図示のようになる。Ａ、Ｂ以外の座標はＣ：（ｘ２，ｙ２＋Ｈ）、Ｄ：（ｘ１，ｙ２＋Ｈ）となる。つまり側面の三角ポリゴンは「Ａ，Ｂ，Ｃ」、「Ａ，Ｃ，Ｄ」の頂点を結ぶことで作成できる。この方法を他の３辺にも適用することで３次元な立体の座標が手に入れられる。
【００４５】
４．１．２  上面ポリゴンの生成
上面の形状は、単純で無い多角形の場合が多いため、側面に比べ三角形分割が複雑になる。多角形の分割アルゴリズムには「ボロノイ多角形とドロネー三角形分割」、「デローニ三角形分割」などがあるが、今回は描画プログラムにＯｐｅｎＧＬを使用しているということもあり、ＯｐｅｎＧＬのライブラリの一つであるＧＬＵライブラリのタイリングルーチンを利用した（Mark J.Kigard, OpenGL Programing for the X Window System(日本語版)、ｐ５８、１９９７）。
【００４６】
ＯｐｅｎＧＬでは性能上の理由から凸多角形の描画だけをサポートしており、凹型の多角形は小さな凸型多角形に分割しなければならない。タイリング用のＧＬＵライブラリルーチンには図８に示されるようなものがある。
【００４７】
図８のルーチンの実際の用法を順に説明する；
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);
この４つの指定の中でもGLU_VERTEX、GLU_EDGEが重要となる。GLU_VERTEXはgluTessVertex()ルーチンによって登録された凹型多角形の頂点が三角形に分割されるごとに呼び出されるコールバックルーチンを指定する。ここではGetVertexとしているが、この関数は  _stdcall void GetVertex(void *data)  の様に定義され、void型のポインタによりGLdouble型の３つの頂点の値を受け取る。それをメンバ変数などで保持することで、三角形分割ができる。ただし、このコールバックと共にGLU_EDGEについても指定しなければ正しい値を受け取ることはできない。ここでのコールバック関数は  _stdcall void GetFlag(GLboolean b)  の様に記述したが、このフラグはこのGetFlagの次に呼ばれるGetVertexに渡される頂点の値が、始めに登録した凹型の多角形の頂点の中にあるかどうかを示すものである。今回の処理においてこの値は必要としないが、正しく分割された頂点の値を得るにはこのコールバックを指定しなければならない。
【００４８】
gluBeginPolygon(tobj);
for(int i=0; i<VerNum++)
{
gluTessVertex(tobj, vertex[i], vertex[i]);
}
gluEndPolygon(tobj);
その後、gluBeginPolugon(tobj)でタイリングを開始し、自分の多角形の頂点数ループを繰り返し、gluTessVertexでfloat[3]やdouble[3]の形で頂点の値を渡す。２、３番目の引数は同じもので良い。そして最後にgluEndPolygonを実行することで、先ほど指定したコールバック関数が連続で呼ばれ、タイリングされた頂点が取得できる。
【００４９】
４．２  正面判定
本研究では自動的に正面を判定することで様々な自動処理の実現を図る。その判定項目は、周囲の建物との距離（距離が遠い面を正面とする）、面の大きさを用いるのだが、始めに前者の方法について説明する。
【００５０】
周囲の建物との距離の計算には直方体のバウンディングボックスを用いる。作成したバウンディングボックスの４辺それぞれに対し、縦の長さが一定の長方形を作成し、その長方形に対して他辺との交点、内側に含まれる点を他の全ての建物オブジェクトに対し計算する。その値を元に各オブジェクトとの距離を算出し、正面判定に利用する。次節においてバウンディングボックスについて述べる。
【００５１】
４．２．１   バウンディングボックス
バウンディングボックスとはオブジェクトを囲む衝突判定領域のことである。最も単純な作成方法は、あるオブジェクトの最大・最小のＸ，Ｙ座標を用いるもので、非常に簡単に作成できる反面、判定が曖昧になってしまうという欠点がある。例えば図９左側に示される様なバウンディングボックスを作る時、右下に大き空間ができてしまう。
【００５２】
今回はオブジェクトの正面のスペースを判定するためのものであり、このバウンディングボックスの作成方法は適さない。そこで以下に説明する方法で、図９右側に示されるような、よりオブジェクトにフィットしたバウンディングボックスを作成する。
【００５３】
図１０は、バウンディングボックスの生成処理を示す。この手法の特徴は、始めに述べた最大・最小値から求める手法ではＸ・Ｙ軸に沿った辺が作成されるのに対し、始めの一辺をそのオブジェクトを象徴するような最も大きな辺と同じ傾きで作成し、それを基準に次からの辺を作成することにある。次に、作成された辺が縦・横の方向について調べる。そして縦であるなら上向き・下向きを、横であるなら右向き・左向きかをチェックする。これは次に作成する辺がどの点を通れば、オブジェクトを包むような辺ができるのかを判断する為のものである。
【００５４】
図１１を参照し、具体的な例を用いて説明する。（図１１、１段目）始めに、オブジェクトの最長の辺を探し出し、それに平行な辺Ａを作成する。まだこの辺Ａの終点は決定していない。（図１１、２段目）次に、作成した辺Ａの向きを調べる。今回は横・右向きであるので、次に作成する辺は、最大のＸ座標を通り、作成した辺に直行するものになる。その条件を用いて作られたのが、図１１、２段目の辺Ｂである。そしてこの辺Ｂと辺Ａの交点を求め、それが辺Ａの終点となる。次はこの辺Ｂを基準にして、同じ判定を行う。（図１１、３段目）線Ｂは縦・上向きである。よって次に作成する辺は最大のＹ座標を通るものとなるので、図１１、３段目の辺Ｃが引かれる。先ほどと同様に交点を求め、それを辺Ｂの終点に設定する。（図１１、４段目）同様の方法を４本目の辺にも適用することで、最長の辺を活かしたバウンディングボックスを作成できた。まだ左上部にはスペースがあるが、建物であると想定するとその部分は敷地内であり、建物オブジェクトの一部と考えられるのでむしろ都合がよい。このアルゴリズムを適用することで、様々なバウンディングボックスを作成可能である。
【００５５】
４．２．２  建物オブジェクト周囲のスペース判定
オブジェクト周囲スペース計算の具体的な方法として、前述したバウンディングボックスに密着した長方形を作成する。その長方形（以後サラウンドボックスと呼ぶ）と、他の建物オブジェクトのバウンディングボックスとの交点を求め、その交点から自分のバウンディングボックスまでの距離を求める。ここでは、上述の交点、及び長方形内側にあるバウンディングボックスの頂点（以下内包点）を求め、その求められた点までの距離が求められる。この距離が、建物オブジェクトの一面からの他の建物オブジェクトまでの距離となる。
【００５６】
図１３は、交点および内包点を求めた結果の例であり、二つの建物オブジェクトＡ、Ｂについて計算している。中央にある四角形のオブジェクトの周囲に設けられた４つの長方形（Ａ１〜Ａ４、Ｂ１〜Ｂ４）がサラウンドボックスである。点ａは、サラウンドボックスＡ３（バウンディングボックスＡから右側に延びる）とバウンディングボックスＢとの交点である。この図の建物オブジェクトはバウンディングボックスとほぼ同じ形状であるため、交点は建物オブジェクトの辺上にある。右側の建物（Ｂ）から左に延びているサラウンドボックスＢ３では、内包点ｂがポイントされている。内包点ｂは、バウンディングボックスＡの頂点である。
【００５７】
ある面で複数の交点・内包点がある場合、もっとも距離が近い点を採用する。例えば、ある面（バウンディングボックスの一辺）に関して２組の交点、内包点が得られたとき、交点、内包点間の距離が比較され、距離が短い方の組合せの交点、内包点が採用される。こうして、各面にはたった一つだけの交点が対応する。そして、採用された交点、内包点の距離が、該当する面の前のスペースとして用いられる。この処理は、バウンディングボックスの４面すべてに施される。
【００５８】
以上により、バウンディングボックスの各面上の交点および対応する内包点が求められる。次に、交点および内包点を用いた正面判定条件を説明する。正面判定においては、（１）交点が存在しない場合：面の大きさにより正面を決定する。（２）交点が一つの場合：交点がある面を正面とする。（３）交点が複数ある場合：複数の交点のうち、交点までの距離が最も長い面を正面とする。すなわち、各面上の交点から対応する内包点までの距離が得られ、これらの距離が比較される。距離が最大である交点が乗っている面が正面であると判断される。詳細には、求められたバウンディングボックスの辺に対応する建物の面が、建物の正面とされる。
【００５９】
続いて、交点を求めるために必要なサラウンドボックス（バウンディングボックスの周囲に延びた長方形）の作成方法を図１３を参考にしながら説明する。
【００６０】
全ての建物オブジェクトを公平に判定するためには、建物オブジェクトの辺から伸びる長方形は一定の長さ・オブジェクトに適した傾きであることが求められる。今回のプログラム中では２０という距離設定になっている。傾きが一定でない辺から距離が一定の点を求めて長方形を得るために、以下の処理を行う。
【００６１】
図１３に示されるように、まずあらかじめ定めておいた長さ（２０）の正方形を作成する。次にその正方形の２辺を、対象となる建物オブジェクトの面（バウンディングボックスの辺）の長さに変形する。その後、面とＸ軸との角度を内積を利用して求め、その角度だけ変形した長方形を回転させる。そして作成された長方形を密着させたい面の座標に移動させる。以上の処理により、建物オブジェクトのある面に密着した一定の距離の長方形が作成できる。
【００６２】
作成したサラウンドボックスと他の全ての建物オブジェクトに対する交点・内包する点を求め、これにより正面判定を行える。
【００６３】
ここで、交点は直線と直線の交点を求めればよく容易である。また、内包点は以下のようにして判定される。
【００６４】
図１４を参照すると、ある四角形の中に点が内包されるかどうかを判定するために、外積を用いて、点が四角形の全ての辺に対し同じ方向（今回のサラウンドボックスは左回りに定義されているので左側）に位置するかを調べる。全てが同じ方向であれば内包され、一つでも異なる方向があれば外側にあるということになる。
【００６５】
以上の計算により決定されたバウンディングボックスの正面と、建物オブジェクトを構成する面との傾きを比較し、最も角度が近く距離が近い面を正面とし、テクスチャの変更などを行う。
【００６６】
４．３  テクスチャ生成
数値地図では様々な大きさ・高さの建物オブジェクトが存在し、かつ動的に高さの変更も行えるため、あらかじめテクスチャを用意することができない。そこで、多様な建物オブジェクトのために数多くのテクスチャを動的に生成する必要がある。今回はビルに対象を絞った手法を述べる。
【００６７】
ビル壁面のデザインは単調なパターンで形成されている。それは現実の建物を見ても明らかである。そこで壁・窓を別々に用意し、壁に対し窓を重ねるように合成することで「壁の種類×窓の種類」個の壁面パターンが作成できる。図１５は、その用意されたテクスチャ画像の一部である。
【００６８】
窓の白い部分を切り抜いて壁と合成することで、一箇所のパターンが作成できる。これを面の長さ・高さに合わせて繰り返す回数を変更することで、ビルの大きさにあったテクスチャを張ることが可能となる。テクスチャの繰り返し回数の変更はＯｐｅｎＧＬを用いて行った。図１６はその実行例である。
【００６９】
５．実行結果
５．１  実験環境
本システム作成環境はＤＥＬＬ社のDimension4300を用いた．ＣＰＵはＤｕａｌ  Ｐｅｎｔｉｕｍ  ＩＶ  １．７ＧＨｚ、Ｍｅｍｏｒｙは２５６ＭＢ、ＯＳはＷｉｎｄｏｗｓ２０００を使用し、Ｖｉｓｕａｌ  Ｃ＋＋６．０でビルドした．３次元グラフィクス表示ライブラリにＯｐｅｎＧＬを使用している。動作環境はＯｐｅｎＧＬランタイムライブラリを導入しているＷｉｎｄｏｗｓ９ｘ、ＷｉｎｄｏｗｓＮＴ、Ｗｉｎｄｏｗｓ２０００で実行可能である．
【００７０】
５．２  実行結果
図１７および図１８は同じ数値地図から作成したデータを描画したものである。テクスチャ自動生成の手法により、このような多くの建物オブジェクトが存在する空間を非常に手軽に作成することができた。
【００７１】
また図１９では正面判定を行った結果を形式的に描画した図である。図１９において、四角形のポイントされている面が正面と判定されている。ある一つの建物オブジェクトの正面の判定が他のオブジェクトとは異なっているが、その原因は図欄外に他の建物オブジェクトが存在し、それとの交点の方が距離が遠い、つまり空間的スペースが大きかったため、正面の判定が横に立ち並ぶ建物オブジェクトとは異なっている。しかし、その他はほぼ理想通りの結果となっている。このことから今回の正面判定の手法は実用性があるといえる。さらにアルゴリズムを追加することで、今回正面方向が一つ異なっていることも解消できる。
【００７２】
６．本研究では数値地図から、素早く・手軽に3次元空間を構築する手法についての検討を行った。街並みを構成するだけのオブジェクトを手作業によって構築するには大きなコストが必要である。しかしながら近年は３次元チャット、ゲーム等仮想空間を作成する機会が高まっており、また個人がＣＧを作成する流れも来ると予想され、手軽に３次元空間を構築したいという必要性および需要は高まりつつある。それに応えるべく本研究では、テクスチャの動的な生成による多数の建物オブジェクトの自動生成、入り口や道路作成に応用できる正面の判定などを行った。また今回はあえて簡単な情報のみの数値地図を用いた。これは将来的には数値地図及びＧｅｏＢａｓｅを用いらずとも街並みを作成可能なシステムを考えていることに起因する。そうすることで本当に手軽に３次元空間が構築できると考える。
【００７３】
なお、本研究の他の参考文献は、上原将文、全炳東、「数値地図を利用した広域都市3次元モデル構築」、電子情報通信学会論文誌Ｄ−ＩＩ、Vol.J84D-ＩＩ、No.8 pp1921-1924、2001」、である。
【００７４】
「コンピュータグラフィックス処理装置の実施形態」
以下、上述の研究の発明が適用されたコンピュータグラフィックス処理装置の実施形態を説明する。
【００７５】
図２０は、本実施形態のコンピュータグラフィックス処理装置を示している。この構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００７６】
図２０の装置は、以下に説明されるように、本発明の地図データ処理方法を実行する。すなわち、この装置は、地図データ中の建物の正面を判定する機能をもつ。そして、この装置は、正面判定結果を利用して、街並みの３次元コンピュータグラフィックス画像（ＣＧ画像）を生成する。この装置の機能は、本発明のプログラムをコンピュータが実行することにより実現される。
【００７７】
さらに、図２０の装置は、汎用のパーソナルコンピュータで構成されている。したがって、キーボード、ポインティングデバイス、ディスプレイ、プリンタ等の入出力装置が備えられる。そして、生成された画像はディスプレイに表示される。ただし、本発明はこれに限定されない。例えば、本発明の装置は、ＷＷＷサーバとともに設けられ、インターネットに接続されてもよい。そして、この装置は、インターネットを介してユーザコンピュータから要求を受け付け、要求に応じてデータ処理を行い、その結果をユーザコンピュータに返してもよい。このときは、ユーザコンピュータに向けて、コンピュータグラフィックス画像が出力される。
【００７８】
図２０に示されるように、コンピュータグラフィックス処理装置１０は、地図データ取得部１２を含む。地図データ取得部１２は、例えば、ハードディスク装置またはＣＤ−ＲＯＭ等の記録媒体から、地図データを取得する。地図データ取得部１２は、通信により外部から地図データを取得してもよい。
【００７９】
地図データは、建物の２次元形状（上方から見た形状）および配置を表す情報をもっていれば、任意のデータでよい。地図データは、典型的には、上述にて説明された比較的単純な数値地図である。ただし、本発明の範囲内で地図データはこれに限定されない。地図データは、より詳細な数値地図でもよい。
【００８０】
また、地図データは、典型的には、実際の街並み等の電子化地図であるが、これに限定はされない。地図データは、仮想的な街並み等のデータでもよい。例えば、コンピュータグラフィックス処理装置１０を用いて、ユーザにより市街地の建物群が画面上で描かれる。建物が描かれ、建物の配置が決定される。こうして作られたデータが、地図データとして、コンピュータグラフィックス処理装置１０自身のＣＧ作成機能に取得される。
【００８１】
高さ情報取得部１４は、地図データ取得部１２により取得された地図データに含まれる建物の高さの情報を取得する。ユーザは、前述したように、マウス等のポインティングデバイスを用いて、各々の建物の高さを指定する。この指定された高さが、高さ情報取得部１４に取得される。
【００８２】
なお、本発明の範囲内で、高さ情報を取得する構成は上記に限定されない。例えば、高さの数値がユーザにより入力されてもよい。また、デフォルトの高さが自動的に建物に与えられ、その高さがユーザにより必要に応じて調整されてもよい。
【００８３】
また、本実施形態では、地図データの一部のＣＧが作成されてもよい。この場合、ユーザにより地図の一部の範囲が指定される。そして、指定された範囲に含まれる建物の高さ情報が取得される。
【００８４】
次に、３次元データ生成部１６は、地図データおよび高さ情報に基づいて３次元データを生成する。３次元データ生成部１６は、建物の２次元形状を、その高さまで引き上げることにより、３次元形状を得る。この処理は、コンピュータ上では、前述の処理により側面ポリゴンおよび上面ポリゴンを生成することで実現される。
【００８５】
正面判定部１８は、地図データに基づいて、地図データに含まれる建物の正面を判定する。建物の正面判定処理は、既に述べた通りである。すなわち、建物の正面は、地図データから得られる周囲の建物までの距離に基づいて判定される。正面判定部１８は、周囲の建物までの距離が最大である面が建物の正面であると判定する。本実施形態では、建物を取り囲むバウンディングボックスが生成される。そして、バウンディングボックス間の距離が建物間の距離として用いられる。
【００８６】
テキスチャ生成部２０は、建物の壁面にテキスチャを張り付ける処理を行う。既に述べたように、予め複数のテキスチャが用意されている。それらの一つが各建物のために選択される。これによりテキスチャ生成のためのユーザの作業が簡単になる。
【００８７】
出力処理部２２は、テキスチャが張り付けられたＣＧ画像を出力するための処理を行う。出力装置は典型的にはディスプレイである。このとき、出力処理部２２は、ＣＧ画像をディスプレイに表示するための処理を行う。また、出力装置がプリンタであるとき、出力処理部２２は、プリンタに向けてプリントデータを出力するための処理を行う。また、ＣＧ画像を別のコンピュータに送るとき、出力処理部２２は、ＣＧ画像データを送出するための処理を行う。さらに、出力処理部２２は、出力処理の一形態として、記録媒体（ハードディスクを含む）にＣＧ画像を記録するための処理を行ってもよい。
【００８８】
図２１は、正面判定部１８の構成を示している。バウンディングボックス生成部３０は、図１０および図１１に示した処理を行って、建物を取り囲むバウンディングボックスを生成する。バウンディングボックスは、長方形でもよく、直方体でもよい。直方体の場合に、平面形状の長方形が図１０および図１１の処理で形成され、後述の処理で利用される。長方形生成部３２は、図１２および図１３に示した処理を行って、バウンディングボックスに密着する長方形（サラウンドボックス）を生成する。
【００８９】
バウンディングボックスおよび長方形は、地図データに含まれる複数の建物の各々に対して生成される。各建物の回りには、図１２に示されるように、４つの長方形が生成される。
【００９０】
交点・内包点検出部３４は、バウンディングボックスおよび長方形を用いて、交点および内包点を検出する。交点および内包点の意味および検出処理は、図１２を参照して既に説明した通りである。交点は、長方形とバウンディングボックスの交点である。また、内包点は、長方形に包含されるバウンディングボックスの頂点である。一の長方形の一の辺上にある交点と内包点の組合せ（図１２参照）が、以下の処理で利用される。
【００９１】
一つのバウンディングボックスは、４つの辺をもつ。各辺ごとに、交点とそれに対応する内包点が求められる。一つの辺に密着する長方形が複数の内包点をもつことがある。このとき、一つの辺上に複数の交点が存在する（交点および内包点の組合せが複数組存在する）。このような状況では、既に説明したとおり、交点および内包点の距離が最小になるような交点が選ばれる。
【００９２】
最大面判定部３６は、建物がもつ最大の面を判定する。最大面判定部３６は、地図データに含まれる複数の建物の各々について、どの面が最も大きいかを判定する。
【００９３】
正面決定部３８は、建物の正面を決定する。正面決定部３８は、地図データに含まれる複数の建物の各々について、どの面が正面かを決定する。正面判定においては、（１）交点が存在しない場合、面の大きさにより正面が決定される。正面決定部３８は、最大の面が正面であると判定する。（２）交点が一つの場合、正面決定部３８は、交点がある面が正面であると決定する。（３）交点が複数ある場合、正面決定部３８は、交点・内包点間の距離を比較する。この距離が最も大きい交点が求められる。正面決定部３８は、求められた交点が乗っている面が建物の正面であると決定する。
【００９４】
（２）（３）の場合、建物の実際の面ではなく、バウンディングボックスの辺が正面として求められている。そこで、正面決定部３８は、求められたバウンディングボックスの辺に対応する建物の面を求める。この判断には、バウンディングボックスの辺と建物の面の傾きおよび距離が用いられる。距離が近く、傾きが小さい面が選択される。このアルゴリズムでは、例えば、まず、着目している辺（バウンディングボックスの辺）に対向する辺に近い建物面が除外される（すなわち、バウンディングボックスの反対側に近い建物面が除外される）。それから、着目している辺との傾きが所定値以下の建物面が選択される。さらに、着目している辺に最も近い建物面が選択される。この距離は適当に定義されてよい。このアルゴリズムは、建物の一部が屈曲している場合にも好適に対応できる。このようにして、建物の正面が最終的に求められる。
【００９５】
なお、本実施形態では、建物の２次元形状における辺が、建物の面の向き、大きさ等を表す情報として用いられてよい。
【００９６】
補正部４０は、正面決定部３８の決定の結果を補正する。図１９の例では、一つの建物の正面が、周囲の建物の正面と異なった方向を向いている。このような場合に、周囲の建物の正面判定結果に基づき、周囲の建物と同じ方向を正面が向くように、建物の判定結果が補正される。
【００９７】
このアルゴリズムでは、例えば、多数決によって補正が行われる。着目する建物と距離が近い両隣の建物が求められる。ここでは前述のバウンディングボックス間の距離が用いられる。そして、着目する建物の正面方向が、両隣の建物の正面方向と比較される。そして、両隣の建物の正面方向が一致し、着目する建物の正面方向のみが異なるとき、両隣の建物に合わせて正面方向が変更される。この処理が各建物に対して行われる。
【００９８】
図２２は、テキスチャ生成部２０の構成を示している。テキスチャ記憶部５０は、複数種類の壁のテキスチャ、複数種類の窓のテキスチャおよび複数種類の出入口のテキスチャを記憶している。
【００９９】
壁テキスチャ選択部５２は、テキスチャ記憶部５０に記憶されている複数種類の壁テキスチャから、建物の壁面に張り付けられるべき壁テキスチャを選択する。複数種類の壁テキスチャがユーザに提示され、その中の一つがユーザに指定される。この指定に従い、壁テキスチャが選択される。
【０１００】
窓テキスチャ選択部５４は、テキスチャ記憶部５０に記憶されている複数種類の窓テキスチャから、建物の壁面に張り付けられるべき窓テキスチャを選択する。また、出入口テキスチャ選択部５６は、テキスチャ記憶部５０に記憶されている複数種類の出入口テキスチャから、建物の壁面に張り付けられるべき出入口テキスチャを選択する。窓テキスチャ選択部５４および出入口テキスチャ選択部５６の処理は壁テキスチャと同様でよく、ユーザの指示に従ってテキスチャを選択する。
【０１０１】
テキスチャ生成部２０は、選択されたテキスチャを建物の壁面に張り付ける処理を行う。壁テキスチャおよび窓テキスチャの張り付け処理は、図１５および図１６を参照して既に説明した通りである。出入口テキスチャの張り付け処理は、窓テキスチャと同様にして行われる。ただし、出入口テキスチャは、建物の正面における所定の位置に張り付けられる。所定の位置とは、典型的には、建物の正面の中央下方である。
【０１０２】
上記のテキスチャ張付処理は、地図データに含まれる複数の建物の各々に対して行われる。
【０１０３】
次に、図２０を再び参照して、コンピュータグラフィックス処理装置１０の全体的な動作を説明する。処理されるべき地図データをユーザが指定すると、地図データが地図データ取得部１２により取得される。地図データは、前述のように、ユーザがコンピュータグラフィックス処理装置１０を使って作成したものでもよい。ユーザは、地図データ中の、ＣＧが作られるべき範囲を指定してもよい。
【０１０４】
次に、ユーザが各建物の高さを指定すると、高さの情報が高さ情報取得部１４により取得される。３次元データ生成部１６は、地図データ中の建物の情報と取得された高さの情報とを用いて、３次元データを生成する。正面判定部１８は、地図データを用いて各建物の正面を自動的に判定する。
【０１０５】
さらに、ユーザは、壁テキスチャ、窓テキスチャおよび出入口テキスチャを指定する。ユーザの指定にしたがって、壁テキスチャ、窓テキスチャおよび出入口テキスチャが建物の壁に貼り付けられる。出入口テキスチャは、正面判定結果に従い、建物の正面に張り付けられる。
【０１０６】
テキスチャが張り付けられたＣＧ画像は、出力処理部２２により出力される。例えば、ＣＧ画像は、ディスプレイに表示される。このとき、ユーザの要求に応じて視点の変更等の処理が施される。
【０１０７】
以上、本発明の好適な実施形態を説明した。本実施形態によれば、上述のように、建物間の距離を判断基準に用いることにより、建物の正面の判定が可能になる。正面判定結果は、ＣＧ画像生成に好適に利用されている。上述の実施形態では、正面に出入口のテキスチャを張り付けることで、実際の状況に近い画像が得られる。
【０１０８】
また、本実施形態によれば、地図中の建物の高さを指定するという簡単な作業で、３次元ＣＧ画像を得られる。街並みのＣＧ画像生成においては、多数の建物を簡単に生成できることが求められる。この点で、地図データと高さ指定によりＣＧ画像を作れる本実施形態は有利である。ただし、建物正面が表現されないと、ＣＧ画像に違和感が生じる。特に、ウォークスルー画像においては違和感が顕著になり得る。本実施形態によれば、正面が自動的に判定され、正面を表現するＣＧ画像が生成される。したがって、違和感の少ないＣＧ画像を生成できる。そして、本実施形態によれば、熟練者でなくても容易に、違和感のより少ない３次元ＣＧ画像を作成可能にする技術を提供できる。
【０１０９】
本実施形態では、バウンディングボックスを用いることにより、比較的簡単な処理で建物間の距離を判定している。より詳細には、本実施形態の処理は、バウンディングボックスおよびサラウンドボックスを利用し、交点および内包点（図１２）を使って距離を算出している。
【０１１０】
図１２から明らかなように、実施形態の距離計算において、一のバウンディングボックスＡから他のバウンディングボックスＢまでの距離は、実質的には、他のバウンディングボックスＢの辺の延長線が一のバウンディングボックスＡに達するまでの延長線の長さである。この延長線の長さを建物間の距離として用いることは、計算処理が簡単なので有利である。そして、上述の実施形態で説明した交点および内包点を使うことで、処理が簡単になる。
【０１１１】
この点に関し、仮にバウンディングボックス同士の傾き（辺同士の傾き）がなければ、距離の計算は容易である。しかし、実際には、上述の実施形態で扱われた例に示されるように、２つのバウンディングボックスの間に傾きがあることが多い。この場合に、ある建物Ｘの正面を考えるためには、建物Ｘの面の端（バウンディングボックスの頂点）から別の建物までの距離は、判断材料として適切でない。建物Ｘの面上の点（バウンディングボックスの辺上で両端以外の点）から別の建物までの距離が、判断材料として適当である。本発明によれば、上記の観点で判断材料として適切な距離であって、かつ、簡単な処理で求められる距離が用いられ、これにより、正面判定の処理が適切に、かつ簡単に行われる。
【０１１２】
なお、本発明の範囲内で、バウンディングボックス間の距離が適当に求められる範囲で、あるいは、適当な内包点および交点が求められる範囲で、長方形以外の四角形または他の多角形など、別のかたちのサラウンドボックスが用いられてもよい。
【０１１３】
さらに、本実施形態によれば、バウンディングボックスを用いて交点が得られないとき、すなわち、建物の周囲の所定の範囲に別の建物がないときに、建物の最も大きい面が正面であると判定される。したがって、建物の周囲の所定の範囲に別の建物がない状況でも、正面を適切に判定できる。
【０１１４】
以上、本発明を実施の形態をもとに説明した。上述の実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１１５】
例えば、上述の実施形態では、正面判定結果は壁面のテキスチャ生成に利用されている。正面判定結果は、別のかたちで利用されてもよい。例えば、正面判定結果に基づいて道路を生成することができる。道路生成処理の一例では、複数の建物の正面に所定の幅の歩道が生成される。好ましくは、歩道がギザギザにならないように適当な修正が行われる。歩道と歩道の間が車道である。歩道および車道に適当なテキスチャが張り付けられる。
【０１１６】
また、上述の実施形態では、正面判定を行う地図データ処理機能が、コンピュータグラフィックス処理装置に組み込まれている。しかし、地図データ処理機能は、他の装置に組み込まれてもよい。例えば、地図データを用いた道案内装置に組み込まれてもよい。正面判定結果を用いて、ユーザを建物の正面まで導く適切な案内が可能となる。もちろん、道案内装置にさらに上述のＣＧ技術が盛り込まれてもよい。
【０１１７】
また、上述の実施形態では、建物間の距離に基づく判定と、建物の面の大きさに基づく判定が組み合わされている。しかし、これらの片方のみを行う構成も本発明に含まれる。
【０１１８】
その他、上述の実施形態においては、図１９を参照して説明したように、正面判定結果が不正確なこともあり得る。本実施形態は、このような誤りを適宜ユーザが手作業で修正するように構成されてよい。ある程度高い確率で正面判定結果が正確に得られれば、多少の修正が必要であったとしても、本発明の利点が十分に得られる。同様の観点で、一部の建物の正面が判定不能な場合には、そのような建物がユーザに提示され、ユーザによる正面の指定が求めれてもよい。さらには、ユーザの好みに応じて手作業で自由に正面が変更されてもよい。
【図面の簡単な説明】
【０１１９】
【図１】数値地図を用いた３次元街並みＣＧ映像の構築の研究におけるＣＧ作成システムを示す図である。
【図２】図１のシステムに用いられるＧｅｏＢａｓｅを示す図である。
【図３】ＧｅｏＢａｓｅの支援機能を示す図である。
【図４】ＧｅｏＢａｓｅを用いて作成したアプリケーションの画面を示す図である。
【図５】マウスを用いた高さ変更処理を示す図である。
【図６】ＧｅｏＢａｓｅアプリケーションによって吐き出されたデータの例を示す図である。
【図７】側面ポリゴンの生成処理を示す図である。
【図８】上面ポリゴン生成のためのタイリング用のＧＬＵライブラリルーチンを示す図である。
【図９】バウンディングボックスを示す図である。
【図１０】バウンディングボックスの生成処理を示すフローチャートである。
【図１１】図１０に従ったバウンディングボックスの生成処理を示す図である。
【図１２】建物周囲のスペースを求めるために、バウンディングボックスを用いて交点および内包点を求める処理を示す図である。
【図１３】バウンディングボックスの周囲に延びた長方形の作成方法を示す図である。
【図１４】内包点の判定処理を示す図である。
【図１５】窓のテキスチャ画像の例を示す図である。
【図１６】テキスチャパターンの変更処理を示す図である。
【図１７】実行結果を示す図である。
【図１８】実行結果を示す図である。
【図１９】実行結果であって正面判定結果を示す図である。
【図２０】実施の形態におけるコンピュータグラフィックス処理装置の構成を示す図である。
【図２１】図２０の正面判定部の構成を示す図である。
【図２２】図２０のテキスチャ生成部の構成を示す図である。
【符号の説明】
【０１２０】
１０  コンピュータグラフィックス処理装置
１２  地図データ取得部
１４  高さ情報取得部
１６  ３次元データ生成部
１８  正面判定部
２０  テキスチャ生成部
２２  出力処理部
３０  バウンディングボックス生成部
３２  長方形生成部
３４  交点・内包点検出部
３６  最大面判定部
３８  正面決定部
４０  補正部  
【図１】
2007149108.tif 000003
【図２】
2007149108.tif 000004
【図３】
2007149108.tif 000005
【図４】
2007149108.tif 000006
【図５】
2007149108.tif 000007
【図６】
2007149108.tif 000008
【図７】
2007149108.tif 000009
【図８】
2007149108.tif 000010
【図９】
2007149108.tif 000011
【図１０】
2007149108.tif 000012
【図１１】
2007149108.tif 000013
【図１２】
2007149108.tif 000014
【図１３】
2007149108.tif 000015
【図１４】
2007149108.tif 000016
【図１５】
2007149108.tif 000017
【図１６】
2007149108.tif 000018
【図１７】
2007149108.tif 000019
【図１８】
2007149108.tif 000020
【図１９】
2007149108.tif 000021
【図２０】
2007149108.tif 000022
【図２１】
2007149108.tif 000023
【図２２】
2007149108.tif 000024