(57)【要約】  描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認するシンボルキャッシュ確認部３３を設け、シンボルキャッシュ確認部３３により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、テクスチャ座標設定部３９が、そのテクスチャ内の上記シンボルの書込み位置をテクスチャ座標として、ポリゴン生成部３２により生成された３Ｄポリゴンの頂点に設定し、ポリゴン描画部４０が当該３Ｄポリゴンを描画する。
2012063279.tif 000002
【特許請求の範囲】
【請求項１】
テクスチャとして使用可能なメモリの最大サイズの範囲内で１つ以上のテクスチャを作成するテクスチャ作成手段と、地図内に存在しているシンボルの種類別の参照回数を計数する参照回数計数手段と、上記地図内に存在しているシンボルのうち、上記参照回数計数手段により計数された種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像を上記テクスチャ作成手段により作成されたテクスチャに書き込むシンボル画像書込み手段と、上記シンボル画像書込み手段により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報を保存するシンボル情報保存手段と、描画対象のシンボルの表示座標に応じて３Ｄポリゴンの頂点を生成するポリゴン生成手段と、上記シンボル情報保存手段により保存されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認する書込み確認手段と、上記書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、上記テクスチャ内の上記シンボルの書込み位置をテクスチャ座標として、上記ポリゴン生成手段により生成された３Ｄポリゴンの頂点に設定し、上記書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成し、上記テクスチャの座標を上記ポリゴン生成手段により生成された３Ｄポリゴンの頂点に設定するテクスチャ座標設定手段と、上記テクスチャ座標設定手段によりテクスチャ座標が設定された３Ｄポリゴンを描画するポリゴン描画手段とを備えた地図シンボル描画装置。
【請求項２】
テクスチャ座標設定手段は、書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成するオリジナルテクスチャ生成部と、上記書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、上記テクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行い、上記書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、上記オリジナルテクスチャ生成部により作成されたオリジナルのテクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行う使用テクスチャ切替部と、上記使用テクスチャ切替部により設定されたテクスチャ内のシンボルの書込み位置をテクスチャ座標として、上記ポリゴン生成手段により生成された３Ｄポリゴンの頂点に設定するテクスチャ座標設定部とから構成されており、
上記使用テクスチャ切替部は、描画対象のシンボルと同じ種類のシンボルの画像が書き込まれているテクスチャが、前回のポリゴン描画時に使用しているテクスチャと同じテクスチャである場合、ポリゴン描画時に使用するテクスチャを切り替える設定を行わない
ことを特徴とする請求項１記載の地図シンボル描画装置。
【請求項３】
テクスチャ作成手段、参照回数計数手段、シンボル画像書込み手段及びシンボル情報保存手段は、起動時に限り処理を実施することを特徴とする請求項１記載の地図シンボル描画装置。
【請求項４】
ポリゴン生成手段、書込み確認手段、テクスチャ座標設定手段及びポリゴン描画手段は、地図の描画を更新する際に処理を実施することを特徴とする請求項１記載の地図シンボル描画装置。
【請求項５】
参照回数計数手段は、地図の縮尺別に、当該地図内に存在しているシンボルの種類別の参照回数を計数し、
シンボル画像書込み手段は、指定された縮尺の地図内に存在しているシンボルのうち、上記縮尺に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャ作成手段により作成されたテクスチャに書き込み、
シンボル情報保存手段は、上記シンボル画像書込み手段により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報を保存する
ことを特徴とする請求項１記載の地図シンボル描画装置。
【請求項６】
テクスチャ作成手段及び参照回数計数手段は、起動時に限り処理を実施することを特徴とする請求項５記載の地図シンボル描画装置。
【請求項７】
シンボル画像書込み手段及びシンボル情報保存手段は、縮尺を変更する際に処理を実施することを特徴とする請求項５記載の地図シンボル描画装置。
【請求項８】
参照回数計数手段は、地図の地域別に、当該地図内に存在しているシンボルの種類別の参照回数を計数し、
シンボル画像書込み手段は、複数の地域の地図内に存在しているシンボルのうち、当該地域に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャ作成手段により作成されたテクスチャに書き込み、
シンボル情報保存手段は、上記シンボル画像書込み手段により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報を保存する
ことを特徴とする請求項１記載の地図シンボル描画装置。
【請求項９】
テクスチャ作成手段、参照回数計数手段、シンボル画像書込み手段及びシンボル情報保存手段は、起動時に限り処理を実施することを特徴とする請求項８記載の地図シンボル描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、地図内のシンボルを高速に描画する地図シンボル描画装置に関するものである。
【背景技術】
【０００２】
カーナビを代表とする２次元の地図表示装置では、シンボルと呼ばれるビットマップ画像を指示アイコン（例えば、コンビニ、銀行、ガソリンスタンドなどを示すアイコン）として表示している。
これらのシンボルは、通常、２次元描画コアを用いて描画するが、近年の３次元描画コアの発展に伴って、３次元描画コアを用いて、２次元シンボルを描画する手法が開発されてきている。【０００３】
３次元描画コアを用いたシンボル描画は、３次元グラフィックス技術を用いる。そのため、描画の高速化を目的とする場合、一般的な３次元グラフィックス技術で用いられる高速描画手法が効果的である。
高速化手法の１つに、テクスチャアトラスと呼ばれる手法がある。３次元描画では、複数の頂点から構成されるポリゴンと呼ばれる多面体に対して、テクスチャと呼ばれる２次元画像をマッピングすることで、レーシングゲームの建物やアクションゲームのキャラクタなどの多様な表現を可能にしている。【０００４】
ただし、ポリゴン毎に異なるテクスチャをマッピングする場合、使用するテクスチャの切り替えが必要となるが、一般にテクスチャの切替処理は低速である。
そこで、描画の高速化を図るために、予め、複数のテクスチャを１つの大きなテクスチャ（テクスチャアトラス）に詰め込んでおくことで、描画時のテクスチャ切替処理を減らしている地図シンボル描画装置が以下の特許文献１に開示されている。
即ち、特許文献１に開示されている地図シンボル描画装置では、キャラクタなどの３次元モデルのパーツ毎に、テクスチャアトラスを作成することで、各パーツの描画時において、テクスチャの切替処理が発生しないようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−４５０９１号公報（例えば、段落番号［００１２］〜［００１３］）
【発明の概要】
【０００６】
従来の地図シンボル描画装置は以上のように構成されているので、同時に描画するモデルのパーツ毎にテクスチャをまとめてテクスチャアトラスを作成している。このため、モデルのパーツ分のテクスチャアトラスが必要となり、使用するメモリ領域が大きくなる課題があった。
特に、カーナビを代表とする組込み型の地図表示装置では、使用メモリサイズの制約が厳しいため、必要な全てのテクスチャアトラスを作成することが困難であるなどの課題があった。
【０００７】
この発明は上記のような課題を解決するためになされたもので、大きなメモリ領域を実装していなくても、地図内のシンボルを高速に描画することができる地図シンボル描画装置を得ることを目的とする。
【０００８】
この発明に係る地図シンボル描画装置は、テクスチャとして使用可能なメモリの最大サイズの範囲内で１つ以上のテクスチャを作成するテクスチャ作成手段と、地図内に存在しているシンボルの種類別の参照回数を計数する参照回数計数手段と、地図内に存在しているシンボルのうち、参照回数計数手段により計数された種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャ作成手段により作成されたテクスチャに書き込むシンボル画像書込み手段と、シンボル画像書込み手段により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報を保存するシンボル情報保存手段と、描画対象のシンボルの表示座標に応じて３Ｄポリゴンの頂点を生成するポリゴン生成手段と、シンボル情報保存手段により保存されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認する書込み確認手段と、書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、上記テクスチャ内の上記シンボルの書込み位置をテクスチャ座標として、ポリゴン生成手段により生成された３Ｄポリゴンの頂点に設定し、書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成し、そのテクスチャの座標をポリゴン生成手段により生成された３Ｄポリゴンの頂点に設定するテクスチャ座標設定手段とを設け、ポリゴン描画手段がテクスチャ座標設定手段によりテクスチャ座標が設定された３Ｄポリゴンを描画するようにしたものである。
【０００９】
この発明によれば、テクスチャとして使用可能なメモリの最大サイズの範囲内で１つ以上のテクスチャを作成するテクスチャ作成手段と、地図内に存在しているシンボルの種類別の参照回数を計数する参照回数計数手段と、地図内に存在しているシンボルのうち、参照回数計数手段により計数された種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャ作成手段により作成されたテクスチャに書き込むシンボル画像書込み手段と、シンボル画像書込み手段により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報を保存するシンボル情報保存手段と、描画対象のシンボルの表示座標に応じて３Ｄポリゴンの頂点を生成するポリゴン生成手段と、シンボル情報保存手段により保存されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認する書込み確認手段と、書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、上記テクスチャ内の上記シンボルの書込み位置をテクスチャ座標として、ポリゴン生成手段により生成された３Ｄポリゴンの頂点に設定し、書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成し、そのテクスチャの座標をポリゴン生成手段により生成された３Ｄポリゴンの頂点に設定するテクスチャ座標設定手段とを設け、ポリゴン描画手段がテクスチャ座標設定手段によりテクスチャ座標が設定された３Ｄポリゴンを描画するように構成したので、大きなメモリ領域を実装していなくても、地図内のシンボルを高速に描画することができる効果がある。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１による地図シンボル描画装置を示す構成図である。
【図２】この発明の実施の形態１による地図シンボル描画装置のテクスチャアトラス作成部４の処理内容を示すフローチャートである。
【図３】この発明の実施の形態１による地図シンボル描画装置の描画処理部５の処理内容を示すフローチャートである。
【図４】地図内に存在しているシンボルの種類別の参照回数（使用回数）の一例を示す説明図である。
【図５】シンボルサイズ、テクスチャ最大サイズ及びメモリ最大サイズの一例を示す説明図である。
【図６】描画シンボルデータの一例を示す説明図である。
【図７】種類別ソート部１５によるソート結果を示す説明図である。
【図８】テクスチャにシンボル４の画像が書き込まれた状態を示す説明図である。
【図９】シンボル情報の一例を示す説明図である。
【図１０】上位４つのシンボル４，２，６，５がテクスチャアトラス０に書き込まれた状態を示す説明図である。
【図１１】シンボル情報キャッシュ２１に保存された上位４つのシンボル４，２，６，５のシンボル情報を示す説明図である。
【図１２】上位８つのシンボル４，２，６，５，８，７，１，９がテクスチャアトラス０，１に書き込まれた状態を示す説明図である。
【図１３】シンボル情報キャッシュ２１に保存された上位８つのシンボル４，２，６，５，８，７，１，９のシンボル情報を示す説明図である。
【図１４】ポリゴンの頂点座標を示す説明図である。
【図１５】ポリゴン描画部４０による描画結果を示す説明図である。
【図１６】ポリゴン描画部４０による描画結果を示す説明図である。
【図１７】ポリゴン描画部４０による描画結果を示す説明図である。
【図１８】ポリゴン描画部４０による描画結果を示す説明図である。
【図１９】ポリゴン描画部４０による描画結果を示す説明図である。
【図２０】この発明の実施の形態２による地図シンボル描画装置を示す構成図である。
【図２１】この発明の実施の形態２よる地図シンボル描画装置の縮尺別データ整理部６の処理内容を示すフローチャートである。
【図２２】この発明の実施の形態２よる地図シンボル描画装置の縮尺別テクスチャアトラス作成部７の処理内容を示すフローチャートである。
【図２３】縮尺別の地図内に存在しているシンボルの種類別の参照回数（使用回数）の一例を示す説明図である。
【図２４】種類別ソート部５３によるソート結果を示す説明図である。
【図２５】１００ｍ縮尺に対応するテクスチャアトラスを示す説明図である。
【図２６】シンボル情報キャッシュ２１に保存された上位５つのシンボル４，３，２，５，１のシンボル情報を示す説明図である。
【図２７】２００ｍ縮尺に対応するテクスチャアトラスを示す説明図である。
【図２８】シンボル情報キャッシュ２１に保存された上位５つのシンボル５，７，９，８，６のシンボル情報を示す説明図である。
【図２９】この発明の実施の形態３による地図シンボル描画装置を示す構成図である。
【図３０】この発明の実施の形態３よる地図シンボル描画装置の地域別テクスチャアトラス作成部８の処理内容を示すフローチャートである。
【図３１】地域別の地図内に存在しているシンボルの種類別の参照回数（使用回数）の一例を示す説明図である。
【図３２】種類別ソート部７３によるソート結果を示す説明図である。
【図３３】地域が東京である場合のテクスチャアトラスを示す説明図である。
【図３４】シンボル情報キャッシュ２１に保存された上位４つのシンボル４，３，２，５のシンボル情報を示す説明図である。
【図３５】地域が大阪である場合のテクスチャアトラスを示す説明図である。
【図３６】シンボル情報キャッシュ２１に保存された上位８つのシンボル４，２，６，５，５，７，９，８のシンボル情報を示す説明図である。
【発明を実施するための形態】
【００１１】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に沿って説明する。
実施の形態１．
図１はこの発明の実施の形態１による地図シンボル描画装置を示す構成図である。
図１において、地図データ格納部１はカーナビなどの地図表示器に表示する地図の情報である地図データ（地図内の道路に関する情報のほか、地図内のシンボルに関する情報などを含んでいる）を格納しているハードディスクなどの記憶装置である。
テクスチャ最大サイズ記憶部２はカーナビなどの地図表示器が確保することが可能なテクスチャ１枚の最大サイズ（テクスチャ最大サイズ）を記憶しているＲＡＭなどの記録媒体である。
メモリ最大サイズ記憶部３はテクスチャとして使用可能なメモリサイズ（メモリ最大サイズ）を記憶しているＲＡＭなどの記録媒体である。テクスチャとして使用可能なメモリサイズはユーザにより決定される値である。
【００１２】
テクスチャアトラス作成部４は例えばＣＰＵなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、シンボルの画像をテクスチャに書き込む処理や、そのシンボルの種類及び書込み位置を示すシンボル情報を保存する処理などを起動時に実施する処理部である。
描画処理部５例えばＣＰＵなどを実装している半導体回路やＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、あるいは、ワンチップマイコンなどから構成されており、地図の描画を更新する際に、テクスチャ内のシンボルの書込み位置をテクスチャ座標として、３Ｄポリゴンの頂点に設定する処理や、テクスチャ座標が設定された３Ｄポリゴンを描画する処理などを実施する処理部である。
【００１３】
テクスチャアトラス作成部４のメモリ超過判定部１１はテクスチャとして使用可能なメモリに対して既に作成しているテクスチャのサイズと、メモリ最大サイズ記憶部３に記憶されているメモリ最大サイズとを比較して、新たにテクスチャを作成することが可能であるか否かを判定する処理を実施する。
テクスチャ作成部１２はメモリ超過判定部１１により新たにテクスチャを作成することができないと判定されるまで、テクスチャ（テクスチャ最大サイズ記憶部２に記憶されているテクスチャ最大サイズのテクスチャ）を繰り返し作成する処理を実施する。即ち、テクスチャとして使用可能なメモリの最大サイズの範囲内で出来る限りテクスチャを作成する処理を実施する。
また、テクスチャ作成部１２はテクスチャリスト１３に対して、作成したテクスチャの情報を追加する処理を実施する。
なお、メモリ超過判定部１１及びテクスチャ作成部１２からテクスチャ作成手段が構成されている。
【００１４】
参照回数算出部１４は地図データ格納部１に格納されている地図データを参照して、地図内に存在しているシンボルの種類別の参照回数をカウントする処理を実施する。
種類別ソート部１５は参照回数算出部１４によりカウントされた参照回数が多い順に、シンボルの種類をソートする処理を実施する。
なお、参照回数算出部１４及び種類別ソート部１５から参照回数計数手段が構成されている。
シンボルデータ取得部１６は種類別ソート部１５によるソート順位が１位の種類のシンボルから順番に、地図データ格納部１からシンボルデータ（シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ）を取得する処理を実施する。
【００１５】
書込み可能判定部１７はテクスチャ作成部１２により作成されたテクスチャに対して、シンボルデータ取得部１６により取得されたシンボルの画像を書き込めるか否かを判定する処理を実施する。
書込みテクスチャ切替部１８は書込み可能判定部１７によりシンボルの画像を書き込むことができないと判定された場合（当該テクスチャには、既に所定数のシンボルの画像が書き込まれている状態である場合）、テクスチャリスト１３を参照して、画像書込み対象のテクスチャを切り替える処理を実施する。
【００１６】
画像書込み部１９は書込み可能判定部１７によりシンボルの画像を書き込むことが可能であると判定されたテクスチャ、あるいは、書込みテクスチャ切替部１８により切り替えられたテクスチャに対して、シンボルデータ取得部１６により取得されたシンボルの画像を書き込む処理を実施する。
なお、シンボルデータ取得部１６、書込み可能判定部１７、書込みテクスチャ切替部１８及び画像書込み部１９からシンボル画像書込み手段が構成されている。
【００１７】
シンボル情報保存部２０は画像書込み部１９により画像が書き込まれたシンボルの種類及び書込み位置を示すシンボル情報をシンボル情報キャッシュ２１に保存する処理を実施する。
シンボル情報キャッシュ２１はシンボル情報を格納するＲＡＭなどの記憶媒体である。
なお、シンボル情報保存部２０及びシンボル情報キャッシュ２１からシンボル情報保存手段が構成されている。
【００１８】
描画処理部５の描画シンボルデータ取得部３１は地図データ格納部１から地図表示器に表示する地図の範囲内のシンボル（描画対象のシンボル）に関するシンボルデータを１つずつ取得する処理を実施する。
ポリゴン生成部３２は描画シンボルデータ取得部３１により取得されたシンボルデータが示すシンボルサイズ及びシンボル位置（表示座標）に応じて３Ｄポリゴンの頂点を生成する処理を実施する。
なお、描画シンボルデータ取得部３１及びポリゴン生成部３２からポリゴン生成手段が構成されている。
【００１９】
シンボルキャッシュ確認部３３はシンボル情報キャッシュ２１により格納されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認する処理を実施する。
連続キャッシュヒット確認部３４はシンボルキャッシュ確認部３３により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、前回のキャッシュヒット確認結果を示す前キャッシュヒットフラグ３５が“ＴＲＵＥ”あるか“ＦＡＬＳＥ”であるかを確認する処理を実施する。
なお、シンボルキャッシュ確認部３３、連続キャッシュヒット確認部３４及び前キャッシュヒットフラグ３５から書込み確認手段が構成されている。
【００２０】
テクスチャアトラス取得部３６は連続キャッシュヒット確認部３４により前キャッシュヒットフラグ３５が“ＦＡＬＳＥ”であることを確認された場合、テクスチャリスト１３を参照して、ポリゴン描画時に使用するテクスチャを取得する処理を実施する。
オリジナルテクスチャ生成部３７はシンボルキャッシュ確認部３３により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画シンボルデータ取得部３１により取得されたシンボルデータを用いて、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成する処理を実施する。
【００２１】
使用テクスチャ切替部３８はテクスチャアトラス取得部３６によりテクスチャが取得された場合、そのテクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行い、オリジナルテクスチャ生成部３７によりテクスチャが生成された場合、そのテクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行う。
テクスチャ座標設定部３９は使用テクスチャ切替部３８により設定されたテクスチャ内のシンボルの書込み位置をテクスチャ座標として、ポリゴン生成部３２により生成された３Ｄポリゴンの頂点に設定する処理を実施する。
なお、テクスチャアトラス取得部３６、オリジナルテクスチャ生成部３７、使用テクスチャ切替部３８及びテクスチャ座標設定部３９からテクスチャ座標設定手段が構成されている。
【００２２】
ポリゴン描画部４０はテクスチャ座標設定部３９によりテクスチャ座標が設定された３Ｄポリゴンを描画する処理を実施する。なお、ポリゴン描画部４０はポリゴン描画手段を構成している。
【００２３】
図１の例では、地図シンボル描画装置の構成要素であるメモリ超過判定部１１、テクスチャ作成部１２、参照回数算出部１４、種類別ソート部１５、シンボルデータ取得部１６、書込み可能判定部１７、書込みテクスチャ切替部１８、画像書込み部１９、シンボル情報保存部２０、描画シンボルデータ取得部３１、ポリゴン生成部３２、シンボルキャッシュ確認部３３、連続キャッシュヒット確認部３４、テクスチャアトラス取得部３６、オリジナルテクスチャ生成部３７、使用テクスチャ切替部３８、テクスチャ座標設定部３９及びポリゴン描画部４０のそれぞれが専用のハードウェア（例えば、ＣＰＵを実装している半導体集積回路、あるいは、ワンチップマイコンなど）で構成されているものを想定しているが、地図シンボル描画装置がコンピュータで構成される場合、メモリ超過判定部１１、テクスチャ作成部１２、参照回数算出部１４、種類別ソート部１５、シンボルデータ取得部１６、書込み可能判定部１７、書込みテクスチャ切替部１８、画像書込み部１９、シンボル情報保存部２０、描画シンボルデータ取得部３１、ポリゴン生成部３２、シンボルキャッシュ確認部３３、連続キャッシュヒット確認部３４、テクスチャアトラス取得部３６、オリジナルテクスチャ生成部３７、使用テクスチャ切替部３８、テクスチャ座標設定部３９及びポリゴン描画部４０の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのＣＰＵが当該メモリに格納されているプログラムを実行するようにしてもよい。
図２はこの発明の実施の形態１による地図シンボル描画装置のテクスチャアトラス作成部４の処理内容を示すフローチャートである。
また、図３はこの発明の実施の形態１による地図シンボル描画装置の描画処理部５の処理内容を示すフローチャートである。
【００２４】
次に動作について説明する。
この実施の形態１では、説明の便宜上、地図表示画面サイズが１０００×１０００であり、地図データが１０００種類のシンボルを含んでいるものとする。
図４は地図内に存在しているシンボルの種類別の参照回数（使用回数）の一例を示す説明図である。
また、この実施の形態１では、シンボルのサイズが１００×１００［ｐｉｘｅｌ］、テクスチャ最大サイズが２００×２００［ｐｉｘｅｌ］、メモリ最大サイズが２００×５００［ｐｉｘｅｌ］であるものとする（図５を参照）。
【００２５】
地図シンボル描画装置の起動時では、使用メモリサイズが“０”、テクスチャリスト１３が空リスト、書込みテクスチャインデックスが“０”、書込み開始座標が（０，０）であるものとする。
また、描画シンボルデータは、図６に示す６個のウィンドウ座標及びシンボル種類のセットであり、前キャッシュヒットフラグ３５が“ＦＡＬＳＥ”であるものとする。
ただし、テクスチャの座標系及び表示ウィンドウ座標系は、左上を原点として、Ｘ軸方向は右、Ｙ軸方向は下である。
【００２６】
最初に、テクスチャアトラス作成部４の処理内容を説明する。
テクスチャアトラス作成部４のメモリ超過判定部１１は、テクスチャとして使用可能なメモリに対して既に作成しているテクスチャのサイズＴｓｉｚｅＮＯＷと、メモリ最大サイズ記憶部３に記憶されているメモリ最大サイズＭＭＡＸとを比較して、新たにテクスチャを作成することが可能であるか否かを判定する。
即ち、メモリ超過判定部１１は、既に作成しているテクスチャのサイズＴｓｉｚｅＮＯＷに対して、新たに作成するテクスチャの最大サイズＴｓｉｚｅＭＡＸ（テクスチャ最大サイズ記憶部２により記憶されているテクスチャ最大サイズ）を加算したとき、その加算結果が、下記の式（１）のように、メモリ最大サイズＭＥＭＭＡＸを超えていれば、メモリを超過してしまうため、新たにテクスチャを作成することが不可能であると判定する（図２のステップＳＴ１，ＳＴ２）。
一方、その加算結果が、メモリ最大サイズＭＥＭＭＡＸを超えていなければ、新たにテクスチャを作成することが可能であると判定する（図２のステップＳＴ１，ＳＴ２）。
ＴｓｉｚｅＮＯＷ＋ＴｓｉｚｅＭＡＸ＞ＭＥＭＭＡＸ            （１）
【００２７】
地図シンボル描画装置の起動時では、既に作成しているテクスチャのサイズＴｓｉｚｅＮＯＷ（使用メモリサイズ）が“０”であるため、ＴｓｉｚｅＮＯＷ＋ＴｓｉｚｅＭＡＸは“２００×２００”となり、メモリ最大サイズ“２００×５００”を超えないため、新たにテクスチャを作成することが可能であると判定される。
【００２８】
テクスチャ作成部１２は、メモリ超過判定部１１により新たにテクスチャを作成することができると判定されると、テクスチャ最大サイズＴｓｉｚｅＭＡＸのテクスチャ（２００×２００のテクスチャ）を作成する（ステップＳＴ３）。
また、テクスチャ作成部１２は、テクスチャリスト１３に対して、作成したテクスチャの情報を追加する。
テクスチャ作成部１２が新たにテクスチャを作成することで、テクスチャ最大サイズＴｓｉｚｅＭＡＸを使用メモリサイズに加算し、再度、ステップＳＴ１のメモリ超過判定処理に戻る。
上記の通り、テクスチャ最大サイズが２００×２００［ｐｉｘｅｌ］、メモリ最大サイズが２００×５００［ｐｉｘｅｌ］である場合、２００×２００のテクスチャが２個作成されるが、３個目のテクスチャを作成する際にメモリ超過が認められるため、３個目のテクスチャは作成されず、ステップＳＴ４の処理に移行する。
【００２９】
参照回数算出部１４は、地図データ格納部１に格納されている地図データを参照して、地図内に存在しているシンボルの種類別の参照回数をカウントする（ステップＳＴ４）。
例えば、地図データ格納部１から地図内に存在している全てのシンボルのシンボルデータを抽出し、種類別にデータ数を数えることで実現することができる。
この実施の形態１では、１０００個のシンボルに対して、図４に示すような種類別の参照回数（使用回数）が得られるものとする。
【００３０】
種類別ソート部１５は、参照回数算出部１４がシンボルの種類別の参照回数をカウントすると、図７に示すように、カウントされた参照回数が多い順に、シンボルの種類をソートする（ステップＳＴ５）。
図７の例では、参照回数算出部１４のカウント結果を示す種類別の参照回数が降順ソート（例えば、マージソート）されており、シンボル４、シンボル２、シンボル６、シンボル５・・・の順番で並べられている。
【００３１】
シンボルデータ取得部１６は、種類別ソート部１５によるソート順位が１位の種類のシンボルから順番に、地図データ格納部１からシンボルデータ（シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ）を取得する（ステップＳＴ６）。
図７の例では、最初にシンボル４のシンボルデータが取得される。
【００３２】
書込み可能判定部１７は、シンボルデータ取得部１６がシンボルデータを取得する毎に、テクスチャ作成部１２により作成されたテクスチャ（書込みテクスチャインデックスが指示するテクスチャリスト１３内のテクスチャ）に対して、そのシンボルデータが示すシンボルの画像を書き込めるか否かを判定する（ステップＳＴ７）。
シンボルの画像を書き込めるか否かの判定処理は、下記の式（２）によって行う。
（ＳＸ＋ＳｙｍＷ≦ＴｅｘＷ）＆＆（ＳＹ＋ＳｙｍＨ≦ＴｅｘＨ）    （２）
ただし、ＳＸは書込み開始座標のＸ座標、ＳＹは書込み開始座標のＹ座標、ＳｙｍＷは画像を書き込むシンボルの縦サイズ、ＳｙｍＨは画像を書き込むシンボルの横サイズ、
ＴｅｘＷはシンボルの画像が書き込まれるテクスチャの縦サイズ、ＴｅｘＨはシンボルの画像が書き込まれるテクスチャの横サイズである。
【００３３】
シンボル４のシンボルデータが取得された段階では、書込みテクスチャインデックスが“０”であるため、書込み対象テクスチャはテクスチャアトラス０（１番目に作成されたテクスチャ）であり、上記の式（２）は、（０＋１００≦２００）＆＆（０＋１００≦２００）となって、判定結果が“ＴＲＵＥ”となる（シンボルの画像を書き込めると判定される）。
【００３４】
画像書込み部１９は、書込み可能判定部１７がシンボルの画像を書き込めると判定すると、書込みテクスチャインデックスが指示するテクスチャリスト１３内のテクスチャに対して、シンボルデータ取得部１６により取得されたシンボルの画像の書き込み処理（テクスチャに対する書込み開始座標を左上にして、シンボルの画像の書き込む）を行う（ステップＳＴ９）。
画像書込み部１９は、シンボルの画像をテクスチャに書き込むと、書込み開始座標を更新する。
このとき、下記の式（３）が成立する場合、書込み開始座標を（ＳＸ＋ＳｙｍＷ，ＳＹ）に更新し、下記の式（３）が成立しない場合、書込み開始座標を（０，ＳＹ＋ＳｙｍＨ）に更新する。
（ＳＸ＋２×ＳｙｍＷ≦ＴｅｘＷ）    （３）
シンボル４のシンボルデータが取得された段階では、式（３）が成立するため、書込み開始座標が（１００，０）に更新され、図８のようになる。
【００３５】
シンボル情報保存部２０は、画像書込み部１９がシンボルの画像をテクスチャに書き込むと、そのシンボルの種類及び書込み位置を示すシンボル情報をシンボル情報キャッシュ２１に保存する（ステップＳＴ１０）。
シンボル情報は、図９に示すように、シンボルの種類、書込み位置（シンボルの左上座標、右下座標）のほか、書き込んだテクスチャを識別するインデックスが含まれる。
図９の例では、シンボル４、０、（０，０）、（１００，１００）がシンボル情報として保存される。
【００３６】
シンボルデータ取得部１６は、シンボル情報保存部２０がシンボル情報をシンボル情報キャッシュ２１に保存すると、地図データ格納部１から次のシンボルのシンボルデータを取得する（ステップＳＴ６）。
図７の例では、シンボル２のシンボルデータが取得される。
シンボル２のシンボルデータが取得された場合も、シンボル４のシンボルデータが取得された場合と同様に、ステップＳＴ６〜ＳＴ１０の処理が実施される。
【００３７】
種類別ソート部１５によるソート順位が上位４つのシンボルまでは、式（２）の判定結果が“ＴＲＵＥ”となるため、上位４つのシンボルがテクスチャアトラス０に書き込まれる。
図１０は上位４つのシンボル４，２，６，５がテクスチャアトラス０に書き込まれた状態を示す説明図である。
図１１はシンボル情報キャッシュ２１に保存された上位４つのシンボル４，２，６，５のシンボル情報を示す説明図である。
４つのシンボル４，２，６，５がテクスチャアトラス０に書き込まれた段階では、書込み開始座標は（０，２００）となる。
【００３８】
種類別ソート部１５によるソート順位が５番目のシンボルであるシンボル８が取得された段階では、式（２）の判定結果が“ＦＡＬＳＥ”となるため、ステップＳＴ１１の処理に移行する。
書込みテクスチャ切替部１８は、上位４つのシンボル４，２，６，５がテクスチャアトラス０に書き込まれて、式（２）の判定結果が“ＦＡＬＳＥ”になると、書込みテクスチャインデックスに“１”を加算する。
書込みテクスチャ切替部１８は、テクスチャリスト１３を参照して、その加算結果である書込みテクスチャインデックス“１”のテクスチャが存在しているか否かを確認する。
【００３９】
書込みテクスチャ切替部１８は、書込みテクスチャインデックス“１”のテクスチャが存在している場合、画像書込み対象のテクスチャを切り替えることが可能であると判断するが、書込みテクスチャインデックス“１”のテクスチャが存在していない場合、画像書込み対象のテクスチャを切り替えることが不可能であると判断して、テクスチャアトラス作成処理を終了する（ステップＳＴ１１）。
この実施の形態１では、テクスチャ作成部１２が２つのテクスチャ（書込みテクスチャインデックス“０”のテクスチャ、書込みテクスチャインデックス“１”のテクスチャ）を作成しているので、この段階では、画像書込み対象のテクスチャを切り替えることが可能であると判断する。
書込みテクスチャ切替部１８は、画像書込み対象のテクスチャを切り替えることが可能であると判断すると、画像書込み対象のテクスチャを書込みテクスチャインデックス“１”のテクスチャに切り替える処理を行う（ステップＳＴ１２）。
また、書込みテクスチャ切替部１８は、書込み開始座標を（０，０）に設定する。
【００４０】
以降、種類別ソート部１５によるソート順位が上位５番目〜８番目のシンボルまでは、式（２）の判定結果が“ＴＲＵＥ”となるため、ステップＳＴ６〜ＳＴ１０の処理が繰り返し実施されて、上位５番目〜８番目のシンボル８，７，１，９がテクスチャアトラス１に書き込まれる。
図１２は上位８つのシンボル４，２，６，５，８，７，１，９がテクスチャアトラス０，１に書き込まれた状態を示す説明図である。
図１３はシンボル情報キャッシュ２１に保存された上位８つのシンボル４，２，６，５，８，７，１，９のシンボル情報を示す説明図である。
【００４１】
種類別ソート部１５によるソート順位が９番目のシンボルであるシンボル３が取得された段階では、式（２）の判定結果が“ＦＡＬＳＥ”となるため、ステップＳＴ１１の処理に移行する。
書込みテクスチャ切替部１８は、上位５番目〜８番目のシンボル８，７，１，９がテクスチャアトラス１に書き込まれて、式（２）の判定結果が“ＦＡＬＳＥ”になると、書込みテクスチャインデックスに“１”を加算する。
書込みテクスチャ切替部１８は、テクスチャリスト１３を参照して、その加算結果である書込みテクスチャインデックス“２”のテクスチャが存在しているか否かを確認するが、この実施の形態１では、テクスチャ作成部１２が２つのテクスチャ（書込みテクスチャインデックス“０”のテクスチャ、書込みテクスチャインデックス“１”のテクスチャ）を作成しているだけで、書込みテクスチャインデックス“２”のテクスチャを作成していないので、画像書込み対象のテクスチャを切り替えることが不可能であると判断して、テクスチャアトラス作成処理を終了する（ステップＳＴ１１）。
【００４２】
次に、描画処理部５の処理内容を説明する。
描画処理部５の描画シンボルデータ取得部３１は、地図データ格納部１から地図表示器に表示する地図の範囲内のシンボル（描画対象のシンボル）に関するシンボルデータを１つずつ取得する（図３のステップＳＴ２１）。
即ち、描画シンボルデータ取得部３１は、描画データ番号が小さいシンボルデータから順番に取得する。ただし、描画対象のシンボルに関するシンボルデータがなければ、描画処理を終了する（ステップＳＴ２２）。
【００４３】
ポリゴン生成部３２は、描画シンボルデータ取得部３１がシンボルデータを取得すると、そのシンボルデータが示すシンボルサイズ及びシンボル位置（表示座標）に応じて３Ｄポリゴンの頂点を生成する（ステップＳＴ２３）。
ポリゴン生成処理は、シンボルデータのウィンドウ座標を中心にして、シンボルサイズと同じサイズのポリゴンになるように４頂点を生成する処理である。
各頂点座標は、Ｘ，Ｙをウィンドウ座標として、Ｚ＝０となる３次元ベクトルとして設定する。
描画データ番号“０”のシンボル４が取得された場合、ウィンドウ座標が（１００，２００）であるため（図６を参照）、図１４に示すように、ポリゴンの左上の頂点の座標は（５０，１５０，０）、右上の頂点の座標は（１５０，１５０，０）、左下の頂点の座標は（５０，２５０，０）、右下の頂点の座標は（１５０，２５０，０）となる。
【００４４】
シンボルキャッシュ確認部３３は、シンボル情報キャッシュ２１により格納されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認する（ステップＳＴ２４）。
この実施の形態１では、書込みテクスチャインデックス“０”のテクスチャにシンボル４，２，６，５が書き込まれ、書込みテクスチャインデックス“１”のテクスチャにシンボル８，７，１，９が書き込まれているので、描画対象のシンボルが、シンボル４，２，６，５，８，７，１，９のいずれかであれば、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていると判断する。
描画データ番号“０”のシンボル４が取得された場合、シンボル４は書込みテクスチャインデックス“０”のテクスチャに書き込まれているので、描画対象のシンボル４と同じ種類のシンボルの画像がテクスチャに書き込まれていると判断される。
【００４５】
連続キャッシュヒット確認部３４は、シンボルキャッシュ確認部３３により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合（ステップＳＴ２５）、前回のキャッシュヒット確認結果を示す前キャッシュヒットフラグ３５が“ＴＲＵＥ”あるか“ＦＡＬＳＥ”であるかを確認する（ステップＳＴ２６）。
前キャッシュヒットフラグ３５は、起動時に“ＦＡＬＳＥ”に初期化されているので、この段階では、“ＦＡＬＳＥ”であることが確認され、前キャッシュヒットフラグ３５が“ＴＲＵＥ”に更新される。
【００４６】
テクスチャアトラス取得部３６は、連続キャッシュヒット確認部３４により前キャッシュヒットフラグ３５が“ＦＡＬＳＥ”であることが確認された場合（ステップＳＴ２７）、テクスチャリスト１３を参照して、ポリゴン描画時に使用するテクスチャを取得する（ステップＳＴ２８）。
即ち、テクスチャアトラス取得部３６は、描画シンボルデータのシンボル種類でヒットしたキャッシュのテクスチャインデックスで指定されるテクスチャを取得する。
描画データ番号“０”のシンボル４が取得された場合、シンボル４は書込みテクスチャインデックス“０”のテクスチャに書き込まれているので、テクスチャアトラス０が取得される。
【００４７】
オリジナルテクスチャ生成部３７は、シンボルキャッシュ確認部３３により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合（ステップＳＴ２５）、描画シンボルデータ取得部３１により取得されたシンボルデータを用いて、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成する（ステップＳＴ２９）。
また、オリジナルテクスチャ生成部３７は、前キャッシュヒットフラグ３５を“ＦＡＬＳＥ”に更新する。
なお、オリジナルのテクスチャは、シンボルサイズ（１００×１００のサイズ）と同じサイズを持つテクスチャであり、シンボル画像が描かれたテクスチャである。
【００４８】
使用テクスチャ切替部３８は、テクスチャアトラス取得部３６によりテクスチャが取得された場合、そのテクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行い、オリジナルテクスチャ生成部３７によりテクスチャが生成された場合、そのテクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行う（ステップＳＴ３０）。
なお、連続キャッシュヒット確認部３４により前キャッシュヒットフラグ３５が“ＴＲＵＥ”であることが確認された場合（ステップＳＴ２７）、前回と同じテクスチャをポリゴン描画時に使用するテクスチャとするため、テクスチャの切替処理が行われない。
【００４９】
テクスチャ座標設定部３９は、使用テクスチャ切替部３８がポリゴン描画時に使用するテクスチャの切替処理を行うと、そのテクスチャ内のシンボルの書込み位置をテクスチャ座標として、ポリゴン生成部３２により生成されたポリゴンの頂点に設定する（ステップＳＴ３１）。
以下、テクスチャ座標設定部３９の処理を具体的に説明する。
【００５０】
テクスチャ座標設定部３９は、シンボルキャッシュ確認部３３により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合（連続キャッシュヒット確認部３４により前キャッシュヒットフラグ３５が“ＦＡＬＳＥ”であることを確認された場合だけでなく、“ＴＲＵＥ”であることを確認された場合も含む）、キャッシュの左上座標及び右下座標を下記の式（４）に代入することで、テクスチャ座標を算出する。
左上のテクスチャ座標＝（ＬＴＸ／ＡＴＴｅｘＷ，ＬＴＹ／ＡＴＴｅｘＨ）
右上のテクスチャ座標＝（ＲＢＸ／ＡＴＴｅｘＷ，ＬＴＹ／ＡＴＴｅｘＨ）
左下のテクスチャ座標＝（ＬＴＸ／ＡＴＴｅｘＷ，ＲＢＹ／ＡＴＴｅｘＨ）
右下のテクスチャ座標＝（ＲＢＸ／ＡＴＴｅｘＷ，ＲＢＹ／ＡＴＴｅｘＨ）
（４）
ただし、ＬＴＸはキャッシュの左上のＸ座標、ＬＴＹはキャッシュの左上のＹ座標、ＲＢＸはキャッシュの右上のＸ座標、ＲＴＹはキャッシュの右上のＹ座標、ＡＴＴｅｘＷは使用テクスチャの横サイズ、ＡＴＴｅｘＨは使用テクスチャの縦サイズである。
【００５１】
テクスチャ座標設定部３９は、シンボルキャッシュ確認部３３により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、下記の式（５）より、テクスチャ座標を算出する。
左上のテクスチャ座標＝（０，０）
右上のテクスチャ座標＝（１，０）
左下のテクスチャ座標＝（０，１）
右下のテクスチャ座標＝（１，１）    （５）
【００５２】
描画データ番号“０”のシンボル４が取得された場合、シンボルキャッシュ確認部３３により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されるので、式（４）によりテクスチャ座標が算出され、テクスチャ座標の左上座標は（０，０）、右上座標は（０．５，０）、左下座標は（０，０．５）、右下座標は（０．５，０．５）
になる。
テクスチャ座標設定部３９は、テクスチャ座標を算出すると、そのテクスチャ座標をポリゴン生成部３２により生成された３Ｄポリゴンの頂点に設定する。
【００５３】
ポリゴン描画部４０は、テクスチャ座標設定部３９がテクスチャ座標を３Ｄポリゴンの頂点に設定すると、そのテクスチャを用いて、３Ｄポリゴンを描画する（ステップＳＴ３２）。
図１５はポリゴン描画部４０による描画結果を示す説明図である。
描画データ番号０のシンボル４に係るポリゴン描画処理が終了すると、描画データ番号１のシンボル６に係るポリゴン描画処理に移行する。
【００５４】
描画データ番号１のシンボル６に係るポリゴン描画処理は、描画データ番号０のシンボル４に係るポリゴン描画処理と同様に行われ、ポリゴンの左上の頂点の座標は（３５０，２５０，０）、右上の頂点の座標は（４５０，２５０，０）、左下の頂点の座標は（３５０，３５０，０）、右下の頂点の座標は（４５０，３５０，０）となる。
シンボルキャッシュ確認部３３には、同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されて、シンボルキャッシュヒットの確認結果がキャッシュヒットとなり、連続キャッシュヒット確認部３４によって連続キャッシュヒットの確認が行われる。
この段階では、前キャッシュヒットフラグ３５が“ＴＲＵＥ”であるため、前回と同じテクスチャが使用され、テクスチャ座標設定部３９により設定されるテクスチャ座標の左上座標は（０，０．５）、右上座標は（０．５，０．５）、左下座標は（０，１）、右下座標は（０．５，１）となる。
【００５５】
その後、ポリゴン描画部４０によって、ポリゴン生成部３２により生成されたポリゴン及び使用テクスチャを用いてポリゴン描画が行われる。
ここでは、使用テクスチャは、描画データ番号“０”で切り換えられた使用テクスチャから切換えていないため、そのままテクスチャアトラス０が使用される。描画結果は、図１６のようになる。
以降、描画データ番号２のシンボル４に係るポリゴン描画処理と、描画データ番号３のシンボル８に係るポリゴン描画処理は、描画データ番号１のシンボル６に係るポリゴン描画処理と各々同様のパスを通るため説明を省略する。
描画データ番号３のシンボル８に係るポリゴン描画処理が終了の時点で、前キャッシュヒットフラグ３５が“ＴＲＵＥ”、使用テクスチャがテクスチャアトラス“１”となり、描画結果は図１７のようになる。
【００５６】
次の描画データ番号４のシンボル１０に係るポリゴン描画処理では、シンボルキャッシュ確認部３３によりシンボル１０の画像がテクスチャに書き込まれていないことが確認されるので、非キャッシュヒットとなり、オリジナルテクスチャ生成部３７によって、オリジナルのテクスチャが作成されて、前キャッシュヒットフラグが“ＦＡＬＳＥ”になる。
オリジナルテクスチャは、シンボルサイズと同じサイズを持つテクスチャであり、シンボル１０の画像が描かれたテクスチャである。この場合、１００×１００のサイズでシンボル１０の画像が描かれたテクスチャが作成される。
【００５７】
その後、使用テクスチャ切替部３８によりオリジナルのテクスチャが使用テクスチャに切り替えられて、テクスチャ座標設定部３９によりポリゴンの頂点に設定するテクスチャ座標が算出される。
この場合、シンボルキャッシュ確認部３３での結果が非キャッシュヒットであるため、上記の式（５）により算出されたテクスチャ座標が設定される。
その後、ポリゴン描画部４０によって、ポリゴン生成部３２により生成されたポリゴン及び使用テクスチャを用いてポリゴン描画が行われる。描画結果は図１８のようになる。
【００５８】
次に描画データ番号５のシンボル２に係るポリゴン描画処理に移行するが、描画データ番号０のシンボル４に係るポリゴン描画処理と同様のパスを通るため説明を省略する。
描画データ番号５のシンボル２に係るポリゴン描画処理が終了し、次の描画シンボルデータの取得処理では、次の描画データが取得されないため、描画処理部５によるポリゴン描画処理が終了する。
最終的には、図１９のようにシンボルが描画された地図表示が得られる。
【００５９】
以上で明らかなように、この実施の形態１によれば、テクスチャとして使用可能なメモリの最大サイズの範囲内で１つ以上のテクスチャを作成するテクスチャ作成部１２と、地図内に存在しているシンボルの種類別の参照回数をカウントする参照回数算出部１４と、地図内に存在しているシンボルのうち、参照回数算出部１４によりカウントされた種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャ作成部１２により作成されたテクスチャに書き込む画像書込み部１９と、画像書込み部１９により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報をシンボル情報キャッシュ２１に保存するシンボル情報保存部２０と、描画対象のシンボルの表示座標に応じて３Ｄポリゴンの頂点を生成するポリゴン生成部３２と、シンボル情報保存キャッシュ２１に保存されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認するシンボルキャッシュ確認部３３と、シンボルキャッシュ確認部３３により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、そのテクスチャ内の上記シンボルの書込み位置をテクスチャ座標として、ポリゴン生成部３２により生成された３Ｄポリゴンの頂点に設定し、シンボルキャッシュ確認部３３により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、オリジナルテクスチャ生成部３７により作成されたオリジナルテクスチャのテクスチャ座標をポリゴン生成部３２により生成された３Ｄポリゴンの頂点に設定するテクスチャ座標設定部３９とを設け、ポリゴン描画部４０がテクスチャ座標設定部３９によりテクスチャ座標が設定された３Ｄポリゴンを描画するように構成したので、大きなメモリ領域を実装していなくても、地図内のシンボルを高速に描画することができる効果を奏する。
【００６０】
また、この実施の形態１によれば、使用テクスチャ切替部３８が、前キャッシュヒットフラグ３５が“ＴＲＵＥ”である場合（描画対象のシンボルと同じ種類のシンボルの画像が書き込まれているテクスチャが、前回のポリゴン描画時に使用しているテクスチャと同じテクスチャである場合）、ポリゴン描画時に使用するテクスチャを切り替える設定を行わないように構成したので、シンボルの描画処理の高速化を図ることができる効果を奏する。
また、地図内で使用頻度が高い上位数個のシンボルを優先的に１つのテクスチャアトラスにまとめているので、１つのテクスチャアトラスに対して、連続してキャッシュヒットする確率が高くなり、効率的にテクスチャの切替処理を省くことができる効果を奏する。
【００６１】
実施の形態２．
上記実施の形態１では、シンボルの描画処理の高速化が図られている地図シンボル描画装置を説明したが、この実施の形態２では、地図の縮尺の変更を受け付ける機能を備えている地図シンボル描画装置において、シンボルの描画処理の高速化が図られているものについて説明する。
【００６２】
図２０はこの発明の実施の形態２による地図シンボル描画装置を示す構成図であり、図において、図１と同一符号は同一または相当部分を示すので説明を省略する。
縮尺別データ整理部６は例えばＣＰＵなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、地図の縮尺別に、当該地図内に存在しているシンボルの種類別の参照回数をカウントする処理などを起動時に実施する処理部である。
縮尺別テクスチャアトラス作成部７は例えばＣＰＵなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、指定された縮尺の地図内に存在しているシンボルのうち、上記縮尺に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャに書き込む処理や、そのシンボルの種類及び書込み位置を示すシンボル情報を保存する処理などを地図の縮尺の変更時に実施する処理部である。
描画処理部５の処理内容は上記実施の形態１と同様である。
【００６３】
縮尺別データ抽出部５１は地図データ格納部１に格納されている地図データを参照して、地図内に存在しているシンボルを縮尺別に抽出する処理を実施する。
参照回数算出部５２は地図の縮尺別に、縮尺別データ抽出部５１により抽出されたシンボルの種類別の参照回数をカウントする処理を実施する。
種類別ソート部５３は地図の縮尺別に、参照回数算出部５２によりカウントされた参照回数が多い順に、シンボルの種類をソートして、そのソート結果を縮尺別ソートリスト５４に記録する処理を実施する。
なお、縮尺別データ抽出部５１、参照回数算出部５２及び種類別ソート部５３から参照回数計数手段が構成されている。
【００６４】
キャッシュクリア部６１は地図の縮尺変更時に、シンボル情報キャッシュ２１に保持されているシンボル情報を消去する処理を実施する。
縮尺別リスト取得部６２は縮尺別ソートリスト５４から指定縮尺に対応する種類別ソート部５３のソート結果を取得する処理を実施する。
シンボルデータ取得部６３は指定縮尺に対応する種類別ソート部５３のソート結果を参照して、指定縮尺の地図内のシンボルの中で、ソート順位が１位の種類のシンボルから順番に、地図データ格納部１からシンボルデータ（シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ）を取得する処理を実施する。
なお、キャッシュクリア部６１、縮尺別リスト取得部６２、シンボルデータ取得部６３、書込み可能判定部１７、書込みテクスチャ切替部１８及び画像書込み部１９からシンボル画像書込み手段が構成されている。
【００６５】
図２０の例では、地図シンボル描画装置の構成要素であるメモリ超過判定部１１、テクスチャ作成部１２、縮尺別データ抽出部５１、参照回数算出部５２、種類別ソート部５３、キャッシュクリア部６１、縮尺別リスト取得部６２、シンボルデータ取得部６３、書込み可能判定部１７、書込みテクスチャ切替部１８、画像書込み部１９、シンボル情報保存部２０、描画シンボルデータ取得部３１、ポリゴン生成部３２、シンボルキャッシュ確認部３３、連続キャッシュヒット確認部３４、テクスチャアトラス取得部３６、オリジナルテクスチャ生成部３７、使用テクスチャ切替部３８、テクスチャ座標設定部３９及びポリゴン描画部４０のそれぞれが専用のハードウェア（例えば、ＣＰＵを実装している半導体集積回路、あるいは、ワンチップマイコンなど）で構成されているものを想定しているが、地図シンボル描画装置がコンピュータで構成される場合、メモリ超過判定部１１、テクスチャ作成部１２、縮尺別データ抽出部５１、参照回数算出部５２、種類別ソート部５３、キャッシュクリア部６１、縮尺別リスト取得部６２、シンボルデータ取得部６３、書込み可能判定部１７、書込みテクスチャ切替部１８、画像書込み部１９、シンボル情報保存部２０、描画シンボルデータ取得部３１、ポリゴン生成部３２、シンボルキャッシュ確認部３３、連続キャッシュヒット確認部３４、テクスチャアトラス取得部３６、オリジナルテクスチャ生成部３７、使用テクスチャ切替部３８、テクスチャ座標設定部３９及びポリゴン描画部４０の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのＣＰＵが当該メモリに格納されているプログラムを実行するようにしてもよい。
図２１はこの発明の実施の形態２よる地図シンボル描画装置の縮尺別データ整理部６の処理内容を示すフローチャートである。
図２２はこの発明の実施の形態２よる地図シンボル描画装置の縮尺別テクスチャアトラス作成部７の処理内容を示すフローチャートである。
【００６６】
次に動作について説明する。
この実施の形態２では、説明の便宜上、地図表示画面サイズが１０００×１０００であり、地図データが１０００種類のシンボルを含んでいるものとする。
また、表示可能な縮尺として、１００ｍ縮尺と２００ｍ縮尺の２つが用意されているものとする。
図２３は１００ｍ縮尺の地図内に存在しているシンボルの種類別の参照回数（使用回数）と、２００ｍ縮尺の地図内に存在しているシンボルの種類別の参照回数（使用回数）との一例を示す説明図である。
また、この実施の形態２では、シンボルのサイズが１００×１００［ｐｉｘｅｌ］、テクスチャ最大サイズが２００×２００［ｐｉｘｅｌ］、メモリ最大サイズが２００×５００［ｐｉｘｅｌ］であるものとする（図５を参照）。
【００６７】
地図シンボル描画装置の起動時では、使用メモリサイズが“０”、テクスチャリスト１３が空リスト、書込みテクスチャインデックスが“０”、書込み開始座標が（０，０）であるものとする。
また、描画シンボルデータは、図６に示す６個のウィンドウ座標及びシンボル種類のセットであり、前キャッシュヒットフラグ３５が“ＦＡＬＳＥ”であるものとする。
ただし、テクスチャの座標系及び表示ウィンドウ座標系は、左上を原点として、Ｘ軸方向は右、Ｙ軸方向は下である。
【００６８】
最初に、縮尺別データ整理部６の処理内容を説明する。
メモリ超過判定部１１は、上記実施の形態１と同様に、テクスチャとして使用可能なメモリに対して既に作成しているテクスチャのサイズＴｓｉｚｅＮＯＷと、メモリ最大サイズ記憶部３に記憶されているメモリ最大サイズＭＭＡＸとを比較して、新たにテクスチャを作成することが可能であるか否かを判定する。
即ち、メモリ超過判定部１１は、既に作成しているテクスチャのサイズＴｓｉｚｅＮＯＷに対して、新たに作成するテクスチャの最大サイズＴｓｉｚｅＭＡＸ（テクスチャ最大サイズ記憶部２により記憶されているテクスチャ最大サイズ）を加算したとき、その加算結果が、メモリ最大サイズＭＥＭＭＡＸを超えていれば、メモリを超過してしまうため、新たにテクスチャを作成することが不可能であると判定する（図２１のステップＳＴ４１，ＳＴ４２）。
一方、その加算結果が、メモリ最大サイズＭＥＭＭＡＸを超えていなければ、新たにテクスチャを作成することが可能であると判定する（ステップＳＴ４１，ＳＴ４２）。
【００６９】
地図シンボル描画装置の起動時では、既に作成しているテクスチャのサイズＴｓｉｚｅＮＯＷ（使用メモリサイズ）が“０”であるため、ＴｓｉｚｅＮＯＷ＋ＴｓｉｚｅＭＡＸは“２００×２００”となり、メモリ最大サイズ“２００×５００”を超えないため、新たにテクスチャを作成することが可能であると判定される。
【００７０】
テクスチャ作成部１２は、上記実施の形態１と同様に、メモリ超過判定部１１により新たにテクスチャを作成することができると判定されると、テクスチャ最大サイズＴｓｉｚｅＭＡＸのテクスチャ（２００×２００のテクスチャ）を作成する（ステップＳＴ４３）。
また、テクスチャ作成部１２は、テクスチャリスト１３に対して、作成したテクスチャの情報を追加する。
テクスチャ作成部１２が新たにテクスチャを作成することで、テクスチャ最大サイズＴｓｉｚｅＭＡＸを使用メモリサイズに加算し、再度、ステップＳＴ４１のメモリ超過判定処理に戻る。
上記の通り、テクスチャ最大サイズが２００×２００［ｐｉｘｅｌ］、メモリ最大サイズが２００×５００［ｐｉｘｅｌ］である場合、２００×２００のテクスチャが２個作成されるが、３個目のテクスチャを作成する際にメモリ超過が認められるため、３個目のテクスチャは作成されず、ステップＳＴ４４の処理に移行する。
【００７１】
縮尺別データ抽出部５１は、地図データ格納部１に格納されている地図データを参照して、地図内に存在しているシンボルを縮尺別に抽出する（ステップＳＴ４４）。
この実施の形態２では、説明の便宜上、最初に１００ｍ縮尺の地図内に存在しているシンボルが抽出され、次にステップＳＴ４４の処理に戻ってきたときに、２００ｍ縮尺の地図内に存在しているシンボルが抽出されるものとする。
参照回数算出部５２は、縮尺別データ抽出部５１が地図内に存在しているシンボルを縮尺別に抽出すると（ステップＳＴ４５）、地図の縮尺別に、縮尺別データ抽出部５１により抽出されたシンボルの種類別の参照回数をカウントする（ステップＳＴ４６）。
例えば、地図データ格納部１から指定縮尺の地図内に存在している全てのシンボルのシンボルデータを抽出し、種類別にデータ数を数えることで実現することができる。
この実施の形態２では、１０００個のシンボルに対して、図２３に示すような種類別の参照回数（使用回数）が得られるものとする。
【００７２】
種類別ソート部５３は、参照回数算出部５２がシンボルの種類別の参照回数をカウントすると、図２４に示すように、カウントされた参照回数が多い順に、シンボルの種類をソートする（ステップＳＴ４７）。
図２４の例では、参照回数算出部５２のカウント結果を示す種類別の参照回数が降順ソート（例えば、マージソート）されており、１００ｍ縮尺の地図では、シンボル４、シンボル３、シンボル２、シンボル５・・・の順番で並べられている。
また、２００ｍ縮尺の地図では、シンボル５、シンボル７、シンボル９、シンボル８・・・の順番で並べられている。
この実施の形態２では、以降、１００ｍ縮尺の地図のソート結果を示すリストを「ソートリスト０」と称し、２００ｍ縮尺の地図のソート結果を示すリストを「ソートリスト１」と称する。
【００７３】
次に、縮尺の変更時に動作する縮尺別テクスチャアトラス作成部７の処理内容を説明する。
まず、キャッシュクリア部６１は、地図の縮尺変更時に、シンボル情報キャッシュ２１に保持されているシンボル情報を消去する（図２２のステップＳＴ５１）。
縮尺別リスト取得部６２は、縮尺別ソートリスト５４から指定縮尺に対応する種類別ソート部５３のソート結果を取得する（ステップＳＴ５２）。
この実施の形態２では、説明の便宜上、表示縮尺が１００ｍ縮尺であるとする。この場合、１００ｍ縮尺の地図のソート結果を示すソートリスト０が取得される。
【００７４】
シンボルデータ取得部６３は、指定縮尺に対応する種類別ソート部５３のソート結果を参照して、指定縮尺の地図内のシンボルの中で、ソート順位が１位の種類のシンボルから順番に、地図データ格納部１からシンボルデータ（シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ）を取得する（ステップＳＴ５３）。
この実施の形態２では、１００ｍ縮尺の地図のソート結果を示すソートリスト０を参照して、１００ｍ縮尺の地図内のシンボルの中で、ソート順位が１位の種類のシンボルから順番に、地図データ格納部１からシンボルデータを取得する。
【００７５】
書込み可能判定部１７は、上記実施の形態１と同様に、シンボルデータ取得部６３がシンボルデータを取得する毎に、テクスチャ作成部１２により作成されたテクスチャ（書込みテクスチャインデックスが指示するテクスチャリスト１３内のテクスチャ）に対して、そのシンボルデータが示すシンボルの画像を書き込めるか否かを判定する（ステップＳＴ５４）。
以降、書込みテクスチャ切替部１８、画像書込み部１９及びシンボル情報保存部２０が、上記実施の形態１と同様に動作する（ステップＳＴ５５〜ＳＴ５９）。
その結果、図２５に示すようなテクスチャアトラス０，１（１００ｍ縮尺に対応するテクスチャアトラス）が作成され、図２６に示すようなシンボル情報キャッシュが作成される。
描画処理部５は、地図の描画を更新する際、上記実施の形態１と同様に動作して、３Ｄポリゴンの描画処理を実施する。
【００７６】
次に、地図の縮尺が１００ｍ縮尺から２００ｍ縮尺に変更された場合の処理内容を説明する。
まず、キャッシュクリア部６１は、シンボル情報キャッシュ２１に保持されている１００ｍ縮尺に係るシンボル情報を消去する（図２２のステップＳＴ５１）。
縮尺別リスト取得部６２は、縮尺別ソートリスト５４から指定縮尺に対応する種類別ソート部５３のソート結果を取得する（ステップＳＴ５２）。
この実施の形態２では、２００ｍ縮尺の地図のソート結果を示すソートリスト１が取得される。
【００７７】
シンボルデータ取得部６３は、指定縮尺に対応する種類別ソート部５３のソート結果を参照して、指定縮尺の地図内のシンボルの中で、ソート順位が１位の種類のシンボルから順番に、地図データ格納部１からシンボルデータ（シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ）を取得する（ステップＳＴ５３）。
ここでは、２００ｍ縮尺の地図のソート結果を示すソートリスト１を参照して、２００ｍ縮尺の地図内のシンボルの中で、ソート順位が１位の種類のシンボルから順番に、地図データ格納部１からシンボルデータを取得する。
【００７８】
書込み可能判定部１７は、上記実施の形態１と同様に、シンボルデータ取得部６３がシンボルデータを取得する毎に、テクスチャ作成部１２により作成されたテクスチャ（書込みテクスチャインデックスが指示するテクスチャリスト１３内のテクスチャ）に対して、そのシンボルデータが示すシンボルの画像を書き込めるか否かを判定する（ステップＳＴ５４）。
以降、書込みテクスチャ切替部１８、画像書込み部１９及びシンボル情報保存部２０が、上記実施の形態１と同様に動作する（ステップＳＴ５５〜ＳＴ５９）。
その結果、図２７に示すようなテクスチャアトラス０，１（２００ｍ縮尺に対応するテクスチャアトラス）が作成され、図２８に示すようなシンボル情報キャッシュが作成される。
描画処理部５は、地図の描画を更新する際、上記実施の形態１と同様に動作して、３Ｄポリゴンの描画処理を実施する。
【００７９】
以上で明らかなように、この実施の形態２によれば、参照回数算出部５２が、地図の縮尺別に、当該地図内に存在しているシンボルの種類別の参照回数をカウントし、シンボルデータ取得部６３が、指定された縮尺の地図内に存在しているシンボルのうち、上記縮尺に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、画像書込み部１９が、上位数個のシンボルの画像をテクスチャ作成部１２により作成されたテクスチャに書き込み、シンボル情報保存部２０が、画像書込み部１９により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報をシンボル情報キャッシュ２１に保存するように構成したので、地図の縮尺が変更される場合でも、地図内のシンボルを高速に描画することができる効果を奏する。
即ち、表示縮尺毎に、高使用頻度のシンボルを優先的に１つのテクスチャアトラスにまとめているので、表示縮尺に応じたテクスチャアトラスのキャッシュヒットの最適化が図られ、その結果、効率的にテクスチャ切替処理を省くことができる。
【００８０】
実施の形態３．
上記実施の形態１では、シンボルの描画処理の高速化が図られている地図シンボル描画装置を説明したが、この実施の形態３では、地図の表示領域が切り替わる際のシンボルの描画処理の高速化が図られている地図シンボル描画装置を説明する。
【００８１】
図２９はこの発明の実施の形態３による地図シンボル描画装置を示す構成図であり、図において、図１と同一符号は同一または相当部分を示すので説明を省略する。
地域別テクスチャアトラス作成部８は例えばＣＰＵなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、地図の地域別に、当該地図内に存在しているシンボルの種類別の参照回数をカウントする処理や、複数の地域の地図内に存在しているシンボルのうち、当該地域に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャに書き込む処理や、そのシンボルの種類及び書込み位置を示すシンボル情報を保存する処理などを起動時に実施する処理部である。
描画処理部５の処理内容は上記実施の形態１と同様である。
【００８２】
地域別データ抽出部７１は地図データ格納部１に格納されている地図データを参照して、地図内に存在しているシンボルを地域別に抽出する処理を実施する。
参照回数算出部７２は地図の地域別に、地域別データ抽出部７１により抽出されたシンボルの種類別の参照回数をカウントする処理を実施する。
種類別ソート部７３は地図の地域別に、参照回数算出部７２によりカウントされた参照回数が多い順に、シンボルの種類をソートする処理を実施する。
なお、地域別データ抽出部７１、参照回数算出部７２及び種類別ソート部７３から参照回数計数手段が構成されている。
【００８３】
地域別リスト取得部７４は種類別ソート部７３による地域別のソート結果のうち、テクスチャアトラス作成対象の地域に対応するソート結果を取得する処理を実施する。
シンボルデータ取得部７５は地域別リスト取得部７４により取得されたソート結果を参照して、テクスチャアトラス作成対象の地域の地図内のシンボルの中で、ソート順位が１位の種類のシンボルから順番に、地図データ格納部１からシンボルデータ（シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ）を取得する処理を実施する。
なお、地域別リスト取得部７４、シンボルデータ取得部７５、書込み可能判定部１７、書込みテクスチャ切替部１８及び画像書込み部１９からシンボル画像書込み手段が構成されている。
【００８４】
図２９の例では、地図シンボル描画装置の構成要素であるメモリ超過判定部１１、テクスチャ作成部１２、地域別データ抽出部７１、参照回数算出部７２、種類別ソート部７３、地域別リスト取得部７４、シンボルデータ取得部７５、書込み可能判定部１７、書込みテクスチャ切替部１８、画像書込み部１９、シンボル情報保存部２０、描画シンボルデータ取得部３１、ポリゴン生成部３２、シンボルキャッシュ確認部３３、連続キャッシュヒット確認部３４、テクスチャアトラス取得部３６、オリジナルテクスチャ生成部３７、使用テクスチャ切替部３８、テクスチャ座標設定部３９及びポリゴン描画部４０のそれぞれが専用のハードウェア（例えば、ＣＰＵを実装している半導体集積回路、あるいは、ワンチップマイコンなど）で構成されているものを想定しているが、地図シンボル描画装置がコンピュータで構成される場合、メモリ超過判定部１１、テクスチャ作成部１２、地域別データ抽出部７１、参照回数算出部７２、種類別ソート部７３、地域別リスト取得部７４、シンボルデータ取得部７５、書込み可能判定部１７、書込みテクスチャ切替部１８、画像書込み部１９、シンボル情報保存部２０、描画シンボルデータ取得部３１、ポリゴン生成部３２、シンボルキャッシュ確認部３３、連続キャッシュヒット確認部３４、テクスチャアトラス取得部３６、オリジナルテクスチャ生成部３７、使用テクスチャ切替部３８、テクスチャ座標設定部３９及びポリゴン描画部４０の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのＣＰＵが当該メモリに格納されているプログラムを実行するようにしてもよい。
図３０はこの発明の実施の形態３よる地図シンボル描画装置の地域別テクスチャアトラス作成部８の処理内容を示すフローチャートである。
【００８５】
次に動作について説明する。
この実施の形態３では、説明の便宜上、地図表示画面サイズが１０００×１０００であり、地図データが１０００種類のシンボルを含んでいるものとする。
また、表示可能な地域として、東京と大阪の２つが用意されているものとする。
図３１は地域が東京である場合の地図内に存在しているシンボルの種類別の参照回数（使用回数）と、地域が大阪である場合の地図内に存在しているシンボルの種類別の参照回数（使用回数）との一例を示す説明図である。
また、この実施の形態３では、シンボルのサイズが１００×１００［ｐｉｘｅｌ］、テクスチャ最大サイズが２００×２００［ｐｉｘｅｌ］、メモリ最大サイズが２００×５００［ｐｉｘｅｌ］であるものとする（図５を参照）。
【００８６】
地図シンボル描画装置の起動時では、使用メモリサイズが“０”、テクスチャリスト１３が空リスト、書込みテクスチャインデックスが“０”、書込み開始座標が（０，０）であるものとする。
また、描画シンボルデータは、図６に示す６個のウィンドウ座標及びシンボル種類のセットであり、前キャッシュヒットフラグ３５が“ＦＡＬＳＥ”であるものとする。
ただし、テクスチャの座標系及び表示ウィンドウ座標系は、左上を原点として、Ｘ軸方向は右、Ｙ軸方向は下である。
【００８７】
地域別テクスチャアトラス作成部８のメモリ超過判定部１１は、上記実施の形態１と同様に、テクスチャとして使用可能なメモリに対して既に作成しているテクスチャのサイズＴｓｉｚｅＮＯＷと、メモリ最大サイズ記憶部３に記憶されているメモリ最大サイズＭＭＡＸとを比較して、新たにテクスチャを作成することが可能であるか否かを判定する。
即ち、メモリ超過判定部１１は、既に作成しているテクスチャのサイズＴｓｉｚｅＮＯＷに対して、新たに作成するテクスチャの最大サイズＴｓｉｚｅＭＡＸ（テクスチャ最大サイズ記憶部２により記憶されているテクスチャ最大サイズ）を加算したとき、その加算結果が、メモリ最大サイズＭＥＭＭＡＸを超えていれば、メモリを超過してしまうため、新たにテクスチャを作成することが不可能であると判定する（図３０のステップＳＴ６１，ＳＴ６２）。
一方、その加算結果が、メモリ最大サイズＭＥＭＭＡＸを超えていなければ、新たにテクスチャを作成することが可能であると判定する（ステップＳＴ６１，ＳＴ６２）。
【００８８】
地図シンボル描画装置の起動時では、既に作成しているテクスチャのサイズＴｓｉｚｅＮＯＷ（使用メモリサイズ）が“０”であるため、ＴｓｉｚｅＮＯＷ＋ＴｓｉｚｅＭＡＸは“２００×２００”となり、メモリ最大サイズ“２００×５００”を超えないため、新たにテクスチャを作成することが可能であると判定される。
【００８９】
テクスチャ作成部１２は、上記実施の形態１と同様に、メモリ超過判定部１１により新たにテクスチャを作成することができると判定されると、テクスチャ最大サイズＴｓｉｚｅＭＡＸのテクスチャ（２００×２００のテクスチャ）を作成する（ステップＳＴ６３）。
また、テクスチャ作成部１２は、テクスチャリスト１３に対して、作成したテクスチャの情報を追加する。
テクスチャ作成部１２が新たにテクスチャを作成することで、テクスチャ最大サイズＴｓｉｚｅＭＡＸを使用メモリサイズに加算し、再度、ステップＳＴ６１のメモリ超過判定処理に戻る。
上記の通り、テクスチャ最大サイズが２００×２００［ｐｉｘｅｌ］、メモリ最大サイズが２００×５００［ｐｉｘｅｌ］である場合、２００×２００のテクスチャが２個作成されるが、３個目のテクスチャを作成する際にメモリ超過が認められるため、３個目のテクスチャは作成されず、ステップＳＴ６４の処理に移行する。
【００９０】
地域別データ抽出部７１は、地図データ格納部１に格納されている地図データを参照して、地図内に存在しているシンボルを地域別に抽出する（ステップＳＴ６４）。
この実施の形態３では、説明の便宜上、最初に地域が東京の地図内に存在しているシンボルが抽出され、次にステップＳＴ６４の処理に戻ってきたときに、地域が大阪の地図内に存在しているシンボルが抽出されるものとする。
参照回数算出部７２は、地域別データ抽出部７１が地図内に存在しているシンボルを地域別に抽出すると（ステップＳＴ６５）、地図の地域別に、地域別データ抽出部７１により抽出されたシンボルの種類別の参照回数をカウントする（ステップＳＴ６６）。
例えば、地図データ格納部１から東京／大阪の地図内に存在している全てのシンボルのシンボルデータを抽出し、種類別にデータ数を数えることで実現することができる。
この実施の形態３では、１０００個のシンボルに対して、図３１に示すような種類別の参照回数（使用回数）が得られるものとする。
【００９１】
種類別ソート部７３は、参照回数算出部７２がシンボルの種類別の参照回数をカウントすると、図３２に示すように、カウントされた参照回数が多い順に、シンボルの種類をソートする（ステップＳＴ６７）。
図３２の例では、参照回数算出部５２のカウント結果を示す種類別の参照回数が降順ソート（例えば、マージソート）されており、地域が東京の地図では、シンボル４、シンボル３、シンボル２、シンボル５・・・の順番で並べられている。
また、地域が大阪の地図では、シンボル５、シンボル７、シンボル９、シンボル８・・・の順番で並べられている。
この実施の形態３では、以降、地域が東京の地図のソート結果を示すリストを「ソートリスト０」と称し、地域が大阪の地図のソート結果を示すリストを「ソートリスト１」と称する。
【００９２】
地域別リスト取得部７４は、種類別ソート部７３による地域別のソート結果のうち、テクスチャアトラス作成対象の地域に対応するソート結果を示すソースリストを取得する（ステップＳＴ６８）。
ここでは、説明の便宜上、地域が東京の地図のソート結果を示すソートリスト０を取得するものとする。
シンボルデータ取得部７５は、地域別リスト取得部７４がソートリスト０を取得すると、そのソートリスト０を参照して、地域が東京の地図内のシンボルの中で、ソート順位が１位の種類のシンボルから順番に、地図データ格納部１からシンボルデータ（シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ）を取得する（ステップＳＴ６９）。
【００９３】
書込み可能判定部１７は、上記実施の形態１と同様に、シンボルデータ取得部７５がシンボルデータを取得する毎に、テクスチャ作成部１２により作成されたテクスチャ（書込みテクスチャインデックスが指示するテクスチャリスト１３内のテクスチャ）に対して、そのシンボルデータが示すシンボルの画像を書き込めるか否かを判定する（ステップＳＴ７０）。
以降、書込みテクスチャ切替部１８、画像書込み部１９及びシンボル情報保存部２０が、上記実施の形態１と同様に動作する（ステップＳＴ７１〜ＳＴ７５）。
その結果、図３３に示すようなテクスチャアトラス０（地域が東京のテクスチャアトラス）が作成され、図３４に示すようなシンボル情報キャッシュが作成される。
【００９４】
次に、地域別リスト取得部７４は、地域が大阪の地図のソート結果を示すソートリスト１を取得する（ステップＳＴ６８）。
シンボルデータ取得部７５は、地域別リスト取得部７４がソートリスト１を取得すると、そのソートリスト１を参照して、地域が大阪の地図内のシンボルの中で、ソート順位が１位の種類のシンボルから順番に、地図データ格納部１からシンボルデータ（シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ）を取得する（ステップＳＴ６９）。
【００９５】
書込み可能判定部１７は、上記実施の形態１と同様に、シンボルデータ取得部７５がシンボルデータを取得する毎に、テクスチャ作成部１２により作成されたテクスチャ（書込みテクスチャインデックスが指示するテクスチャリスト１３内のテクスチャ）に対して、そのシンボルデータが示すシンボルの画像を書き込めるか否かを判定する（ステップＳＴ７０）。
以降、書込みテクスチャ切替部１８、画像書込み部１９及びシンボル情報保存部２０が、上記実施の形態１と同様に動作する（ステップＳＴ７１〜ＳＴ７５）。
その結果、図３５に示すようなテクスチャアトラス１（地域が大阪のテクスチャアトラス）が作成され、図３６に示すようなシンボル情報キャッシュが作成される。
描画処理部５は、地図の描画を更新する際、上記実施の形態１と同様に動作して、３Ｄポリゴンの描画処理を実施する。
【００９６】
以上で明らかなように、この実施の形態３によれば、参照回数算出部７２が、地図の地域別に、当該地図内に存在しているシンボルの種類別の参照回数をカウントし、シンボルデータ取得部７４が、複数の地域の地図内に存在しているシンボルのうち、テクスチャアトラス作成対象の地域の種類別の参照回数が多い上位数個のシンボルの画像を取得し、画像書込み部１９が、上位数個のシンボルの画像をテクスチャ作成部１２により作成されたテクスチャに書き込み、シンボル情報保存部２０が、画像書込み部１９により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報をシンボル情報キャッシュ２１に保存するように構成したので、表示対象の地域が変更される場合でも、地図内のシンボルを高速に描画することができる効果を奏する。
即ち、地域別に、高使用頻度のシンボルを優先的に１つのテクスチャアトラスにまとめているので、表示する地域に応じたテクスチャアトラスのキャッシュヒットの最適化が図られ、その結果、効率的にテクスチャ切替処理を省くことができる。
【００９７】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００９８】
この発明に係る地図シンボル描画装置は、地図内のシンボルを高速に描画するに際して、大きなメモリ領域を実装する必要がないため、使用メモリサイズの制約が厳しいカーナビなどの組込み型の地図表示器に適している。
【図１】
2012063279.tif 000003
【図２】
2012063279.tif 000004
【図３】
2012063279.tif 000005
【図４】
2012063279.tif 000006
【図５】
2012063279.tif 000007
【図６】
2012063279.tif 000008
【図７】
2012063279.tif 000009
【図８】
2012063279.tif 000010
【図９】
2012063279.tif 000011
【図１０】
2012063279.tif 000012
【図１１】
2012063279.tif 000013
【図１２】
2012063279.tif 000014
【図１３】
2012063279.tif 000015
【図１４】
2012063279.tif 000016
【図１５】
2012063279.tif 000017
【図１６】
2012063279.tif 000018
【図１７】
2012063279.tif 000019
【図１８】
2012063279.tif 000020
【図１９】
2012063279.tif 000021
【図２０】
2012063279.tif 000022
【図２１】
2012063279.tif 000023
【図２２】
2012063279.tif 000024
【図２３】
2012063279.tif 000025
【図２４】
2012063279.tif 000026
【図２５】
2012063279.tif 000027
【図２６】
2012063279.tif 000028
【図２７】
2012063279.tif 000029
【図２８】
2012063279.tif 000030
【図２９】
2012063279.tif 000031
【図３０】
2012063279.tif 000032
【図３１】
2012063279.tif 000033
【図３２】
2012063279.tif 000034
【図３３】
2012063279.tif 000035
【図３４】
2012063279.tif 000036
【図３５】
2012063279.tif 000037
【図３６】
2012063279.tif 000038
【国際調査報告】
2012063279.tif 000039
2012063279.tif 000040