(57)【特許請求の範囲】
【請求項１】
３次元地図において地物の外観を表すテクスチャを生成するテクスチャ生成システムであって、
前記地物の３次元形状を表す３次元モデルと、該地物に選択的に適用可能な複数種類の単位テクスチャとを記憶する地図データベースと、
前記単位テクスチャの選択を制御する制御値をピクセルごとに記憶した所定サイズのマトリックスを記憶するマトリックス記憶部と、
複数の前記単位テクスチャを配列して貼付することにより前記３次元モデルを構成するポリゴンのテクスチャを生成するテクスチャ生成部とを備え、
該テクスチャ生成部は、
前記ポリゴンにおける前記配列の各位置と、前記マトリックスのピクセルとを対応づけ、
前記各位置に対応する前記マトリックスの制御値に基づいて、複数種類の前記単位テクスチャのいずれかを選択し、
前記各位置に、それぞれ選択された単位テクスチャを配列して貼付するテクスチャ生成システム。
【請求項２】
請求項１記載のテクスチャ生成システムであって、
前記マトリックスは、前記単位テクスチャの各種類と１対１に対応する制御値を記憶しているテクスチャ生成システム。
【請求項３】
請求項１記載のテクスチャ生成システムであって、
前記マトリックスは、前記単位テクスチャの種類数よりも広い数値範囲の制御値を記憶しており、
前記テクスチャ生成部は、前記制御値と所定の閾値との比較により、前記制御値を前記単位テクスチャの種類数に量子化して前記選択を行うテクスチャ生成システム。
【請求項４】
請求項３記載のテクスチャ生成システムであって、
前記テクスチャ生成部は、所定の条件に応じて前記閾値を変化させて、前記選択を行うテクスチャ生成システム。
【請求項５】
請求項１〜４いずれか記載のテクスチャ生成システムであって、
前記テクスチャ生成部は、前記テクスチャの生成ごとに、前記配列の各位置と前記マトリックスのピクセルとの対応づけを変化させるテクスチャ生成システム。
【請求項６】
請求項１〜５いずれか記載のテクスチャ生成システムであって、
前記単位テクスチャは、複数種類の前記単位テクスチャを相互に重ならないように配置した単一の統合テクスチャとして記憶されており、
前記テクスチャ生成部は、前記選択に応じて、前記統合テクスチャのうち選択された単位テクスチャに対応する部分を貼付するテクスチャ生成システム。
【請求項７】
３次元地図において地物の外観を表すテクスチャを生成するテクスチャ生成方法であって、
コンピュータが実行するステップとして、
前記地物の３次元形状を表す３次元モデルと、該地物に選択的に適用可能な複数種類の単位テクスチャとを記憶する地図データベースを参照するステップと、
前記単位テクスチャの選択を制御する制御値をピクセルごとに記憶した所定サイズのマトリックスを参照するステップと、
複数の前記単位テクスチャを配列して貼付することにより前記３次元モデルを構成するポリゴンのテクスチャを生成するテクスチャ生成ステップとを備え、
該テクスチャ生成ステップは、
前記ポリゴンにおける前記配列の各位置と、前記マトリックスのピクセルとを対応づけるステップと、
前記各位置に対応する前記マトリックスの制御値に基づいて、複数種類の前記単位テクスチャのいずれかを選択するステップと、
前記各位置に、それぞれ選択された単位テクスチャを配列して貼付するステップとを備えるテクスチャ生成方法。
【請求項８】
コンピュータに、３次元地図において地物の外観を表すテクスチャを生成させるためのコンピュータプログラムであって、
前記地物の３次元形状を表す３次元モデルと、該地物に選択的に適用可能な複数種類の単位テクスチャとを記憶する地図データベースを参照する機能と、
前記単位テクスチャの選択を制御する制御値をピクセルごとに記憶した所定サイズのマトリックスを参照する機能と、
複数の前記単位テクスチャを配列して貼付することにより前記３次元モデルを構成するポリゴンのテクスチャを生成するテクスチャ生成機能とをコンピュータ実現させ、
該テクスチャ生成機能として、
前記ポリゴンにおける前記配列の各位置と、前記マトリックスのピクセルとを対応づける機能と、
前記各位置に対応する前記マトリックスの制御値に基づいて、複数種類の前記単位テクスチャのいずれかを選択する機能と、
前記各位置に、それぞれ選択された単位テクスチャを配列して貼付する機能とをコンピュータに実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地物の外観を表すテクスチャを生成するテクスチャ生成システムに関する。
【背景技術】
【０００２】
ナビゲーション装置やコンピュータの画面等に用いられる電子地図として、建物などの地物を３次元的に表現した３次元地図がある。３次元地図では、３次元モデルによって地物の３次元形状を表し、その表面に、地物の外観を表したテクスチャを貼付することで、リアリティを向上させている。テクスチャは、地物の外観全体ではなく、窓などの部分に対して生成されることもある。特許文献１は、ビルのような建物に対し、各階などの要素単位でテクスチャを用意しておき、これを階数に応じて繰り返し適用することで壁面全体のテクスチャとする技術を開示している。
近年、３次元地図のリアリティ向上に対する要請はますます高くなり、３次元地図で昼景だけでなく夜景を表すことも求められている。夜景の場合、ビルの窓は、明かりが点灯している部分と、消灯している部分とが混在する。夜景のリアリティを向上させるためには、明かりの点灯、消灯を混在させたテクスチャを用意する必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３６２１８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
夜景のリアリティを向上させるためには、明かりの点灯、消灯をランダムに配置することが望ましい。一つの方法として、建物の窓の点灯／消灯をそれぞれ表す２種類のテクスチャを用意し、窓ごとに乱数によって、点灯／消灯の２種類のテクスチャを選択しながら配置すれば、全体にランダムな点灯状態を表現することが可能である。しかし、３次元地図には多数の建物が含まれているため、このような方法では、夜景を表現するための処理負荷が膨大なものとなってしまう。
かかる処理負荷を軽減する方法として、複数の窓を配列したグループ単位で、点灯／消灯のパターンを表したテクスチャを複数種類用意し、乱数によって使い分けるという方法が考えられる。具体例を示す。
図１１は、２種類の点灯パターンを用いた夜景の３次元地図を例示する説明図である。この例では、図の上側に示すように、横２列×縦４段の８つの窓をグループとしている。図中のハッチングを示した窓は消灯していることを表している。パターンＡは、一番下の段と、下から２段目の右側の窓が消灯し、他の窓が点灯している状態のテクスチャである。パターンＢは、下の２段の窓が消灯し、他の窓が点灯している状態のテクスチャである。図の下側には、これらの点灯パターンを、乱数によって配置して夜景を表した例を示した。しかし、この例を注意深く見ると、建物の枠囲みの部分に、パターンＡ、パターンＢが見いだされ、このことによってリアリティが少なからず損なわれてしまうことになる。
【０００５】
つまり、リアリティを向上させるために最小単位である窓ごとに乱数を用いるようにすれば処理負荷が膨大なものとなり、逆に、処理負荷を軽減するために複数の窓を配列したグループ単位でテクスチャを使い分けるようにすればリアリティが損なわれてしまうのである。同様の課題は、窓を対象とする場合に限られず、また夜景に限られるものでもない。樹木においても、枝や葉を表したテクスチャなど樹木の部分に適用できる複数種類の単位テクスチャを用意し、ランダムに単位テクスチャを選択しながら全体のテクスチャを生成することができる。山、田畑、雲などにおいても、同様である。上述の課題は、複数種類のテクスチャを選択しながら適用可能な種々の地物において同様に生じ得る。
本発明は、かかる課題に鑑み、処理負荷の抑制と、規則性を回避することによるリアリティの向上とを両立させたテクスチャの生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、３次元地図において地物の外観を表すテクスチャを生成するテクスチャ生成システムであって、
前記地物の３次元形状を表す３次元モデルと、該地物に選択的に適用可能な複数種類の単位テクスチャとを記憶する地図データベースと、
前記単位テクスチャの選択を制御する制御値をピクセルごとに記憶した所定サイズのマトリックスを記憶するマトリックス記憶部と、
複数の前記単位テクスチャを配列して貼付することにより前記３次元モデルを構成するポリゴンのテクスチャを生成するテクスチャ生成部とを備え、
該テクスチャ生成部は、
前記ポリゴンにおける前記配列の各位置と、前記マトリックスのピクセルとを対応づけ、
前記各位置に対応する前記マトリックスの制御値に基づいて、複数種類の前記単位テクスチャのいずれかを選択し、
前記各位置に、それぞれ選択された単位テクスチャを配列して貼付するテクスチャ生成システムとして構成することができる。
【０００７】
本発明によれば、３次元モデルの外観を表すテクスチャとして、単位テクスチャがランダムに配置されたテクスチャを生成することができる。また、単位テクスチャの選択には、マトリックスに記憶された制御値を用いるため、３次元モデルの部位ごとに乱数を発生させるなどの処理を行う必要がなく、処理負荷を抑制することができる。この結果、単位テクスチャの配置に対して、規則性が認識されにくくなり、地物について、より自然な外観を表現することが可能となる。
３次元地図では、テクスチャを適用すべき３次元モデルが多数存在するため、マトリックスを用いることによる処理負荷の軽減効果は非常に大きい。
【０００８】
マトリックスのサイズは任意に設定可能である。そのサイズを大きくしておけば、ポリゴン上の各位置とマトリックスのピクセルとの対応づけが多様となるため、選択された単位テクスチャの配置パターンもより多様とすることができる。
ポリゴン上の各位置とマトリックスのピクセルとの対応付けは、種々の方法をとることができる。例えば、マトリックス上に基準点を定め、ポリゴン上の配列に応じた領域を対応づけてもよい。単位ピクセルをポリゴンに横２×縦３の配列で配置する場合には、それぞれの位置に基準点周りの２×３ピクセルを対応させるという方法である。ポリゴン上の各位置に対し、マトリックス上の連続した領域を割り当てる必要はない。例えば、ポリゴン上の各位置を所定の関数でマトリックス上のピクセルに座標変換する方法をとってもよい。
マトリックスは、単一種類である必要はなく、複数種類を使い分けるようにしてもよい。ただし、メモリからマトリックスを読み出す処理を軽減するという観点からは、多数のマトリックスを用意するよりも、単一の大きなサイズのマトリックスを用意する方が好ましい。
【０００９】
本発明におけるテクスチャの「生成」は、単位テクスチャを配列した１枚のテクスチャ画像を生成する態様、および３次元モデルに単位テクスチャを選択しながら直接貼付する態様の双方を含む。
本発明を適用可能な３次元モデルとしては、例えば、図１１に例示したような建物、樹木、山、田畑、雲などが考えられる。建物の場合は、単位テクスチャとして、窓の点灯／消灯状態を表すテクスチャを用意することができる。点灯、消灯の２種類のテクスチャを用意してもよいし、複数の窓の点灯パターンを表す３種類以上のテクスチャを用意してもよい。樹木の場合は、単位テクスチャとして、種々の状態の枝や葉などを表すテクスチャを用意することができる。そして、樹木の幹の周囲に、これらの単位テクスチャを選択しながら配置することによって、多様な樹木を表現することが可能となる。単位テクスチャ同士を重ねて配置するようにしてもよい。山や田畑も同様に、樹木や作物などの種々の状態を表す単位テクスチャを用意すればよい。雲の場合は、白、グレーなど、一つの雲の各部位の種々の色を表すテクスチャを用意することができる。雲の部分ごとに、これらのテクスチャを選択して配置すれば、種々の色が混じった多様な雲を容易に表現することができる。単位テクスチャ同士を重ねて配置するようにしてもよい。本発明は、この他にも多様な３次元モデルに適用可能である。
【００１０】
本発明において、マトリックスに格納される制御値は、種々の態様をとることができる。
例えば、前記マトリックスは、前記単位テクスチャの各種類と１対１に対応する制御値を記憶しているものとしてもよい。
例えば、単位テクスチャが２種類用意されているときは、制御値も２種類とする態様である。必ずしも０と１のように連続の値とする必要はなく、１０と１００など任意の値をとることができる。単位テクスチャが３種類用意されているときは、制御値も３種類とすればよい。
このように単位テクスチャと制御値が１対１に対応するようにしておけば、マトリックスの制御値に応じて速やかに単位テクスチャを一義的に決定することができるため、処理負荷をより軽減することができる。
【００１１】
また、本発明において、
前記マトリックスは、前記単位テクスチャの種類数よりも広い数値範囲の制御値を記憶しており、
前記テクスチャ生成部は、前記制御値と所定の閾値との比較により、前記制御値を前記単位テクスチャの種類数に量子化して前記選択を行うものとしてもよい。
例えば、制御値として０〜２５５の範囲のいずれかの値を格納しておく態様である。単位テクスチャが２種類用意されている場合には、閾値と制御値との大小関係に応じて、いずれかの単位テクスチャを選択するようにすればよい。単位テクスチャが３種類用意されている場合には、値が異なる第１、第２の閾値（第１の閾値＜第２の閾値）を用意し、(1)制御値＜第１の閾値の場合、(2)第１の閾値≦制御値＜第２の閾値の場合、(3)第２の閾値≦制御値の場合に分けて３種類の単位テクスチャを選択するようにすればよい。上記態様では、制御値の範囲および閾値は任意に設定可能であり、これらの設定に応じて、単位テクスチャが使用される割合を柔軟に設定することができる利点がある。
【００１２】
閾値を用いる場合には、
前記テクスチャ生成部は、所定の条件に応じて前記閾値を変化させて、前記選択を行うものとしてもよい。
こうすることにより、条件に応じて単位テクスチャが使用される割合を変化させることができ、多様なテクスチャを生成することができる利点がある。例えば、建物に対して、窓の点灯／消灯を表す２種類のテクスチャを用いる場合、閾値を時間に応じて変化させることによって、ほとんどの窓が点灯している夕刻過ぎの状態や、ほとんどの窓が消灯している夜中の状態など、多様な夜景を表現することが可能となる。
【００１３】
単位テクスチャをどのように選択するかに関わらず、
前記テクスチャ生成部は、前記テクスチャの生成ごとに、前記配列の各位置と前記マトリックスのピクセルとの対応づけを変化させるものとしてもよい。
こうすることにより、テクスチャを生成する度に、マトリックスの異なるピクセル、即ち異なる制御値を用いることができ、単位テクスチャの配列をより多様に変化させることができる。対応づけは、例えば、テクスチャを生成する対象となる地物が異なるごとに変化させてもよいし、同一の地物においてテクスチャを生成するポリゴンが異なるごとに変化させてもよい。
対応付けを変化させる方法も、種々の態様をとることができる。例えば、マトリックスの基準点周囲のピクセルを対応づける態様では、基準点の位置を変化させればよい。基準点の位置は、規則的に変化させてもよいし、乱数などに基づいて変化させてもよい。また、配列の各位置とピクセルとを関数で対応づける場合には、対応づけに用いられる関数を変化させてもよい。
【００１４】
また、本発明においては、単位テクスチャの形態も多様である。
前記単位テクスチャは、複数種類の前記単位テクスチャを相互に重ならないように配置した単一の統合テクスチャとして記憶されており、
前記テクスチャ生成部は、前記選択に応じて、前記統合テクスチャのうち選択された単位テクスチャに対応する部分を貼付するものとしてもよい。
仮に、複数種類の単位テクスチャが、個別の画像データとして用意されている場合には、選択結果に応じて、それぞれの単位テクスチャを読み出す処理が必要になることがある。これに対し、上記態様では、複数種類の単位テクスチャを配置した統合テクスチャが用意されているため、統合テクスチャをメモリから読み込みさえすれば、単位テクスチャの選択結果に応じた読み込み処理を繰り返す必要がなくなり、処理負荷を軽減することが可能となる。
統合テクスチャにおいて、単位テクスチャは、必ずしも隙間無く配置されている必要はなく、単位テクスチャの間に隙間が存在してもよい。
統合テクスチャは１つに限られない。非常に多くの単位テクスチャが用いられる場合、単位テクスチャを複数のグループに分け、グループごとに統合テクスチャを用意するようにしてもよい。
【００１５】
本発明においては、上述した種々の特徴を必ずしも全て備えている必要はなく、適宜、その一部を省略したり、組み合わせたりして構成してもよい。
本発明は、テクスチャ生成システムとしての構成だけでなく、こうしたテクスチャ生成を伴う３次元地図表示システムとして構成してもよい。また、コンピュータによって、テクスチャを生成させるテクスチャ生成方法、または３次元地図の表示方法として構成することもできる。本発明は、さらに、テクスチャの生成や３次元地図の表示をコンピュータに実行させるためのコンピュータプログラムとして構成してもよい。また、かかるコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体として構成してもよい。
【図面の簡単な説明】
【００１６】
【図１】３次元地図表示システムの構成を示す説明図である。
【図２】地図データベースの構造を示す説明図である。
【図３】３次元地図表示処理のフローチャートである。
【図４】夜景テクスチャ生成処理のフローチャートである。
【図５】単位テクスチャの選択方法を示す説明図である。
【図６】３次元地図の表示例（１）を示す説明図である。
【図７】３次元地図の表示例（２）を示す説明図である。
【図８】変形例（１）における単位テクスチャの選択方法を示す説明図である。
【図９】変形例（２）における単位テクスチャの選択方法を示す説明図である。
【図１０】変形例としての単位テクスチャの配置方法を示す説明図である。
【図１１】２種類の点灯パターンを用いた夜景の３次元地図を例示する説明図である。
【発明を実施するための形態】
【実施例１】
【００１７】
本発明についてコンピュータのディスプレイ上に３次元地図を表示する３次元地図表示システムとして構成した実施例を説明する。本発明のテクスチャ生成システムは、３次元地図表示システム内に組み込まれた形で実施される。３次元地図表示システムは、コンピュータの他、スマートフォン、携帯電話、タブレット端末などの携帯端末、ナビゲーション装置など種々の装置を用いて構成することもできる。
また、本実施例では、スタンドアロンで稼働するシステムを例示するが、図中に示す地図データベース２０等をサーバに格納し、サーバとナビゲーション装置とをネットワークで接続したシステムとして構成してもよい。
【００１８】
Ａ．システム構成：
図１は、３次元地図表示システムの構成を示す説明図である。実施例としての３次元表示システム１０は、ＣＰＵ、ＲＡＭ、ＲＯＭを備えるコンピュータに、図示する各機能を実現するためのコンピュータプログラムをインストールすることによってソフトウェア的に実現されている。各機能の少なくとも一部は、ハードウェア的に構成するものとしてもよい。また、コンピュータには、３次元地図のグラフィックスを行うために、ＣＰＵとは別に、ＧＰＵ（Graphics Processing Unit）を搭載してもよい。
【００１９】
図中の各機能ブロックの機能について説明する。
地図データベース２０は、３次元地図を表示するために必要なデータを格納している。図中の例では、３次元モデル２１、およびテクスチャデータ２２を示した。この他に、例えば、地図中に表示する文字を記憶する文字データベースを備えても良い。また、経路探索のためのネットワークデータ、即ち道路をリンク、ノードで表したデータベースを備えても良い。
３次元モデル２１は、建物などの地物の３次元形状を表すポリゴンデータ等を格納する。
テクスチャデータ２２は、地物の外観を表す画像データを、ポリゴンに貼付されるためのテクスチャとして記憶する。昼用テクスチャ２３は、昼景の３次元地図を表示する際に利用されるテクスチャである。夜景テクスチャ２４は、夜景の３次元地図を表示する際に利用されるテクスチャである。ビルのような建物について、昼用テクスチャ２３としては窓の形状を表す画像が用意され、夜景テクスチャ２４としては、窓の点灯状態を表す画像、消灯状態を表す画像などが用意される。
テクスチャデータ２２には、ポリゴン全体に貼付されるテクスチャと、ポリゴンに配列して貼付される単位テクスチャとが混在して用意されている。テクスチャデータ等の構造については、後述する。
【００２０】
コマンド入力部１１は、キーボードやマウスなどの操作部、またはネットワークを介してユーザのコマンドを入力する。コマンドとしては、３次元地図を表示する際の表示範囲、視点、視線方向、表示モードなどが挙げられる。本実施例では、３次元地図を昼景または夜景で表示可能となっているため、両者を切り換えるコマンドを含めてもよい。
地図表示制御部１２は、３次元地図の表示を制御する。また、地図データベースから必要なデータの読み込みなども行う。
３次元ポリゴン生成部１３は、３次元地図を表示するために仮想３次元空間内に、各地物の３次元モデル２１を配置する。
テクスチャ生成部１４は、３次元ポリゴンの表面にテクスチャを貼付する。昼用テクスチャ生成部１５は、昼用テクスチャ２３を用いて、昼景を表すテクスチャの貼付を行う。夜用テクスチャ生成部１６は、夜用テクスチャ２４を用いて夜景を表すテクスチャの貼付を行う。本実施例では、夜景を表す際には、窓の点灯／消灯状態を表した２種類の単位テクスチャをランダムに選択しながら配置することで、建物の窓がランダムに点灯した状態のテクスチャを生成している。この処理には、単位テクスチャの選択に用いられる制御値を格納したマトリックスが用いられる。マトリックス記憶部１７は、このマトリックスを記憶している。
本明細書において、テクスチャの「生成」というとき、複数の単位テクスチャを配置して１枚のテクスチャを生成する態様、および複数の単位テクスチャをポリゴン上に順次、貼付する態様の双方を含む。本実施例では、テクスチャ生成部１４は、後者の態様、即ち、単位テクスチャをポリゴン上に順次、貼付する態様でポリゴンのテクスチャを生成している。
以上で説明した機能ブロックのうち、本実施例においては、地図データベース２０、テクスチャ生成部１４、マトリックス記憶部１７が、本発明におけるテクスチャ生成システムを構成することになる。
【００２１】
図２は、地図データベースの構造を示す説明図である。
図の上側には、３次元モデル２１のデータ例を示した。３次元モデル２１には、地物ＩＤ、種別、ポリゴンなどのデータが格納される。
地物ＩＤは、地物の識別情報であり、右に示した建物の例では、地物ＩＤとして「Ｂ０１」が付されている。
種別は、地物の種類であり、右に示した例では「建物」となる。種別としては、この他、道路、鉄道、山、畑など種々の情報を用いることができる。また、樹木、雲などを種別に含めても良い。
ポリゴンには、図示するデータが格納される。
ポリゴンＩＤは、３次元モデルを構成する各ポリゴンの識別情報であり、右に示した例では、建物の正面のポリゴンにＰＯＬ１が付されている。
形状は、ポリゴンの形状を特定するデータであり、本実施例では頂点の座標値を記憶している。右に示した例では、ポリゴンの頂点ＰＰ１、ＰＰ２、ＰＰ３、ＰＰ４のそれぞれについて３次元の座標値が格納されることになる。座標値は、３次元地図全体の原点を基準とする絶対座標を用いても良いし、地物ごとに設定された基準点を原点とする相対座標を用いてもよい。後者の場合は、３次元モデル２１に、基準点の絶対座標値を別途、格納することになる。
テクスチャ繰り返し数とは、ポリゴンに貼付されるテクスチャの配列を規定する情報である。右の図の例では、建物の表面を横２×縦３の区分に分け、ここに窓のテクスチャを繰り返し貼付する。従って、テクスチャ繰り返し数には、（２，３）というデータが格納される。ポリゴン全体に一つのテクスチャを繰り替えしなく配置する場合には、テクスチャ繰り返し数は、（１，１）となる。
昼用テクスチャおよび夜用テクスチャは、それぞれポリゴンに使用されるテクスチャの識別情報を格納する。
３次元モデル２１には、地物の属性を表す属性データを含めても良い。例えば、建物について、名称、階数などを表すデータを属性データとすることができる。
【００２２】
図の下側には、テクスチャデータ２２の例を示した。テクスチャデータ２２には、昼用テクスチャ、夜用テクスチャが記憶されている。各テクスチャは、識別情報としてのテクスチャＩＤと、画像データで構成されている。
図の例では、昼用テクスチャについては、テクスチャＩＤとして「ＴＥＸ１」が付され、窓の形状を表す画像が用意されている。先に説明した３次元モデル２１では、昼用テクスチャとして、「ＴＥＸ１」が指定されているから、図の右側に示した建物（Ｂ０１）について昼景を表す際には、テクスチャデータ２２のＴＥＸ１で表される画像が、横２×縦３で繰り返し配列されることになる。
図の例では、夜用テクスチャについては、テクスチャＩＤとして「ＴＥＸ２」が付され、窓が消灯状態のＯＦＦ画像、窓が点灯状態のＯＮ画像の２種類の画像が用意されている。先に説明した３次元モデル２１では、夜用テクスチャとして、「ＴＥＸ２」が指定されているから、図の右側に示した建物（Ｂ０１）について夜景を表す際には、テクスチャデータ２２のＴＥＸ２で表されるＯＮ画像およびＯＦＦ画像が、選択されながら横２×縦３で繰り返し配列されることになる。
夜用テクスチャについては、ＯＦＦ画像、ＯＮ画像に「ＴＥＸ２ＯＦＦ」「ＴＥＸ２ＯＮ」のように個別のテクスチャＩＤを付してもよい。かかる場合には、両者を夜用テクスチャとして関連づける情報を、テクスチャデータ２２に用意してもよいし、３次元モデル２１の夜用テクスチャとして、「ＴＥＸ２ＯＦＦ」「ＴＥＸ２ＯＮ」という２つのテクスチャＩＤを格納するようにしてもよい。
夜用テクスチャは、各３次元モデルに対してＯＦＦ画像、ＯＮ画像のように必ずしも複数種類の画像を用意しておく必要はなく、単一の画像を用意しておいてもよい。
【００２３】
Ｂ．３次元地図表示処理：
次に、実施例の３次元地図表示システム１０において、３次元地図を表示する際の処理内容について説明する。
図３は、３次元地図表示処理のフローチャートである。処理を開始すると、３次元地図表示システム１０は、地図表示範囲を設定する（ステップＳ１０）。地図の表示範囲は、例えば、ユーザからの指示によるものとしてもよい。また、３次元地図表示システムが経路案内システムに組み込まれている場合には、経路探索の結果や現在位置などに応じて設定してもよい。３次元地図表示システム１０は、地図の表示範囲に応じて、地図表示に必要となる３次元モデルを地図データベース２０から読み込み、仮想３次元空間内に配置する（ステップＳ１２）。
【００２４】
次に、地図の表示モードに応じて、背景およびテクスチャの表示を行う。
昼景モードの場合（ステップＳ１４）、３次元地図表示システム１０は、昼用の背景、空や遠方の景色などを設定する（ステップＳ１６）。そして、地物に対して昼用テクスチャを表示する（ステップＳ１８）。テクスチャデータ２２から、３次元モデル２１で指定された昼用テクスチャを読み込み、各ポリゴンに貼付するのである。
夜景モードの場合（ステップＳ１４）、暗い空など夜景用の背景を設定し（ステップＳ２０）、地物に対して夜景テクスチャ生成処理を実行する（ステップＳ２２）。この処理は、テクスチャデータ２２から、３次元モデル２１で指定された夜用テクスチャを読み込み、ポリゴンの部位に応じてＯＮ画像、ＯＦＦ画像をランダムに選択して貼付する処理である。処理の内容は後述する。
３次元地図表示システム１０は、以上の処理を、各地物に行うことで、３次元地図を表示する。  
【００２５】
Ｃ．夜景テクスチャ生成処理：
図４は、夜景テクスチャ生成処理のフローチャートである。３次元地図表示処理（図３）のステップＳ２２に相当する処理である。
処理を開始すると、３次元地図表示システム１０は、マトリックス記憶部１７からマトリックスを読み込む（ステップＳ５０）。マトリックスには、各ピクセルに対し、ＯＮ画像、ＯＦＦ画像を選択するための制御値が記憶されている。本実施例では、選択の対象となる単位テクスチャが、ＯＮ画像、ＯＦＦ画像の２種類であるため、マトリックスには、０、１の２値を記憶するものとした。
【００２６】
次に、３次元地図表示システム１０は、処理の対象となる地物を対象モデルとして選択する（ステップＳ５１）。対象モデルは、テクスチャの生成が未処理のものから選択すればよい。
対象モデルが建物ではない場合（ステップＳ５２）、３次元地図表示システム１０は、ＯＮ画像、ＯＦＦ画像の使い分けは不要と判断し、３次元モデル２１で指定された夜用テクスチャを貼付する（ステップＳ５３）。夜用テクスチャは、ポリゴン全体に繰り返しなく貼付される場合もあれば、図２に示したように繰り返した配置で貼付される場合もある。
対象モデルが建物の場合（ステップＳ５２）、３次元地図表示システム１０は、３次元モデル２１のテクスチャ繰り返し数に従って、繰り返し数を設定する（ステップＳ５４）。図中に、横２×縦３の繰り返しをする場合の設定例を示した。本実施例では、テクスチャを貼付するための２次元の座標系（Ｕ，Ｖ）として、繰り返し数に応じた座標値を与えるものとした。図示するようにポリゴンの左下を原点（０，０）とし、右下を（２，０）、左上を（０，３）、右上を（２，３）というＵＶ座標値を与えるのである。指定されたテクスチャ画像は、ＵＶ座標値で（０，０）−（１，１）の頂点で表される矩形領域に収まるように貼付され、ＵＶ座標値として１を超える値が設定されているときは、値に応じて繰り返し貼付される。従って、図中の各座標値が設定されれば、横２×縦３の配列を規定することができる。異なる配列においても同様にＵＶ座標値で繰り返し数を規定することができる。
次に、３次元地図表示システム１０は、マトリックスの使用領域を定める基準点を設定する（ステップＳ５５）。基準点は、マトリックスの左下など任意に設定された固定の点としてもよいし、この処理を実行する度に、一定の規則または乱数によって選択するようにしてもよい。本実施例では、乱数を発生させ、基準点のｘ座標、ｙ座標を設定するようにした。
基準点を設定すると、３次元地図表示システム１０は、マトリックスの制御値に応じて単位テクスチャを選択し、貼付する（ステップＳ５６）。本実施例では、マトリックスの各ピクセルには０、１の２値が格納されているため、値１の時はＯＮ画像、値０の時はＯＦＦ画像を選択するものとした。
ステップＳ５５、Ｓ５６におけるマトリックスを用いた単位テクスチャの選択については、具体例に基づいて後でより詳しく説明する。
【００２７】
３次元地図表示システム１０は、以上の処理によって、対象モデルに対して、夜用のテクスチャを貼付する。この処理を、全ての対象モデルに対して終了するまで（ステップＳ５７）、繰り返し実行する。
本実施例では、対象モデルが建物か否かによって処理を分けているが（ステップＳ５２参照）、これは、建物についてのみ、ＯＮ画像、ＯＦＦ画像という２種類の単位テクスチャの使い分けを行うものとしているからである。建物以外の地物に対しても、複数種類の単位テクスチャを選択して用いる場合には、かかる地物についても、建物と同様の処理（ステップＳ５４〜Ｓ５６）を行うようにすればよい。
【００２８】
図５は、単位テクスチャの選択方法を示す説明図である。図の上側には、マトリックスの例を示した。本実施例では、２５６×２５６ピクセルのサイズとしているが、マトリックスのサイズは任意に設定可能である。マトリックスの各ピクセルには、０，１の２値が格納されている。図の例では、値０が格納されているピクセルを黒、１が格納されているピクセルを白で表した。図の例では、値０、１は、概ね同数となっており、偏り無く分布するよう設定されているが、値０、１の割合や分布も任意に設定可能である。かかるマトリックスは、オペレータが各ピクセルの値を指定する方法、関数や乱数によって各ピクセルの値を決定する方法などを用いることができる。
図中には、夜景テクスチャ生成処理（図４）のステップＳ５５で設定される基準点を併せて示した。マトリックスの左下を原点Ｏとし、横方向にＭｘ、縦方向にＭｙの位置にあるピクセルが基準点である。基準点（Ｍｘ、Ｍｙ）の座標は、乱数、関数などによって定めることができる。
【００２９】
図の中段には、マトリックスの一部の拡大図である。基準点（Ｍｘ，Ｍｙ）を左下とする矩形領域を示した。図中の各マスはマトリックスのピクセルを表しており、そこに０または１の制御値が格納されている。
夜景テクスチャ生成処理（図４）のステップＳ５６では、３次元地図表示システム１０は、マトリックスの基準点（Ｍｘ，Ｍｙ）を原点として、単位テクスチャの繰り返し数に対応する領域Ａの各ピクセルをポリゴンの各部位と対応づける。図４に示したように、横２×縦３の繰り返し数で単位テクスチャを配置する場合には、各部位に、マトリックスの横２×縦３ピクセルからなる領域Ａを対応づけることになる。
図の下段には、ＯＮ画像、ＯＦＦ画像の選択結果を示した。領域Ａの左下のピクセルには、制御値として０が格納されているから、ＯＦＦ画像が選択される（図４のステップＳ５６参照）。右下のピクセルも同様である。中段については、左側の制御値が１、右側の制御値が０となっているから、左側にはＯＮ画像、右側にはＯＦＦ画像が選択される。上段については、左側の制御値が０、右側の制御値が１となっているから、左側にＯＦＦ画像、右側にＯＮ画像が選択される。このようにピクセルの制御値に応じて、ＯＮ画像、ＯＦＦ画像を選択し、ポリゴンの対応する部位に貼付することによって、図の下段に示すような建物全体のテクスチャを生成することができる。
マトリックス内の制御値の分布は、領域によって異なるから、基準点が異なれば、単位テクスチャの選択に用いる領域が変化し、得られる結果も異なることになる。また、常に固定された基準点を用いる場合でも、繰り返し数が異なれば、選択に適用する領域の大きさが変化するため、得られる結果に対する印象は異なったものとなる。
【００３０】
図５で説明した処理は、ＧＰＵを利用する際に特に有用性が高い。一般にＧＰＵは、比較的単純な処理を高速で行うことができるように設計されており、条件分岐については処理速度が比較的遅くなる特性を有している。図５の処理では、マトリックスの各ピクセルの制御値を取得し、その結果に応じて、ＯＮ画像、ＯＦＦ画像を一義的に定めることができるため、高速化を図ることができるのである。例えば、得られた０または１の制御値を、そのままＯＮ画像、ＯＦＦ画像を指定するための引数として用いれば、条件分岐を介さずに両者の使い分けが可能となる。
【００３１】
図５の例では、基準点周りに設定された領域Ａに対して、ポリゴンの各部位を対応づけるようにしたが、両者の対応づけは関数に基づいて行っても良い。ポリゴンの各部位に対し、マトリックスのいずれかのピクセルを割り当てることができる方法であれば、必ずしも、ポリゴンと同一形状の領域を割り当てる必要はないのである。
【００３２】
Ｄ．地図表示例：
図６は、３次元地図の表示例（１）を示す説明図である。従来技術として、図１１に示したのと同じ条件で夜景の３次元地図を表示した例を示した。図１１では、パターンＡ、パターンＢなど、点灯／消灯状態が規則的に配置された部位を視認することができるのに対し、図６の表示例（１）では、こうした規則性は見いだすことができない。このように、本実施例によれば、夜景における建物の点灯／消灯状態として、より自然な状態を表示することが可能となる。
【００３３】
図７は、３次元地図の表示例（２）を示す説明図である。図６の表示例よりも、より上方の視点から俯瞰した例を示した。視点位置を高くすることにより、一層多くの建物の窓が視認可能となるが、かかる状態でも、建物の窓について、違和感のない点灯／消灯状態を表示できている。
【００３４】
Ｅ．効果および変形例：
以上で説明した実施例によれば、マトリックスを利用することにより、処理負荷を抑制しつつ、ＯＮ画像、ＯＦＦ画像を使い分けて、違和感のない夜景表示を実現することができる。
実施例では、２つの窓を単位テクスチャとして用いたが、単位テクスチャの形状等は任意に設定可能である。一つの窓を単位テクスチャとしてもよいし、更に多くの窓を単位テクスチャとしてもよい。ただし、図１１に示したパターンＡ、パターンＢのように２次元的に多くの窓が配置されたグループを単位テクスチャとすると、単位テクスチャごとのパターンを視認しやすくなる。従って、単位テクスチャは可能な限り最小の要素単位、即ち建物の例では一つの窓、に近づけることが好ましく、複数の窓を含む場合でも、一次元に配置されたものとすることが好ましい。
【００３５】
本実施例は、３次元モデルに対して、複数の単位テクスチャを選択して配置するための技術であり、建物の夜景表現に限った技術ではない。種々の地物に対して、本実施例を適用することにより、処理負荷を抑制しつつ、多様な地物の表示が可能となり、３次元地図のリアリティをさらに向上させることができる。例えば、樹木に対して、枝や葉の状態が異なる複数の単位テクスチャを選択して適用するようにすれば、多様な樹木を表現可能となる。雲に対して、白、グレーなど多様な色の単位テクスチャを選択して適用するようにすれば、種々の形状、色の雲を表現可能となる。実施例では、単位テクスチャ同士が重ならずに配置される例を示したが、本技術を適用する地物によっては、単位テクスチャ同士を重ねるように貼付してもよい。
【００３６】
本実施例に対しては、処理についてもさらに種々の変形例を考えることができる。以下に説明する。
【００３７】
（１）単位テクスチャの選択方法についての変形例（１）：
図８は、変形例（１）における単位テクスチャの選択方法を示す説明図である。実施例では、ＯＮ画像、ＯＦＦ画像の２種類の単位テクスチャを用いたが、変形例（１）では、右下に示す３種類の単位テクスチャを用いる。０画像は、２つの窓が消灯の単位テクスチャである。１画像は、左側が消灯、右側が点灯の単位テクスチャである。２画像は、２つの窓が点灯の単位テクスチャである。
マトリックスには、上段に示した通り、０、１、２の３値を格納する。こうすることによって、実施例と同様、マトリックスの各ピクセルに応じて、３種類の単位テクスチャを使い分けて配置することができる。即ち、０の制御値が格納されたピクセルには０画像、１の制御値が格納されたピクセルには１画像、２の制御値が格納されたピクセルには２画像を配置すればよい。この結果、左下に示すように、実施例よりも多様な点灯状態を表現することが可能となる。
単位テクスチャを、４通り以上用意する場合も、変形例（１）と同様にして処理することができる。
【００３８】
（２）単位テクスチャの選択方法についての変形例（２）：
図９は、変形例（２）における単位テクスチャの選択方法を示す説明図である。この例では、ＯＮ画像、ＯＦＦ画像の２種類の単位テクスチャを用いる。ただし、マトリックスには、０、１という２値の制御値ではなく、０〜２５５の範囲の制御値、即ち単位テクスチャの種類数よりも広い数値範囲の制御値が格納されている。制御値の範囲は任意に設定可能である。
変形例（２）では、各ピクセルに格納された制御値と、閾値ＴＨとの大小関係に基づいて、ＯＮ画像、ＯＦＦ画像の選択を行う。つまり、制御値≦ＴＨのときはＯＦＦ画像を用い、制御値＞ＴＨのときはＯＮ画像を用いるのである。
下段に、閾値ＴＨ＝５０の場合、１５０の場合について結果を示した。
閾値ＴＨ＝５０の場合、左下のピクセルＰ００の制御値は０であり、制御値≦ＴＨとなるからＯＦＦ画像が選択される。右下のピクセルＰ１０の制御値は９６であり、制御値＞ＴＨとなるからＯＮ画像が選択される。同様にして、ピクセルＰ０１はＯＦＦ画像、ピクセルＰ１１、Ｐ０２、Ｐ１２はＯＮ画像が選択されることになる。この結果、閾値ＴＨ＝５０の場合は、左下に示すように点灯状態の窓が多いテクスチャが得られる。
次に、閾値ＴＨ＝１５０の場合は、同様に単位テクスチャを選択すると、ピクセルＰ００、Ｐ１０、Ｐ０１、Ｐ１２にＯＦＦ画像、ピクセルＰ１１、Ｐ０２にＯＮ画像が選択されることになる。この結果、閾値ＴＨ＝１００の場合は、右下に示すように消灯状態の窓が多いテクスチャが得られる。
このように変形例（２）によれば、同じ建物であっても、閾値ＴＨを変化させることによって、得られるテクスチャを変化させることができる。閾値ＴＨはユーザが指定してもよいし、３次元地図を表示する時刻などの条件に応じて変化させてもよい。例えば、夕刻過ぎなどの時刻には、閾値ＴＨ＝５０を利用し、深夜には閾値ＴＨ＝１５０を用いるようにすれば、時間帯に応じた夜景を表現することが可能となる。
変形例（２）においても、３種類以上の単位テクスチャを用いることが可能である。例えば、変形例（１）（図８）のように３種類の単位テクスチャ（０画像、１画像、２画像）を用いる場合には、２つの閾値ＴＨ１、ＴＨ２（ＴＨ１＜ＴＨ２）を用いればよい。制御値≦ＴＨ１の場合は０画像、ＴＨ１＜制御値≦ＴＨ２の場合は１画像、ＴＨ２＜制御値の場合は２画像というように使い分けることができる。この場合、閾値ＴＨ１、ＴＨ２の少なくとも一方の値を変化させることで、３種類の単位テクスチャの割合を変化させることが可能となる。
【００３９】
（３）単位テクスチャの配置方法についての変形例：
図１０は、変形例としての単位テクスチャの配置方法を示す説明図である。この例では、単位テクスチャを個別の画像データとして用意するのではなく、一つに配列した統合テクスチャとして用意する。中段に、統合テクスチャの例を示した。この例では、一つの画像の上段に昼用画像、下段の左側に夜用のＯＦＦ画像、下段の右側に夜用のＯＮ画像が配置されている。３つの単位テクスチャは、隙間無く配置されているが、隙間を設けてもよい。統合テクスチャの画像の位置は、統合テクスチャに定義された座標系（ｔｕ、ｔｖ）で表される。
図の上側には昼景を表示する際のテクスチャの利用方法を示した。建物のテクスチャには、ＵＶ座標系が定義されている。建物には昼用画像を貼付することになるから、配置の単位となる左下の点Ｐ３に昼用画像の点ｔｐ３を対応させ、右上の点Ｐ６に昼用画像の点ｔｐ６を対応させるように座標変換をする。点Ｐ３がＵＶ座標系で（０，０）、点Ｐ６が（１，１）ならば、点ｔｐ３の座標が（０，０）、点ｔｐ６の座標が（１，１）となるよう、（ｔｕ、ｔｖ）の座標系を平行移動および拡大／縮小すればよい。
図の下側には夜景を表示する際のテクスチャの利用方法を示した。建物にはＯＦＦ用画像およびＯＮ画像を選択して貼付することになるから、配置の単位となる領域ごとにＯＦＦ画像、ＯＮ画像の頂点が対応するように座標変換をする。図示するように、ポリゴンの最上段の左側にＯＦＦ画像、右側にＯＮ画像を貼付する場合を考える。左側には、点Ｐ１、Ｐ４にそれぞれＯＦＦ画像の点ｔｐ１、ｔｐ４が対応するように座標変換すればよい。このとき、貼付されるポリゴンの点Ｐ１、Ｐ４もそれぞれＵＶ座標系において（０，０）、（１，１）となるよう座標変換する必要がある。ＵＶ座標が１を超えるときは、（０，０）、（１，１）の範囲に対応するテクスチャが繰り返し適用されてしまうからである。同様に、右側には、点Ｐ２、Ｐ５をＵＶ座標系で（０，０）、（１，１）となるよう座標変換した上で、これらの２点にＯＮ画像の点ｔｐ２、ｔｐ５が対応するように座標変換すればよい。
このように貼付すべき単位テクスチャの選択結果に応じて、統合テクスチャの中で使用する部位をずらすことによって、実施例と同様の画像を得ることができる。単位テクスチャを個別の画像として格納している場合には、選択結果に応じて、その都度、単位テクスチャを読み込む必要があるのに対し、変形例の方法によれば、統合テクスチャを一旦、読み込めば、テクスチャを生成する処理中は新たなテクスチャの読み込みを行う必要がないため、より一層、処理の高速化を図ることができる。
この変形例においても、夜用に３種類以上の単位テクスチャを用いることが可能である。
【００４０】
以上、本実施例の種々の変形例を示してきた。本発明については、ここに記載した実施例および変形例に限らず、さらに種々の変形例を構成することが可能である。
【産業上の利用可能性】
【００４１】
本発明は、地物の外観を表すテクスチャを生成するために利用することができる。
【符号の説明】
【００４２】
１０…３次元地図表示システム
１１…コマンド入力部
１２…地図表示制御部
１３…３次元ポリゴン生成部
１４…テクスチャ生成部
１５…昼景テクスチャ生成部
１６…夜景テクスチャ生成部
１７…マトリックス記憶部
２０…地図データベース
２１…３次元モデル
２２…テクスチャデータ
２３…昼用テクスチャ
２４…夜景テクスチャ
【図１】
0006305912.tif 000002
【図２】
0006305912.tif 000003
【図３】
0006305912.tif 000004
【図４】
0006305912.tif 000005
【図５】
0006305912.tif 000006
【図６】
0006305912.tif 000007
【図７】
0006305912.tif 000008
【図８】
0006305912.tif 000009
【図９】
0006305912.tif 000010
【図１０】
0006305912.tif 000011
【図１１】
0006305912.tif 000012