JP5318290B2 - 地図シンボル描画装置 - Google Patents
地図シンボル描画装置 Download PDFInfo
- Publication number
- JP5318290B2 JP5318290B2 JP2012542692A JP2012542692A JP5318290B2 JP 5318290 B2 JP5318290 B2 JP 5318290B2 JP 2012542692 A JP2012542692 A JP 2012542692A JP 2012542692 A JP2012542692 A JP 2012542692A JP 5318290 B2 JP5318290 B2 JP 5318290B2
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- texture
- map
- unit
- polygon
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3667—Display of a road map
- G01C21/367—Details, e.g. road map scale, orientation, zooming, illumination, level of detail, scrolling of road map or positioning of current position marker
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Instructional Devices (AREA)
Description
この発明は、地図内のシンボルを高速に描画する地図シンボル描画装置に関するものである。
カーナビを代表とする2次元の地図表示装置では、シンボルと呼ばれるビットマップ画像を指示アイコン(例えば、コンビニ、銀行、ガソリンスタンドなどを示すアイコン)として表示している。
これらのシンボルは、通常、2次元描画コアを用いて描画するが、近年の3次元描画コアの発展に伴って、3次元描画コアを用いて、2次元シンボルを描画する手法が開発されてきている。
これらのシンボルは、通常、2次元描画コアを用いて描画するが、近年の3次元描画コアの発展に伴って、3次元描画コアを用いて、2次元シンボルを描画する手法が開発されてきている。
3次元描画コアを用いたシンボル描画は、3次元グラフィックス技術を用いる。そのため、描画の高速化を目的とする場合、一般的な3次元グラフィックス技術で用いられる高速描画手法が効果的である。
高速化手法の1つに、テクスチャアトラスと呼ばれる手法がある。3次元描画では、複数の頂点から構成されるポリゴンと呼ばれる多面体に対して、テクスチャと呼ばれる2次元画像をマッピングすることで、レーシングゲームの建物やアクションゲームのキャラクタなどの多様な表現を可能にしている。
高速化手法の1つに、テクスチャアトラスと呼ばれる手法がある。3次元描画では、複数の頂点から構成されるポリゴンと呼ばれる多面体に対して、テクスチャと呼ばれる2次元画像をマッピングすることで、レーシングゲームの建物やアクションゲームのキャラクタなどの多様な表現を可能にしている。
ただし、ポリゴン毎に異なるテクスチャをマッピングする場合、使用するテクスチャの切り替えが必要となるが、一般にテクスチャの切替処理は低速である。
そこで、描画の高速化を図るために、予め、複数のテクスチャを1つの大きなテクスチャ(テクスチャアトラス)に詰め込んでおくことで、描画時のテクスチャ切替処理を減らしている地図シンボル描画装置が以下の特許文献1に開示されている。
即ち、特許文献1に開示されている地図シンボル描画装置では、キャラクタなどの3次元モデルのパーツ毎に、テクスチャアトラスを作成することで、各パーツの描画時において、テクスチャの切替処理が発生しないようにしている。
そこで、描画の高速化を図るために、予め、複数のテクスチャを1つの大きなテクスチャ(テクスチャアトラス)に詰め込んでおくことで、描画時のテクスチャ切替処理を減らしている地図シンボル描画装置が以下の特許文献1に開示されている。
即ち、特許文献1に開示されている地図シンボル描画装置では、キャラクタなどの3次元モデルのパーツ毎に、テクスチャアトラスを作成することで、各パーツの描画時において、テクスチャの切替処理が発生しないようにしている。
従来の地図シンボル描画装置は以上のように構成されているので、同時に描画するモデルのパーツ毎にテクスチャをまとめてテクスチャアトラスを作成している。このため、モデルのパーツ分のテクスチャアトラスが必要となり、使用するメモリ領域が大きくなる課題があった。
特に、カーナビを代表とする組込み型の地図表示装置では、使用メモリサイズの制約が厳しいため、必要な全てのテクスチャアトラスを作成することが困難であるなどの課題があった。
特に、カーナビを代表とする組込み型の地図表示装置では、使用メモリサイズの制約が厳しいため、必要な全てのテクスチャアトラスを作成することが困難であるなどの課題があった。
この発明は上記のような課題を解決するためになされたもので、大きなメモリ領域を実装していなくても、地図内のシンボルを高速に描画することができる地図シンボル描画装置を得ることを目的とする。
この発明に係る地図シンボル描画装置は、テクスチャとして使用可能なメモリの最大サイズの範囲内で1つ以上のテクスチャを作成するテクスチャ作成手段と、地図内に存在しているシンボルの種類別の参照回数を計数する参照回数計数手段と、地図内に存在しているシンボルのうち、参照回数計数手段により計数された種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャ作成手段により作成されたテクスチャに書き込むシンボル画像書込み手段と、シンボル画像書込み手段により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報を保存するシンボル情報保存手段と、描画対象のシンボルの表示座標に応じて3Dポリゴンの頂点を生成するポリゴン生成手段と、シンボル情報保存手段により保存されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認する書込み確認手段と、書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、上記テクスチャ内の上記シンボルの書込み位置をテクスチャ座標として、ポリゴン生成手段により生成された3Dポリゴンの頂点に設定し、書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成し、そのテクスチャの座標をポリゴン生成手段により生成された3Dポリゴンの頂点に設定するテクスチャ座標設定手段とを設け、ポリゴン描画手段がテクスチャ座標設定手段によりテクスチャ座標が設定された3Dポリゴンを描画するようにしたものである。
この発明によれば、テクスチャとして使用可能なメモリの最大サイズの範囲内で1つ以上のテクスチャを作成するテクスチャ作成手段と、地図内に存在しているシンボルの種類別の参照回数を計数する参照回数計数手段と、地図内に存在しているシンボルのうち、参照回数計数手段により計数された種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャ作成手段により作成されたテクスチャに書き込むシンボル画像書込み手段と、シンボル画像書込み手段により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報を保存するシンボル情報保存手段と、描画対象のシンボルの表示座標に応じて3Dポリゴンの頂点を生成するポリゴン生成手段と、シンボル情報保存手段により保存されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認する書込み確認手段と、書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、上記テクスチャ内の上記シンボルの書込み位置をテクスチャ座標として、ポリゴン生成手段により生成された3Dポリゴンの頂点に設定し、書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成し、そのテクスチャの座標をポリゴン生成手段により生成された3Dポリゴンの頂点に設定するテクスチャ座標設定手段とを設け、ポリゴン描画手段がテクスチャ座標設定手段によりテクスチャ座標が設定された3Dポリゴンを描画するように構成したので、大きなメモリ領域を実装していなくても、地図内のシンボルを高速に描画することができる効果がある。
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に沿って説明する。
実施の形態1.
図1はこの発明の実施の形態1による地図シンボル描画装置を示す構成図である。
図1において、地図データ格納部1はカーナビなどの地図表示器に表示する地図の情報である地図データ(地図内の道路に関する情報のほか、地図内のシンボルに関する情報などを含んでいる)を格納しているハードディスクなどの記憶装置である。
テクスチャ最大サイズ記憶部2はカーナビなどの地図表示器が確保することが可能なテクスチャ1枚の最大サイズ(テクスチャ最大サイズ)を記憶しているRAMなどの記録媒体である。
メモリ最大サイズ記憶部3はテクスチャとして使用可能なメモリサイズ(メモリ最大サイズ)を記憶しているRAMなどの記録媒体である。テクスチャとして使用可能なメモリサイズはユーザにより決定される値である。
実施の形態1.
図1はこの発明の実施の形態1による地図シンボル描画装置を示す構成図である。
図1において、地図データ格納部1はカーナビなどの地図表示器に表示する地図の情報である地図データ(地図内の道路に関する情報のほか、地図内のシンボルに関する情報などを含んでいる)を格納しているハードディスクなどの記憶装置である。
テクスチャ最大サイズ記憶部2はカーナビなどの地図表示器が確保することが可能なテクスチャ1枚の最大サイズ(テクスチャ最大サイズ)を記憶しているRAMなどの記録媒体である。
メモリ最大サイズ記憶部3はテクスチャとして使用可能なメモリサイズ(メモリ最大サイズ)を記憶しているRAMなどの記録媒体である。テクスチャとして使用可能なメモリサイズはユーザにより決定される値である。
テクスチャアトラス作成部4は例えばCPUなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、シンボルの画像をテクスチャに書き込む処理や、そのシンボルの種類及び書込み位置を示すシンボル情報を保存する処理などを起動時に実施する処理部である。
描画処理部5例えばCPUなどを実装している半導体回路やGPU(Graphics Processing Unit)、あるいは、ワンチップマイコンなどから構成されており、地図の描画を更新する際に、テクスチャ内のシンボルの書込み位置をテクスチャ座標として、3Dポリゴンの頂点に設定する処理や、テクスチャ座標が設定された3Dポリゴンを描画する処理などを実施する処理部である。
描画処理部5例えばCPUなどを実装している半導体回路やGPU(Graphics Processing Unit)、あるいは、ワンチップマイコンなどから構成されており、地図の描画を更新する際に、テクスチャ内のシンボルの書込み位置をテクスチャ座標として、3Dポリゴンの頂点に設定する処理や、テクスチャ座標が設定された3Dポリゴンを描画する処理などを実施する処理部である。
テクスチャアトラス作成部4のメモリ超過判定部11はテクスチャとして使用可能なメモリに対して既に作成しているテクスチャのサイズと、メモリ最大サイズ記憶部3に記憶されているメモリ最大サイズとを比較して、新たにテクスチャを作成することが可能であるか否かを判定する処理を実施する。
テクスチャ作成部12はメモリ超過判定部11により新たにテクスチャを作成することができないと判定されるまで、テクスチャ(テクスチャ最大サイズ記憶部2に記憶されているテクスチャ最大サイズのテクスチャ)を繰り返し作成する処理を実施する。即ち、テクスチャとして使用可能なメモリの最大サイズの範囲内で出来る限りテクスチャを作成する処理を実施する。
また、テクスチャ作成部12はテクスチャリスト13に対して、作成したテクスチャの情報を追加する処理を実施する。
なお、メモリ超過判定部11及びテクスチャ作成部12からテクスチャ作成手段が構成されている。
テクスチャ作成部12はメモリ超過判定部11により新たにテクスチャを作成することができないと判定されるまで、テクスチャ(テクスチャ最大サイズ記憶部2に記憶されているテクスチャ最大サイズのテクスチャ)を繰り返し作成する処理を実施する。即ち、テクスチャとして使用可能なメモリの最大サイズの範囲内で出来る限りテクスチャを作成する処理を実施する。
また、テクスチャ作成部12はテクスチャリスト13に対して、作成したテクスチャの情報を追加する処理を実施する。
なお、メモリ超過判定部11及びテクスチャ作成部12からテクスチャ作成手段が構成されている。
参照回数算出部14は地図データ格納部1に格納されている地図データを参照して、地図内に存在しているシンボルの種類別の参照回数をカウントする処理を実施する。
種類別ソート部15は参照回数算出部14によりカウントされた参照回数が多い順に、シンボルの種類をソートする処理を実施する。
なお、参照回数算出部14及び種類別ソート部15から参照回数計数手段が構成されている。
シンボルデータ取得部16は種類別ソート部15によるソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する処理を実施する。
種類別ソート部15は参照回数算出部14によりカウントされた参照回数が多い順に、シンボルの種類をソートする処理を実施する。
なお、参照回数算出部14及び種類別ソート部15から参照回数計数手段が構成されている。
シンボルデータ取得部16は種類別ソート部15によるソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する処理を実施する。
書込み可能判定部17はテクスチャ作成部12により作成されたテクスチャに対して、シンボルデータ取得部16により取得されたシンボルの画像を書き込めるか否かを判定する処理を実施する。
書込みテクスチャ切替部18は書込み可能判定部17によりシンボルの画像を書き込むことができないと判定された場合(当該テクスチャには、既に所定数のシンボルの画像が書き込まれている状態である場合)、テクスチャリスト13を参照して、画像書込み対象のテクスチャを切り替える処理を実施する。
書込みテクスチャ切替部18は書込み可能判定部17によりシンボルの画像を書き込むことができないと判定された場合(当該テクスチャには、既に所定数のシンボルの画像が書き込まれている状態である場合)、テクスチャリスト13を参照して、画像書込み対象のテクスチャを切り替える処理を実施する。
画像書込み部19は書込み可能判定部17によりシンボルの画像を書き込むことが可能であると判定されたテクスチャ、あるいは、書込みテクスチャ切替部18により切り替えられたテクスチャに対して、シンボルデータ取得部16により取得されたシンボルの画像を書き込む処理を実施する。
なお、シンボルデータ取得部16、書込み可能判定部17、書込みテクスチャ切替部18及び画像書込み部19からシンボル画像書込み手段が構成されている。
なお、シンボルデータ取得部16、書込み可能判定部17、書込みテクスチャ切替部18及び画像書込み部19からシンボル画像書込み手段が構成されている。
シンボル情報保存部20は画像書込み部19により画像が書き込まれたシンボルの種類及び書込み位置を示すシンボル情報をシンボル情報キャッシュ21に保存する処理を実施する。
シンボル情報キャッシュ21はシンボル情報を格納するRAMなどの記憶媒体である。
なお、シンボル情報保存部20及びシンボル情報キャッシュ21からシンボル情報保存手段が構成されている。
シンボル情報キャッシュ21はシンボル情報を格納するRAMなどの記憶媒体である。
なお、シンボル情報保存部20及びシンボル情報キャッシュ21からシンボル情報保存手段が構成されている。
描画処理部5の描画シンボルデータ取得部31は地図データ格納部1から地図表示器に表示する地図の範囲内のシンボル(描画対象のシンボル)に関するシンボルデータを1つずつ取得する処理を実施する。
ポリゴン生成部32は描画シンボルデータ取得部31により取得されたシンボルデータが示すシンボルサイズ及びシンボル位置(表示座標)に応じて3Dポリゴンの頂点を生成する処理を実施する。
なお、描画シンボルデータ取得部31及びポリゴン生成部32からポリゴン生成手段が構成されている。
ポリゴン生成部32は描画シンボルデータ取得部31により取得されたシンボルデータが示すシンボルサイズ及びシンボル位置(表示座標)に応じて3Dポリゴンの頂点を生成する処理を実施する。
なお、描画シンボルデータ取得部31及びポリゴン生成部32からポリゴン生成手段が構成されている。
シンボルキャッシュ確認部33はシンボル情報キャッシュ21により格納されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認する処理を実施する。
連続キャッシュヒット確認部34はシンボルキャッシュ確認部33により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、前回のキャッシュヒット確認結果を示す前キャッシュヒットフラグ35が“TRUE”あるか“FALSE”であるかを確認する処理を実施する。
なお、シンボルキャッシュ確認部33、連続キャッシュヒット確認部34及び前キャッシュヒットフラグ35から書込み確認手段が構成されている。
連続キャッシュヒット確認部34はシンボルキャッシュ確認部33により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、前回のキャッシュヒット確認結果を示す前キャッシュヒットフラグ35が“TRUE”あるか“FALSE”であるかを確認する処理を実施する。
なお、シンボルキャッシュ確認部33、連続キャッシュヒット確認部34及び前キャッシュヒットフラグ35から書込み確認手段が構成されている。
テクスチャアトラス取得部36は連続キャッシュヒット確認部34により前キャッシュヒットフラグ35が“FALSE”であることを確認された場合、テクスチャリスト13を参照して、ポリゴン描画時に使用するテクスチャを取得する処理を実施する。
オリジナルテクスチャ生成部37はシンボルキャッシュ確認部33により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画シンボルデータ取得部31により取得されたシンボルデータを用いて、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成する処理を実施する。
オリジナルテクスチャ生成部37はシンボルキャッシュ確認部33により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画シンボルデータ取得部31により取得されたシンボルデータを用いて、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成する処理を実施する。
使用テクスチャ切替部38はテクスチャアトラス取得部36によりテクスチャが取得された場合、そのテクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行い、オリジナルテクスチャ生成部37によりテクスチャが生成された場合、そのテクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行う。
テクスチャ座標設定部39は使用テクスチャ切替部38により設定されたテクスチャ内のシンボルの書込み位置をテクスチャ座標として、ポリゴン生成部32により生成された3Dポリゴンの頂点に設定する処理を実施する。
なお、テクスチャアトラス取得部36、オリジナルテクスチャ生成部37、使用テクスチャ切替部38及びテクスチャ座標設定部39からテクスチャ座標設定手段が構成されている。
テクスチャ座標設定部39は使用テクスチャ切替部38により設定されたテクスチャ内のシンボルの書込み位置をテクスチャ座標として、ポリゴン生成部32により生成された3Dポリゴンの頂点に設定する処理を実施する。
なお、テクスチャアトラス取得部36、オリジナルテクスチャ生成部37、使用テクスチャ切替部38及びテクスチャ座標設定部39からテクスチャ座標設定手段が構成されている。
ポリゴン描画部40はテクスチャ座標設定部39によりテクスチャ座標が設定された3Dポリゴンを描画する処理を実施する。なお、ポリゴン描画部40はポリゴン描画手段を構成している。
図1の例では、地図シンボル描画装置の構成要素であるメモリ超過判定部11、テクスチャ作成部12、参照回数算出部14、種類別ソート部15、シンボルデータ取得部16、書込み可能判定部17、書込みテクスチャ切替部18、画像書込み部19、シンボル情報保存部20、描画シンボルデータ取得部31、ポリゴン生成部32、シンボルキャッシュ確認部33、連続キャッシュヒット確認部34、テクスチャアトラス取得部36、オリジナルテクスチャ生成部37、使用テクスチャ切替部38、テクスチャ座標設定部39及びポリゴン描画部40のそれぞれが専用のハードウェア(例えば、CPUを実装している半導体集積回路、あるいは、ワンチップマイコンなど)で構成されているものを想定しているが、地図シンボル描画装置がコンピュータで構成される場合、メモリ超過判定部11、テクスチャ作成部12、参照回数算出部14、種類別ソート部15、シンボルデータ取得部16、書込み可能判定部17、書込みテクスチャ切替部18、画像書込み部19、シンボル情報保存部20、描画シンボルデータ取得部31、ポリゴン生成部32、シンボルキャッシュ確認部33、連続キャッシュヒット確認部34、テクスチャアトラス取得部36、オリジナルテクスチャ生成部37、使用テクスチャ切替部38、テクスチャ座標設定部39及びポリゴン描画部40の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにしてもよい。
図2はこの発明の実施の形態1による地図シンボル描画装置のテクスチャアトラス作成部4の処理内容を示すフローチャートである。
また、図3はこの発明の実施の形態1による地図シンボル描画装置の描画処理部5の処理内容を示すフローチャートである。
図2はこの発明の実施の形態1による地図シンボル描画装置のテクスチャアトラス作成部4の処理内容を示すフローチャートである。
また、図3はこの発明の実施の形態1による地図シンボル描画装置の描画処理部5の処理内容を示すフローチャートである。
次に動作について説明する。
この実施の形態1では、説明の便宜上、地図表示画面サイズが1000×1000であり、地図データが1000種類のシンボルを含んでいるものとする。
図4は地図内に存在しているシンボルの種類別の参照回数(使用回数)の一例を示す説明図である。
また、この実施の形態1では、シンボルのサイズが100×100[pixel]、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]であるものとする(図5を参照)。
この実施の形態1では、説明の便宜上、地図表示画面サイズが1000×1000であり、地図データが1000種類のシンボルを含んでいるものとする。
図4は地図内に存在しているシンボルの種類別の参照回数(使用回数)の一例を示す説明図である。
また、この実施の形態1では、シンボルのサイズが100×100[pixel]、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]であるものとする(図5を参照)。
地図シンボル描画装置の起動時では、使用メモリサイズが“0”、テクスチャリスト13が空リスト、書込みテクスチャインデックスが“0”、書込み開始座標が(0,0)であるものとする。
また、描画シンボルデータは、図6に示す6個のウィンドウ座標及びシンボル種類のセットであり、前キャッシュヒットフラグ35が“FALSE”であるものとする。
ただし、テクスチャの座標系及び表示ウィンドウ座標系は、左上を原点として、X軸方向は右、Y軸方向は下である。
また、描画シンボルデータは、図6に示す6個のウィンドウ座標及びシンボル種類のセットであり、前キャッシュヒットフラグ35が“FALSE”であるものとする。
ただし、テクスチャの座標系及び表示ウィンドウ座標系は、左上を原点として、X軸方向は右、Y軸方向は下である。
最初に、テクスチャアトラス作成部4の処理内容を説明する。
テクスチャアトラス作成部4のメモリ超過判定部11は、テクスチャとして使用可能なメモリに対して既に作成しているテクスチャのサイズTsizeNOWと、メモリ最大サイズ記憶部3に記憶されているメモリ最大サイズMMAXとを比較して、新たにテクスチャを作成することが可能であるか否かを判定する。
即ち、メモリ超過判定部11は、既に作成しているテクスチャのサイズTsizeNOWに対して、新たに作成するテクスチャの最大サイズTsizeMAX(テクスチャ最大サイズ記憶部2により記憶されているテクスチャ最大サイズ)を加算したとき、その加算結果が、下記の式(1)のように、メモリ最大サイズMEMMAXを超えていれば、メモリを超過してしまうため、新たにテクスチャを作成することが不可能であると判定する(図2のステップST1,ST2)。
一方、その加算結果が、メモリ最大サイズMEMMAXを超えていなければ、新たにテクスチャを作成することが可能であると判定する(図2のステップST1,ST2)。
TsizeNOW+TsizeMAX>MEMMAX (1)
テクスチャアトラス作成部4のメモリ超過判定部11は、テクスチャとして使用可能なメモリに対して既に作成しているテクスチャのサイズTsizeNOWと、メモリ最大サイズ記憶部3に記憶されているメモリ最大サイズMMAXとを比較して、新たにテクスチャを作成することが可能であるか否かを判定する。
即ち、メモリ超過判定部11は、既に作成しているテクスチャのサイズTsizeNOWに対して、新たに作成するテクスチャの最大サイズTsizeMAX(テクスチャ最大サイズ記憶部2により記憶されているテクスチャ最大サイズ)を加算したとき、その加算結果が、下記の式(1)のように、メモリ最大サイズMEMMAXを超えていれば、メモリを超過してしまうため、新たにテクスチャを作成することが不可能であると判定する(図2のステップST1,ST2)。
一方、その加算結果が、メモリ最大サイズMEMMAXを超えていなければ、新たにテクスチャを作成することが可能であると判定する(図2のステップST1,ST2)。
TsizeNOW+TsizeMAX>MEMMAX (1)
地図シンボル描画装置の起動時では、既に作成しているテクスチャのサイズTsizeNOW(使用メモリサイズ)が“0”であるため、TsizeNOW+TsizeMAXは“200×200”となり、メモリ最大サイズ“200×500”を超えないため、新たにテクスチャを作成することが可能であると判定される。
テクスチャ作成部12は、メモリ超過判定部11により新たにテクスチャを作成することができると判定されると、テクスチャ最大サイズTsizeMAXのテクスチャ(200×200のテクスチャ)を作成する(ステップST3)。
また、テクスチャ作成部12は、テクスチャリスト13に対して、作成したテクスチャの情報を追加する。
テクスチャ作成部12が新たにテクスチャを作成することで、テクスチャ最大サイズTsizeMAXを使用メモリサイズに加算し、再度、ステップST1のメモリ超過判定処理に戻る。
上記の通り、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]である場合、200×200のテクスチャが2個作成されるが、3個目のテクスチャを作成する際にメモリ超過が認められるため、3個目のテクスチャは作成されず、ステップST4の処理に移行する。
また、テクスチャ作成部12は、テクスチャリスト13に対して、作成したテクスチャの情報を追加する。
テクスチャ作成部12が新たにテクスチャを作成することで、テクスチャ最大サイズTsizeMAXを使用メモリサイズに加算し、再度、ステップST1のメモリ超過判定処理に戻る。
上記の通り、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]である場合、200×200のテクスチャが2個作成されるが、3個目のテクスチャを作成する際にメモリ超過が認められるため、3個目のテクスチャは作成されず、ステップST4の処理に移行する。
参照回数算出部14は、地図データ格納部1に格納されている地図データを参照して、地図内に存在しているシンボルの種類別の参照回数をカウントする(ステップST4)。
例えば、地図データ格納部1から地図内に存在している全てのシンボルのシンボルデータを抽出し、種類別にデータ数を数えることで実現することができる。
この実施の形態1では、1000個のシンボルに対して、図4に示すような種類別の参照回数(使用回数)が得られるものとする。
例えば、地図データ格納部1から地図内に存在している全てのシンボルのシンボルデータを抽出し、種類別にデータ数を数えることで実現することができる。
この実施の形態1では、1000個のシンボルに対して、図4に示すような種類別の参照回数(使用回数)が得られるものとする。
種類別ソート部15は、参照回数算出部14がシンボルの種類別の参照回数をカウントすると、図7に示すように、カウントされた参照回数が多い順に、シンボルの種類をソートする(ステップST5)。
図7の例では、参照回数算出部14のカウント結果を示す種類別の参照回数が降順ソート(例えば、マージソート)されており、シンボル4、シンボル2、シンボル6、シンボル5・・・の順番で並べられている。
図7の例では、参照回数算出部14のカウント結果を示す種類別の参照回数が降順ソート(例えば、マージソート)されており、シンボル4、シンボル2、シンボル6、シンボル5・・・の順番で並べられている。
シンボルデータ取得部16は、種類別ソート部15によるソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する(ステップST6)。
図7の例では、最初にシンボル4のシンボルデータが取得される。
図7の例では、最初にシンボル4のシンボルデータが取得される。
書込み可能判定部17は、シンボルデータ取得部16がシンボルデータを取得する毎に、テクスチャ作成部12により作成されたテクスチャ(書込みテクスチャインデックスが指示するテクスチャリスト13内のテクスチャ)に対して、そのシンボルデータが示すシンボルの画像を書き込めるか否かを判定する(ステップST7)。
シンボルの画像を書き込めるか否かの判定処理は、下記の式(2)によって行う。
(SX+SymW≦TexW)&&(SY+SymH≦TexH) (2)
ただし、SXは書込み開始座標のX座標、SYは書込み開始座標のY座標、SymWは画像を書き込むシンボルの縦サイズ、SymHは画像を書き込むシンボルの横サイズ、
TexWはシンボルの画像が書き込まれるテクスチャの縦サイズ、TexHはシンボルの画像が書き込まれるテクスチャの横サイズである。
シンボルの画像を書き込めるか否かの判定処理は、下記の式(2)によって行う。
(SX+SymW≦TexW)&&(SY+SymH≦TexH) (2)
ただし、SXは書込み開始座標のX座標、SYは書込み開始座標のY座標、SymWは画像を書き込むシンボルの縦サイズ、SymHは画像を書き込むシンボルの横サイズ、
TexWはシンボルの画像が書き込まれるテクスチャの縦サイズ、TexHはシンボルの画像が書き込まれるテクスチャの横サイズである。
シンボル4のシンボルデータが取得された段階では、書込みテクスチャインデックスが“0”であるため、書込み対象テクスチャはテクスチャアトラス0(1番目に作成されたテクスチャ)であり、上記の式(2)は、(0+100≦200)&&(0+100≦200)となって、判定結果が“TRUE”となる(シンボルの画像を書き込めると判定される)。
画像書込み部19は、書込み可能判定部17がシンボルの画像を書き込めると判定すると、書込みテクスチャインデックスが指示するテクスチャリスト13内のテクスチャに対して、シンボルデータ取得部16により取得されたシンボルの画像の書き込み処理(テクスチャに対する書込み開始座標を左上にして、シンボルの画像の書き込む)を行う(ステップST9)。
画像書込み部19は、シンボルの画像をテクスチャに書き込むと、書込み開始座標を更新する。
このとき、下記の式(3)が成立する場合、書込み開始座標を(SX+SymW,SY)に更新し、下記の式(3)が成立しない場合、書込み開始座標を(0,SY+SymH)に更新する。
(SX+2×SymW≦TexW) (3)
シンボル4のシンボルデータが取得された段階では、式(3)が成立するため、書込み開始座標が(100,0)に更新され、図8のようになる。
画像書込み部19は、シンボルの画像をテクスチャに書き込むと、書込み開始座標を更新する。
このとき、下記の式(3)が成立する場合、書込み開始座標を(SX+SymW,SY)に更新し、下記の式(3)が成立しない場合、書込み開始座標を(0,SY+SymH)に更新する。
(SX+2×SymW≦TexW) (3)
シンボル4のシンボルデータが取得された段階では、式(3)が成立するため、書込み開始座標が(100,0)に更新され、図8のようになる。
シンボル情報保存部20は、画像書込み部19がシンボルの画像をテクスチャに書き込むと、そのシンボルの種類及び書込み位置を示すシンボル情報をシンボル情報キャッシュ21に保存する(ステップST10)。
シンボル情報は、図9に示すように、シンボルの種類、書込み位置(シンボルの左上座標、右下座標)のほか、書き込んだテクスチャを識別するインデックスが含まれる。
図9の例では、シンボル4、0、(0,0)、(100,100)がシンボル情報として保存される。
シンボル情報は、図9に示すように、シンボルの種類、書込み位置(シンボルの左上座標、右下座標)のほか、書き込んだテクスチャを識別するインデックスが含まれる。
図9の例では、シンボル4、0、(0,0)、(100,100)がシンボル情報として保存される。
シンボルデータ取得部16は、シンボル情報保存部20がシンボル情報をシンボル情報キャッシュ21に保存すると、地図データ格納部1から次のシンボルのシンボルデータを取得する(ステップST6)。
図7の例では、シンボル2のシンボルデータが取得される。
シンボル2のシンボルデータが取得された場合も、シンボル4のシンボルデータが取得された場合と同様に、ステップST6〜ST10の処理が実施される。
図7の例では、シンボル2のシンボルデータが取得される。
シンボル2のシンボルデータが取得された場合も、シンボル4のシンボルデータが取得された場合と同様に、ステップST6〜ST10の処理が実施される。
種類別ソート部15によるソート順位が上位4つのシンボルまでは、式(2)の判定結果が“TRUE”となるため、上位4つのシンボルがテクスチャアトラス0に書き込まれる。
図10は上位4つのシンボル4,2,6,5がテクスチャアトラス0に書き込まれた状態を示す説明図である。
図11はシンボル情報キャッシュ21に保存された上位4つのシンボル4,2,6,5のシンボル情報を示す説明図である。
4つのシンボル4,2,6,5がテクスチャアトラス0に書き込まれた段階では、書込み開始座標は(0,200)となる。
図10は上位4つのシンボル4,2,6,5がテクスチャアトラス0に書き込まれた状態を示す説明図である。
図11はシンボル情報キャッシュ21に保存された上位4つのシンボル4,2,6,5のシンボル情報を示す説明図である。
4つのシンボル4,2,6,5がテクスチャアトラス0に書き込まれた段階では、書込み開始座標は(0,200)となる。
種類別ソート部15によるソート順位が5番目のシンボルであるシンボル8が取得された段階では、式(2)の判定結果が“FALSE”となるため、ステップST11の処理に移行する。
書込みテクスチャ切替部18は、上位4つのシンボル4,2,6,5がテクスチャアトラス0に書き込まれて、式(2)の判定結果が“FALSE”になると、書込みテクスチャインデックスに“1”を加算する。
書込みテクスチャ切替部18は、テクスチャリスト13を参照して、その加算結果である書込みテクスチャインデックス“1”のテクスチャが存在しているか否かを確認する。
書込みテクスチャ切替部18は、上位4つのシンボル4,2,6,5がテクスチャアトラス0に書き込まれて、式(2)の判定結果が“FALSE”になると、書込みテクスチャインデックスに“1”を加算する。
書込みテクスチャ切替部18は、テクスチャリスト13を参照して、その加算結果である書込みテクスチャインデックス“1”のテクスチャが存在しているか否かを確認する。
書込みテクスチャ切替部18は、書込みテクスチャインデックス“1”のテクスチャが存在している場合、画像書込み対象のテクスチャを切り替えることが可能であると判断するが、書込みテクスチャインデックス“1”のテクスチャが存在していない場合、画像書込み対象のテクスチャを切り替えることが不可能であると判断して、テクスチャアトラス作成処理を終了する(ステップST11)。
この実施の形態1では、テクスチャ作成部12が2つのテクスチャ(書込みテクスチャインデックス“0”のテクスチャ、書込みテクスチャインデックス“1”のテクスチャ)を作成しているので、この段階では、画像書込み対象のテクスチャを切り替えることが可能であると判断する。
書込みテクスチャ切替部18は、画像書込み対象のテクスチャを切り替えることが可能であると判断すると、画像書込み対象のテクスチャを書込みテクスチャインデックス“1”のテクスチャに切り替える処理を行う(ステップST12)。
また、書込みテクスチャ切替部18は、書込み開始座標を(0,0)に設定する。
この実施の形態1では、テクスチャ作成部12が2つのテクスチャ(書込みテクスチャインデックス“0”のテクスチャ、書込みテクスチャインデックス“1”のテクスチャ)を作成しているので、この段階では、画像書込み対象のテクスチャを切り替えることが可能であると判断する。
書込みテクスチャ切替部18は、画像書込み対象のテクスチャを切り替えることが可能であると判断すると、画像書込み対象のテクスチャを書込みテクスチャインデックス“1”のテクスチャに切り替える処理を行う(ステップST12)。
また、書込みテクスチャ切替部18は、書込み開始座標を(0,0)に設定する。
以降、種類別ソート部15によるソート順位が上位5番目〜8番目のシンボルまでは、式(2)の判定結果が“TRUE”となるため、ステップST6〜ST10の処理が繰り返し実施されて、上位5番目〜8番目のシンボル8,7,1,9がテクスチャアトラス1に書き込まれる。
図12は上位8つのシンボル4,2,6,5,8,7,1,9がテクスチャアトラス0,1に書き込まれた状態を示す説明図である。
図13はシンボル情報キャッシュ21に保存された上位8つのシンボル4,2,6,5,8,7,1,9のシンボル情報を示す説明図である。
図12は上位8つのシンボル4,2,6,5,8,7,1,9がテクスチャアトラス0,1に書き込まれた状態を示す説明図である。
図13はシンボル情報キャッシュ21に保存された上位8つのシンボル4,2,6,5,8,7,1,9のシンボル情報を示す説明図である。
種類別ソート部15によるソート順位が9番目のシンボルであるシンボル3が取得された段階では、式(2)の判定結果が“FALSE”となるため、ステップST11の処理に移行する。
書込みテクスチャ切替部18は、上位5番目〜8番目のシンボル8,7,1,9がテクスチャアトラス1に書き込まれて、式(2)の判定結果が“FALSE”になると、書込みテクスチャインデックスに“1”を加算する。
書込みテクスチャ切替部18は、テクスチャリスト13を参照して、その加算結果である書込みテクスチャインデックス“2”のテクスチャが存在しているか否かを確認するが、この実施の形態1では、テクスチャ作成部12が2つのテクスチャ(書込みテクスチャインデックス“0”のテクスチャ、書込みテクスチャインデックス“1”のテクスチャ)を作成しているだけで、書込みテクスチャインデックス“2”のテクスチャを作成していないので、画像書込み対象のテクスチャを切り替えることが不可能であると判断して、テクスチャアトラス作成処理を終了する(ステップST11)。
書込みテクスチャ切替部18は、上位5番目〜8番目のシンボル8,7,1,9がテクスチャアトラス1に書き込まれて、式(2)の判定結果が“FALSE”になると、書込みテクスチャインデックスに“1”を加算する。
書込みテクスチャ切替部18は、テクスチャリスト13を参照して、その加算結果である書込みテクスチャインデックス“2”のテクスチャが存在しているか否かを確認するが、この実施の形態1では、テクスチャ作成部12が2つのテクスチャ(書込みテクスチャインデックス“0”のテクスチャ、書込みテクスチャインデックス“1”のテクスチャ)を作成しているだけで、書込みテクスチャインデックス“2”のテクスチャを作成していないので、画像書込み対象のテクスチャを切り替えることが不可能であると判断して、テクスチャアトラス作成処理を終了する(ステップST11)。
次に、描画処理部5の処理内容を説明する。
描画処理部5の描画シンボルデータ取得部31は、地図データ格納部1から地図表示器に表示する地図の範囲内のシンボル(描画対象のシンボル)に関するシンボルデータを1つずつ取得する(図3のステップST21)。
即ち、描画シンボルデータ取得部31は、描画データ番号が小さいシンボルデータから順番に取得する。ただし、描画対象のシンボルに関するシンボルデータがなければ、描画処理を終了する(ステップST22)。
描画処理部5の描画シンボルデータ取得部31は、地図データ格納部1から地図表示器に表示する地図の範囲内のシンボル(描画対象のシンボル)に関するシンボルデータを1つずつ取得する(図3のステップST21)。
即ち、描画シンボルデータ取得部31は、描画データ番号が小さいシンボルデータから順番に取得する。ただし、描画対象のシンボルに関するシンボルデータがなければ、描画処理を終了する(ステップST22)。
ポリゴン生成部32は、描画シンボルデータ取得部31がシンボルデータを取得すると、そのシンボルデータが示すシンボルサイズ及びシンボル位置(表示座標)に応じて3Dポリゴンの頂点を生成する(ステップST23)。
ポリゴン生成処理は、シンボルデータのウィンドウ座標を中心にして、シンボルサイズと同じサイズのポリゴンになるように4頂点を生成する処理である。
各頂点座標は、X,Yをウィンドウ座標として、Z=0となる3次元ベクトルとして設定する。
描画データ番号“0”のシンボル4が取得された場合、ウィンドウ座標が(100,200)であるため(図6を参照)、図14に示すように、ポリゴンの左上の頂点の座標は(50,150,0)、右上の頂点の座標は(150,150,0)、左下の頂点の座標は(50,250,0)、右下の頂点の座標は(150,250,0)となる。
ポリゴン生成処理は、シンボルデータのウィンドウ座標を中心にして、シンボルサイズと同じサイズのポリゴンになるように4頂点を生成する処理である。
各頂点座標は、X,Yをウィンドウ座標として、Z=0となる3次元ベクトルとして設定する。
描画データ番号“0”のシンボル4が取得された場合、ウィンドウ座標が(100,200)であるため(図6を参照)、図14に示すように、ポリゴンの左上の頂点の座標は(50,150,0)、右上の頂点の座標は(150,150,0)、左下の頂点の座標は(50,250,0)、右下の頂点の座標は(150,250,0)となる。
シンボルキャッシュ確認部33は、シンボル情報キャッシュ21により格納されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認する(ステップST24)。
この実施の形態1では、書込みテクスチャインデックス“0”のテクスチャにシンボル4,2,6,5が書き込まれ、書込みテクスチャインデックス“1”のテクスチャにシンボル8,7,1,9が書き込まれているので、描画対象のシンボルが、シンボル4,2,6,5,8,7,1,9のいずれかであれば、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていると判断する。
描画データ番号“0”のシンボル4が取得された場合、シンボル4は書込みテクスチャインデックス“0”のテクスチャに書き込まれているので、描画対象のシンボル4と同じ種類のシンボルの画像がテクスチャに書き込まれていると判断される。
この実施の形態1では、書込みテクスチャインデックス“0”のテクスチャにシンボル4,2,6,5が書き込まれ、書込みテクスチャインデックス“1”のテクスチャにシンボル8,7,1,9が書き込まれているので、描画対象のシンボルが、シンボル4,2,6,5,8,7,1,9のいずれかであれば、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていると判断する。
描画データ番号“0”のシンボル4が取得された場合、シンボル4は書込みテクスチャインデックス“0”のテクスチャに書き込まれているので、描画対象のシンボル4と同じ種類のシンボルの画像がテクスチャに書き込まれていると判断される。
連続キャッシュヒット確認部34は、シンボルキャッシュ確認部33により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合(ステップST25)、前回のキャッシュヒット確認結果を示す前キャッシュヒットフラグ35が“TRUE”あるか“FALSE”であるかを確認する(ステップST26)。
前キャッシュヒットフラグ35は、起動時に“FALSE”に初期化されているので、この段階では、“FALSE”であることが確認され、前キャッシュヒットフラグ35が“TRUE”に更新される。
前キャッシュヒットフラグ35は、起動時に“FALSE”に初期化されているので、この段階では、“FALSE”であることが確認され、前キャッシュヒットフラグ35が“TRUE”に更新される。
テクスチャアトラス取得部36は、連続キャッシュヒット確認部34により前キャッシュヒットフラグ35が“FALSE”であることが確認された場合(ステップST27)、テクスチャリスト13を参照して、ポリゴン描画時に使用するテクスチャを取得する(ステップST28)。
即ち、テクスチャアトラス取得部36は、描画シンボルデータのシンボル種類でヒットしたキャッシュのテクスチャインデックスで指定されるテクスチャを取得する。
描画データ番号“0”のシンボル4が取得された場合、シンボル4は書込みテクスチャインデックス“0”のテクスチャに書き込まれているので、テクスチャアトラス0が取得される。
即ち、テクスチャアトラス取得部36は、描画シンボルデータのシンボル種類でヒットしたキャッシュのテクスチャインデックスで指定されるテクスチャを取得する。
描画データ番号“0”のシンボル4が取得された場合、シンボル4は書込みテクスチャインデックス“0”のテクスチャに書き込まれているので、テクスチャアトラス0が取得される。
オリジナルテクスチャ生成部37は、シンボルキャッシュ確認部33により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合(ステップST25)、描画シンボルデータ取得部31により取得されたシンボルデータを用いて、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成する(ステップST29)。
また、オリジナルテクスチャ生成部37は、前キャッシュヒットフラグ35を“FALSE”に更新する。
なお、オリジナルのテクスチャは、シンボルサイズ(100×100のサイズ)と同じサイズを持つテクスチャであり、シンボル画像が描かれたテクスチャである。
また、オリジナルテクスチャ生成部37は、前キャッシュヒットフラグ35を“FALSE”に更新する。
なお、オリジナルのテクスチャは、シンボルサイズ(100×100のサイズ)と同じサイズを持つテクスチャであり、シンボル画像が描かれたテクスチャである。
使用テクスチャ切替部38は、テクスチャアトラス取得部36によりテクスチャが取得された場合、そのテクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行い、オリジナルテクスチャ生成部37によりテクスチャが生成された場合、そのテクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行う(ステップST30)。
なお、連続キャッシュヒット確認部34により前キャッシュヒットフラグ35が“TRUE”であることが確認された場合(ステップST27)、前回と同じテクスチャをポリゴン描画時に使用するテクスチャとするため、テクスチャの切替処理が行われない。
なお、連続キャッシュヒット確認部34により前キャッシュヒットフラグ35が“TRUE”であることが確認された場合(ステップST27)、前回と同じテクスチャをポリゴン描画時に使用するテクスチャとするため、テクスチャの切替処理が行われない。
テクスチャ座標設定部39は、使用テクスチャ切替部38がポリゴン描画時に使用するテクスチャの切替処理を行うと、そのテクスチャ内のシンボルの書込み位置をテクスチャ座標として、ポリゴン生成部32により生成されたポリゴンの頂点に設定する(ステップST31)。
以下、テクスチャ座標設定部39の処理を具体的に説明する。
以下、テクスチャ座標設定部39の処理を具体的に説明する。
テクスチャ座標設定部39は、シンボルキャッシュ確認部33により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合(連続キャッシュヒット確認部34により前キャッシュヒットフラグ35が“FALSE”であることを確認された場合だけでなく、“TRUE”であることを確認された場合も含む)、キャッシュの左上座標及び右下座標を下記の式(4)に代入することで、テクスチャ座標を算出する。
左上のテクスチャ座標=(LTX/ATTexW,LTY/ATTexH)
右上のテクスチャ座標=(RBX/ATTexW,LTY/ATTexH)
左下のテクスチャ座標=(LTX/ATTexW,RBY/ATTexH)
右下のテクスチャ座標=(RBX/ATTexW,RBY/ATTexH)
(4)
ただし、LTXはキャッシュの左上のX座標、LTYはキャッシュの左上のY座標、RBXはキャッシュの右上のX座標、RTYはキャッシュの右上のY座標、ATTexWは使用テクスチャの横サイズ、ATTexHは使用テクスチャの縦サイズである。
左上のテクスチャ座標=(LTX/ATTexW,LTY/ATTexH)
右上のテクスチャ座標=(RBX/ATTexW,LTY/ATTexH)
左下のテクスチャ座標=(LTX/ATTexW,RBY/ATTexH)
右下のテクスチャ座標=(RBX/ATTexW,RBY/ATTexH)
(4)
ただし、LTXはキャッシュの左上のX座標、LTYはキャッシュの左上のY座標、RBXはキャッシュの右上のX座標、RTYはキャッシュの右上のY座標、ATTexWは使用テクスチャの横サイズ、ATTexHは使用テクスチャの縦サイズである。
テクスチャ座標設定部39は、シンボルキャッシュ確認部33により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、下記の式(5)より、テクスチャ座標を算出する。
左上のテクスチャ座標=(0,0)
右上のテクスチャ座標=(1,0)
左下のテクスチャ座標=(0,1)
右下のテクスチャ座標=(1,1) (5)
左上のテクスチャ座標=(0,0)
右上のテクスチャ座標=(1,0)
左下のテクスチャ座標=(0,1)
右下のテクスチャ座標=(1,1) (5)
描画データ番号“0”のシンボル4が取得された場合、シンボルキャッシュ確認部33により同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されるので、式(4)によりテクスチャ座標が算出され、テクスチャ座標の左上座標は(0,0)、右上座標は(0.5,0)、左下座標は(0,0.5)、右下座標は(0.5,0.5)
になる。
テクスチャ座標設定部39は、テクスチャ座標を算出すると、そのテクスチャ座標をポリゴン生成部32により生成された3Dポリゴンの頂点に設定する。
になる。
テクスチャ座標設定部39は、テクスチャ座標を算出すると、そのテクスチャ座標をポリゴン生成部32により生成された3Dポリゴンの頂点に設定する。
ポリゴン描画部40は、テクスチャ座標設定部39がテクスチャ座標を3Dポリゴンの頂点に設定すると、そのテクスチャを用いて、3Dポリゴンを描画する(ステップST32)。
図15はポリゴン描画部40による描画結果を示す説明図である。
描画データ番号0のシンボル4に係るポリゴン描画処理が終了すると、描画データ番号1のシンボル6に係るポリゴン描画処理に移行する。
図15はポリゴン描画部40による描画結果を示す説明図である。
描画データ番号0のシンボル4に係るポリゴン描画処理が終了すると、描画データ番号1のシンボル6に係るポリゴン描画処理に移行する。
描画データ番号1のシンボル6に係るポリゴン描画処理は、描画データ番号0のシンボル4に係るポリゴン描画処理と同様に行われ、ポリゴンの左上の頂点の座標は(350,250,0)、右上の頂点の座標は(450,250,0)、左下の頂点の座標は(350,350,0)、右下の頂点の座標は(450,350,0)となる。
シンボルキャッシュ確認部33には、同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されて、シンボルキャッシュヒットの確認結果がキャッシュヒットとなり、連続キャッシュヒット確認部34によって連続キャッシュヒットの確認が行われる。
この段階では、前キャッシュヒットフラグ35が“TRUE”であるため、前回と同じテクスチャが使用され、テクスチャ座標設定部39により設定されるテクスチャ座標の左上座標は(0,0.5)、右上座標は(0.5,0.5)、左下座標は(0,1)、右下座標は(0.5,1)となる。
シンボルキャッシュ確認部33には、同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されて、シンボルキャッシュヒットの確認結果がキャッシュヒットとなり、連続キャッシュヒット確認部34によって連続キャッシュヒットの確認が行われる。
この段階では、前キャッシュヒットフラグ35が“TRUE”であるため、前回と同じテクスチャが使用され、テクスチャ座標設定部39により設定されるテクスチャ座標の左上座標は(0,0.5)、右上座標は(0.5,0.5)、左下座標は(0,1)、右下座標は(0.5,1)となる。
その後、ポリゴン描画部40によって、ポリゴン生成部32により生成されたポリゴン及び使用テクスチャを用いてポリゴン描画が行われる。
ここでは、使用テクスチャは、描画データ番号“0”で切り換えられた使用テクスチャから切換えていないため、そのままテクスチャアトラス0が使用される。描画結果は、図16のようになる。
以降、描画データ番号2のシンボル4に係るポリゴン描画処理と、描画データ番号3のシンボル8に係るポリゴン描画処理は、描画データ番号1のシンボル6に係るポリゴン描画処理と各々同様のパスを通るため説明を省略する。
描画データ番号3のシンボル8に係るポリゴン描画処理が終了の時点で、前キャッシュヒットフラグ35が“TRUE”、使用テクスチャがテクスチャアトラス“1”となり、描画結果は図17のようになる。
ここでは、使用テクスチャは、描画データ番号“0”で切り換えられた使用テクスチャから切換えていないため、そのままテクスチャアトラス0が使用される。描画結果は、図16のようになる。
以降、描画データ番号2のシンボル4に係るポリゴン描画処理と、描画データ番号3のシンボル8に係るポリゴン描画処理は、描画データ番号1のシンボル6に係るポリゴン描画処理と各々同様のパスを通るため説明を省略する。
描画データ番号3のシンボル8に係るポリゴン描画処理が終了の時点で、前キャッシュヒットフラグ35が“TRUE”、使用テクスチャがテクスチャアトラス“1”となり、描画結果は図17のようになる。
次の描画データ番号4のシンボル10に係るポリゴン描画処理では、シンボルキャッシュ確認部33によりシンボル10の画像がテクスチャに書き込まれていないことが確認されるので、非キャッシュヒットとなり、オリジナルテクスチャ生成部37によって、オリジナルのテクスチャが作成されて、前キャッシュヒットフラグが“FALSE”になる。
オリジナルテクスチャは、シンボルサイズと同じサイズを持つテクスチャであり、シンボル10の画像が描かれたテクスチャである。この場合、100×100のサイズでシンボル10の画像が描かれたテクスチャが作成される。
オリジナルテクスチャは、シンボルサイズと同じサイズを持つテクスチャであり、シンボル10の画像が描かれたテクスチャである。この場合、100×100のサイズでシンボル10の画像が描かれたテクスチャが作成される。
その後、使用テクスチャ切替部38によりオリジナルのテクスチャが使用テクスチャに切り替えられて、テクスチャ座標設定部39によりポリゴンの頂点に設定するテクスチャ座標が算出される。
この場合、シンボルキャッシュ確認部33での結果が非キャッシュヒットであるため、上記の式(5)により算出されたテクスチャ座標が設定される。
その後、ポリゴン描画部40によって、ポリゴン生成部32により生成されたポリゴン及び使用テクスチャを用いてポリゴン描画が行われる。描画結果は図18のようになる。
この場合、シンボルキャッシュ確認部33での結果が非キャッシュヒットであるため、上記の式(5)により算出されたテクスチャ座標が設定される。
その後、ポリゴン描画部40によって、ポリゴン生成部32により生成されたポリゴン及び使用テクスチャを用いてポリゴン描画が行われる。描画結果は図18のようになる。
次に描画データ番号5のシンボル2に係るポリゴン描画処理に移行するが、描画データ番号0のシンボル4に係るポリゴン描画処理と同様のパスを通るため説明を省略する。
描画データ番号5のシンボル2に係るポリゴン描画処理が終了し、次の描画シンボルデータの取得処理では、次の描画データが取得されないため、描画処理部5によるポリゴン描画処理が終了する。
最終的には、図19のようにシンボルが描画された地図表示が得られる。
描画データ番号5のシンボル2に係るポリゴン描画処理が終了し、次の描画シンボルデータの取得処理では、次の描画データが取得されないため、描画処理部5によるポリゴン描画処理が終了する。
最終的には、図19のようにシンボルが描画された地図表示が得られる。
以上で明らかなように、この実施の形態1によれば、テクスチャとして使用可能なメモリの最大サイズの範囲内で1つ以上のテクスチャを作成するテクスチャ作成部12と、地図内に存在しているシンボルの種類別の参照回数をカウントする参照回数算出部14と、地図内に存在しているシンボルのうち、参照回数算出部14によりカウントされた種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャ作成部12により作成されたテクスチャに書き込む画像書込み部19と、画像書込み部19により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報をシンボル情報キャッシュ21に保存するシンボル情報保存部20と、描画対象のシンボルの表示座標に応じて3Dポリゴンの頂点を生成するポリゴン生成部32と、シンボル情報保存キャッシュ21に保存されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認するシンボルキャッシュ確認部33と、シンボルキャッシュ確認部33により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、そのテクスチャ内の上記シンボルの書込み位置をテクスチャ座標として、ポリゴン生成部32により生成された3Dポリゴンの頂点に設定し、シンボルキャッシュ確認部33により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、オリジナルテクスチャ生成部37により作成されたオリジナルテクスチャのテクスチャ座標をポリゴン生成部32により生成された3Dポリゴンの頂点に設定するテクスチャ座標設定部39とを設け、ポリゴン描画部40がテクスチャ座標設定部39によりテクスチャ座標が設定された3Dポリゴンを描画するように構成したので、大きなメモリ領域を実装していなくても、地図内のシンボルを高速に描画することができる効果を奏する。
また、この実施の形態1によれば、使用テクスチャ切替部38が、前キャッシュヒットフラグ35が“TRUE”である場合(描画対象のシンボルと同じ種類のシンボルの画像が書き込まれているテクスチャが、前回のポリゴン描画時に使用しているテクスチャと同じテクスチャである場合)、ポリゴン描画時に使用するテクスチャを切り替える設定を行わないように構成したので、シンボルの描画処理の高速化を図ることができる効果を奏する。
また、地図内で使用頻度が高い上位数個のシンボルを優先的に1つのテクスチャアトラスにまとめているので、1つのテクスチャアトラスに対して、連続してキャッシュヒットする確率が高くなり、効率的にテクスチャの切替処理を省くことができる効果を奏する。
また、地図内で使用頻度が高い上位数個のシンボルを優先的に1つのテクスチャアトラスにまとめているので、1つのテクスチャアトラスに対して、連続してキャッシュヒットする確率が高くなり、効率的にテクスチャの切替処理を省くことができる効果を奏する。
実施の形態2.
上記実施の形態1では、シンボルの描画処理の高速化が図られている地図シンボル描画装置を説明したが、この実施の形態2では、地図の縮尺の変更を受け付ける機能を備えている地図シンボル描画装置において、シンボルの描画処理の高速化が図られているものについて説明する。
上記実施の形態1では、シンボルの描画処理の高速化が図られている地図シンボル描画装置を説明したが、この実施の形態2では、地図の縮尺の変更を受け付ける機能を備えている地図シンボル描画装置において、シンボルの描画処理の高速化が図られているものについて説明する。
図20はこの発明の実施の形態2による地図シンボル描画装置を示す構成図であり、図において、図1と同一符号は同一または相当部分を示すので説明を省略する。
縮尺別データ整理部6は例えばCPUなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、地図の縮尺別に、当該地図内に存在しているシンボルの種類別の参照回数をカウントする処理などを起動時に実施する処理部である。
縮尺別テクスチャアトラス作成部7は例えばCPUなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、指定された縮尺の地図内に存在しているシンボルのうち、上記縮尺に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャに書き込む処理や、そのシンボルの種類及び書込み位置を示すシンボル情報を保存する処理などを地図の縮尺の変更時に実施する処理部である。
描画処理部5の処理内容は上記実施の形態1と同様である。
縮尺別データ整理部6は例えばCPUなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、地図の縮尺別に、当該地図内に存在しているシンボルの種類別の参照回数をカウントする処理などを起動時に実施する処理部である。
縮尺別テクスチャアトラス作成部7は例えばCPUなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、指定された縮尺の地図内に存在しているシンボルのうち、上記縮尺に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャに書き込む処理や、そのシンボルの種類及び書込み位置を示すシンボル情報を保存する処理などを地図の縮尺の変更時に実施する処理部である。
描画処理部5の処理内容は上記実施の形態1と同様である。
縮尺別データ抽出部51は地図データ格納部1に格納されている地図データを参照して、地図内に存在しているシンボルを縮尺別に抽出する処理を実施する。
参照回数算出部52は地図の縮尺別に、縮尺別データ抽出部51により抽出されたシンボルの種類別の参照回数をカウントする処理を実施する。
種類別ソート部53は地図の縮尺別に、参照回数算出部52によりカウントされた参照回数が多い順に、シンボルの種類をソートして、そのソート結果を縮尺別ソートリスト54に記録する処理を実施する。
なお、縮尺別データ抽出部51、参照回数算出部52及び種類別ソート部53から参照回数計数手段が構成されている。
参照回数算出部52は地図の縮尺別に、縮尺別データ抽出部51により抽出されたシンボルの種類別の参照回数をカウントする処理を実施する。
種類別ソート部53は地図の縮尺別に、参照回数算出部52によりカウントされた参照回数が多い順に、シンボルの種類をソートして、そのソート結果を縮尺別ソートリスト54に記録する処理を実施する。
なお、縮尺別データ抽出部51、参照回数算出部52及び種類別ソート部53から参照回数計数手段が構成されている。
キャッシュクリア部61は地図の縮尺変更時に、シンボル情報キャッシュ21に保持されているシンボル情報を消去する処理を実施する。
縮尺別リスト取得部62は縮尺別ソートリスト54から指定縮尺に対応する種類別ソート部53のソート結果を取得する処理を実施する。
シンボルデータ取得部63は指定縮尺に対応する種類別ソート部53のソート結果を参照して、指定縮尺の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する処理を実施する。
なお、キャッシュクリア部61、縮尺別リスト取得部62、シンボルデータ取得部63、書込み可能判定部17、書込みテクスチャ切替部18及び画像書込み部19からシンボル画像書込み手段が構成されている。
縮尺別リスト取得部62は縮尺別ソートリスト54から指定縮尺に対応する種類別ソート部53のソート結果を取得する処理を実施する。
シンボルデータ取得部63は指定縮尺に対応する種類別ソート部53のソート結果を参照して、指定縮尺の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する処理を実施する。
なお、キャッシュクリア部61、縮尺別リスト取得部62、シンボルデータ取得部63、書込み可能判定部17、書込みテクスチャ切替部18及び画像書込み部19からシンボル画像書込み手段が構成されている。
図20の例では、地図シンボル描画装置の構成要素であるメモリ超過判定部11、テクスチャ作成部12、縮尺別データ抽出部51、参照回数算出部52、種類別ソート部53、キャッシュクリア部61、縮尺別リスト取得部62、シンボルデータ取得部63、書込み可能判定部17、書込みテクスチャ切替部18、画像書込み部19、シンボル情報保存部20、描画シンボルデータ取得部31、ポリゴン生成部32、シンボルキャッシュ確認部33、連続キャッシュヒット確認部34、テクスチャアトラス取得部36、オリジナルテクスチャ生成部37、使用テクスチャ切替部38、テクスチャ座標設定部39及びポリゴン描画部40のそれぞれが専用のハードウェア(例えば、CPUを実装している半導体集積回路、あるいは、ワンチップマイコンなど)で構成されているものを想定しているが、地図シンボル描画装置がコンピュータで構成される場合、メモリ超過判定部11、テクスチャ作成部12、縮尺別データ抽出部51、参照回数算出部52、種類別ソート部53、キャッシュクリア部61、縮尺別リスト取得部62、シンボルデータ取得部63、書込み可能判定部17、書込みテクスチャ切替部18、画像書込み部19、シンボル情報保存部20、描画シンボルデータ取得部31、ポリゴン生成部32、シンボルキャッシュ確認部33、連続キャッシュヒット確認部34、テクスチャアトラス取得部36、オリジナルテクスチャ生成部37、使用テクスチャ切替部38、テクスチャ座標設定部39及びポリゴン描画部40の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにしてもよい。
図21はこの発明の実施の形態2よる地図シンボル描画装置の縮尺別データ整理部6の処理内容を示すフローチャートである。
図22はこの発明の実施の形態2よる地図シンボル描画装置の縮尺別テクスチャアトラス作成部7の処理内容を示すフローチャートである。
図21はこの発明の実施の形態2よる地図シンボル描画装置の縮尺別データ整理部6の処理内容を示すフローチャートである。
図22はこの発明の実施の形態2よる地図シンボル描画装置の縮尺別テクスチャアトラス作成部7の処理内容を示すフローチャートである。
次に動作について説明する。
この実施の形態2では、説明の便宜上、地図表示画面サイズが1000×1000であり、地図データが1000種類のシンボルを含んでいるものとする。
また、表示可能な縮尺として、100m縮尺と200m縮尺の2つが用意されているものとする。
図23は100m縮尺の地図内に存在しているシンボルの種類別の参照回数(使用回数)と、200m縮尺の地図内に存在しているシンボルの種類別の参照回数(使用回数)との一例を示す説明図である。
また、この実施の形態2では、シンボルのサイズが100×100[pixel]、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]であるものとする(図5を参照)。
この実施の形態2では、説明の便宜上、地図表示画面サイズが1000×1000であり、地図データが1000種類のシンボルを含んでいるものとする。
また、表示可能な縮尺として、100m縮尺と200m縮尺の2つが用意されているものとする。
図23は100m縮尺の地図内に存在しているシンボルの種類別の参照回数(使用回数)と、200m縮尺の地図内に存在しているシンボルの種類別の参照回数(使用回数)との一例を示す説明図である。
また、この実施の形態2では、シンボルのサイズが100×100[pixel]、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]であるものとする(図5を参照)。
地図シンボル描画装置の起動時では、使用メモリサイズが“0”、テクスチャリスト13が空リスト、書込みテクスチャインデックスが“0”、書込み開始座標が(0,0)であるものとする。
また、描画シンボルデータは、図6に示す6個のウィンドウ座標及びシンボル種類のセットであり、前キャッシュヒットフラグ35が“FALSE”であるものとする。
ただし、テクスチャの座標系及び表示ウィンドウ座標系は、左上を原点として、X軸方向は右、Y軸方向は下である。
また、描画シンボルデータは、図6に示す6個のウィンドウ座標及びシンボル種類のセットであり、前キャッシュヒットフラグ35が“FALSE”であるものとする。
ただし、テクスチャの座標系及び表示ウィンドウ座標系は、左上を原点として、X軸方向は右、Y軸方向は下である。
最初に、縮尺別データ整理部6の処理内容を説明する。
メモリ超過判定部11は、上記実施の形態1と同様に、テクスチャとして使用可能なメモリに対して既に作成しているテクスチャのサイズTsizeNOWと、メモリ最大サイズ記憶部3に記憶されているメモリ最大サイズMMAXとを比較して、新たにテクスチャを作成することが可能であるか否かを判定する。
即ち、メモリ超過判定部11は、既に作成しているテクスチャのサイズTsizeNOWに対して、新たに作成するテクスチャの最大サイズTsizeMAX(テクスチャ最大サイズ記憶部2により記憶されているテクスチャ最大サイズ)を加算したとき、その加算結果が、メモリ最大サイズMEMMAXを超えていれば、メモリを超過してしまうため、新たにテクスチャを作成することが不可能であると判定する(図21のステップST41,ST42)。
一方、その加算結果が、メモリ最大サイズMEMMAXを超えていなければ、新たにテクスチャを作成することが可能であると判定する(ステップST41,ST42)。
メモリ超過判定部11は、上記実施の形態1と同様に、テクスチャとして使用可能なメモリに対して既に作成しているテクスチャのサイズTsizeNOWと、メモリ最大サイズ記憶部3に記憶されているメモリ最大サイズMMAXとを比較して、新たにテクスチャを作成することが可能であるか否かを判定する。
即ち、メモリ超過判定部11は、既に作成しているテクスチャのサイズTsizeNOWに対して、新たに作成するテクスチャの最大サイズTsizeMAX(テクスチャ最大サイズ記憶部2により記憶されているテクスチャ最大サイズ)を加算したとき、その加算結果が、メモリ最大サイズMEMMAXを超えていれば、メモリを超過してしまうため、新たにテクスチャを作成することが不可能であると判定する(図21のステップST41,ST42)。
一方、その加算結果が、メモリ最大サイズMEMMAXを超えていなければ、新たにテクスチャを作成することが可能であると判定する(ステップST41,ST42)。
地図シンボル描画装置の起動時では、既に作成しているテクスチャのサイズTsizeNOW(使用メモリサイズ)が“0”であるため、TsizeNOW+TsizeMAXは“200×200”となり、メモリ最大サイズ“200×500”を超えないため、新たにテクスチャを作成することが可能であると判定される。
テクスチャ作成部12は、上記実施の形態1と同様に、メモリ超過判定部11により新たにテクスチャを作成することができると判定されると、テクスチャ最大サイズTsizeMAXのテクスチャ(200×200のテクスチャ)を作成する(ステップST43)。
また、テクスチャ作成部12は、テクスチャリスト13に対して、作成したテクスチャの情報を追加する。
テクスチャ作成部12が新たにテクスチャを作成することで、テクスチャ最大サイズTsizeMAXを使用メモリサイズに加算し、再度、ステップST41のメモリ超過判定処理に戻る。
上記の通り、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]である場合、200×200のテクスチャが2個作成されるが、3個目のテクスチャを作成する際にメモリ超過が認められるため、3個目のテクスチャは作成されず、ステップST44の処理に移行する。
また、テクスチャ作成部12は、テクスチャリスト13に対して、作成したテクスチャの情報を追加する。
テクスチャ作成部12が新たにテクスチャを作成することで、テクスチャ最大サイズTsizeMAXを使用メモリサイズに加算し、再度、ステップST41のメモリ超過判定処理に戻る。
上記の通り、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]である場合、200×200のテクスチャが2個作成されるが、3個目のテクスチャを作成する際にメモリ超過が認められるため、3個目のテクスチャは作成されず、ステップST44の処理に移行する。
縮尺別データ抽出部51は、地図データ格納部1に格納されている地図データを参照して、地図内に存在しているシンボルを縮尺別に抽出する(ステップST44)。
この実施の形態2では、説明の便宜上、最初に100m縮尺の地図内に存在しているシンボルが抽出され、次にステップST44の処理に戻ってきたときに、200m縮尺の地図内に存在しているシンボルが抽出されるものとする。
参照回数算出部52は、縮尺別データ抽出部51が地図内に存在しているシンボルを縮尺別に抽出すると(ステップST45)、地図の縮尺別に、縮尺別データ抽出部51により抽出されたシンボルの種類別の参照回数をカウントする(ステップST46)。
例えば、地図データ格納部1から指定縮尺の地図内に存在している全てのシンボルのシンボルデータを抽出し、種類別にデータ数を数えることで実現することができる。
この実施の形態2では、1000個のシンボルに対して、図23に示すような種類別の参照回数(使用回数)が得られるものとする。
この実施の形態2では、説明の便宜上、最初に100m縮尺の地図内に存在しているシンボルが抽出され、次にステップST44の処理に戻ってきたときに、200m縮尺の地図内に存在しているシンボルが抽出されるものとする。
参照回数算出部52は、縮尺別データ抽出部51が地図内に存在しているシンボルを縮尺別に抽出すると(ステップST45)、地図の縮尺別に、縮尺別データ抽出部51により抽出されたシンボルの種類別の参照回数をカウントする(ステップST46)。
例えば、地図データ格納部1から指定縮尺の地図内に存在している全てのシンボルのシンボルデータを抽出し、種類別にデータ数を数えることで実現することができる。
この実施の形態2では、1000個のシンボルに対して、図23に示すような種類別の参照回数(使用回数)が得られるものとする。
種類別ソート部53は、参照回数算出部52がシンボルの種類別の参照回数をカウントすると、図24に示すように、カウントされた参照回数が多い順に、シンボルの種類をソートする(ステップST47)。
図24の例では、参照回数算出部52のカウント結果を示す種類別の参照回数が降順ソート(例えば、マージソート)されており、100m縮尺の地図では、シンボル4、シンボル3、シンボル2、シンボル5・・・の順番で並べられている。
また、200m縮尺の地図では、シンボル5、シンボル7、シンボル9、シンボル8・・・の順番で並べられている。
この実施の形態2では、以降、100m縮尺の地図のソート結果を示すリストを「ソートリスト0」と称し、200m縮尺の地図のソート結果を示すリストを「ソートリスト1」と称する。
図24の例では、参照回数算出部52のカウント結果を示す種類別の参照回数が降順ソート(例えば、マージソート)されており、100m縮尺の地図では、シンボル4、シンボル3、シンボル2、シンボル5・・・の順番で並べられている。
また、200m縮尺の地図では、シンボル5、シンボル7、シンボル9、シンボル8・・・の順番で並べられている。
この実施の形態2では、以降、100m縮尺の地図のソート結果を示すリストを「ソートリスト0」と称し、200m縮尺の地図のソート結果を示すリストを「ソートリスト1」と称する。
次に、縮尺の変更時に動作する縮尺別テクスチャアトラス作成部7の処理内容を説明する。
まず、キャッシュクリア部61は、地図の縮尺変更時に、シンボル情報キャッシュ21に保持されているシンボル情報を消去する(図22のステップST51)。
縮尺別リスト取得部62は、縮尺別ソートリスト54から指定縮尺に対応する種類別ソート部53のソート結果を取得する(ステップST52)。
この実施の形態2では、説明の便宜上、表示縮尺が100m縮尺であるとする。この場合、100m縮尺の地図のソート結果を示すソートリスト0が取得される。
まず、キャッシュクリア部61は、地図の縮尺変更時に、シンボル情報キャッシュ21に保持されているシンボル情報を消去する(図22のステップST51)。
縮尺別リスト取得部62は、縮尺別ソートリスト54から指定縮尺に対応する種類別ソート部53のソート結果を取得する(ステップST52)。
この実施の形態2では、説明の便宜上、表示縮尺が100m縮尺であるとする。この場合、100m縮尺の地図のソート結果を示すソートリスト0が取得される。
シンボルデータ取得部63は、指定縮尺に対応する種類別ソート部53のソート結果を参照して、指定縮尺の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する(ステップST53)。
この実施の形態2では、100m縮尺の地図のソート結果を示すソートリスト0を参照して、100m縮尺の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータを取得する。
この実施の形態2では、100m縮尺の地図のソート結果を示すソートリスト0を参照して、100m縮尺の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータを取得する。
書込み可能判定部17は、上記実施の形態1と同様に、シンボルデータ取得部63がシンボルデータを取得する毎に、テクスチャ作成部12により作成されたテクスチャ(書込みテクスチャインデックスが指示するテクスチャリスト13内のテクスチャ)に対して、そのシンボルデータが示すシンボルの画像を書き込めるか否かを判定する(ステップST54)。
以降、書込みテクスチャ切替部18、画像書込み部19及びシンボル情報保存部20が、上記実施の形態1と同様に動作する(ステップST55〜ST59)。
その結果、図25に示すようなテクスチャアトラス0,1(100m縮尺に対応するテクスチャアトラス)が作成され、図26に示すようなシンボル情報キャッシュが作成される。
描画処理部5は、地図の描画を更新する際、上記実施の形態1と同様に動作して、3Dポリゴンの描画処理を実施する。
以降、書込みテクスチャ切替部18、画像書込み部19及びシンボル情報保存部20が、上記実施の形態1と同様に動作する(ステップST55〜ST59)。
その結果、図25に示すようなテクスチャアトラス0,1(100m縮尺に対応するテクスチャアトラス)が作成され、図26に示すようなシンボル情報キャッシュが作成される。
描画処理部5は、地図の描画を更新する際、上記実施の形態1と同様に動作して、3Dポリゴンの描画処理を実施する。
次に、地図の縮尺が100m縮尺から200m縮尺に変更された場合の処理内容を説明する。
まず、キャッシュクリア部61は、シンボル情報キャッシュ21に保持されている100m縮尺に係るシンボル情報を消去する(図22のステップST51)。
縮尺別リスト取得部62は、縮尺別ソートリスト54から指定縮尺に対応する種類別ソート部53のソート結果を取得する(ステップST52)。
この実施の形態2では、200m縮尺の地図のソート結果を示すソートリスト1が取得される。
まず、キャッシュクリア部61は、シンボル情報キャッシュ21に保持されている100m縮尺に係るシンボル情報を消去する(図22のステップST51)。
縮尺別リスト取得部62は、縮尺別ソートリスト54から指定縮尺に対応する種類別ソート部53のソート結果を取得する(ステップST52)。
この実施の形態2では、200m縮尺の地図のソート結果を示すソートリスト1が取得される。
シンボルデータ取得部63は、指定縮尺に対応する種類別ソート部53のソート結果を参照して、指定縮尺の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する(ステップST53)。
ここでは、200m縮尺の地図のソート結果を示すソートリスト1を参照して、200m縮尺の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータを取得する。
ここでは、200m縮尺の地図のソート結果を示すソートリスト1を参照して、200m縮尺の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータを取得する。
書込み可能判定部17は、上記実施の形態1と同様に、シンボルデータ取得部63がシンボルデータを取得する毎に、テクスチャ作成部12により作成されたテクスチャ(書込みテクスチャインデックスが指示するテクスチャリスト13内のテクスチャ)に対して、そのシンボルデータが示すシンボルの画像を書き込めるか否かを判定する(ステップST54)。
以降、書込みテクスチャ切替部18、画像書込み部19及びシンボル情報保存部20が、上記実施の形態1と同様に動作する(ステップST55〜ST59)。
その結果、図27に示すようなテクスチャアトラス0,1(200m縮尺に対応するテクスチャアトラス)が作成され、図28に示すようなシンボル情報キャッシュが作成される。
描画処理部5は、地図の描画を更新する際、上記実施の形態1と同様に動作して、3Dポリゴンの描画処理を実施する。
以降、書込みテクスチャ切替部18、画像書込み部19及びシンボル情報保存部20が、上記実施の形態1と同様に動作する(ステップST55〜ST59)。
その結果、図27に示すようなテクスチャアトラス0,1(200m縮尺に対応するテクスチャアトラス)が作成され、図28に示すようなシンボル情報キャッシュが作成される。
描画処理部5は、地図の描画を更新する際、上記実施の形態1と同様に動作して、3Dポリゴンの描画処理を実施する。
以上で明らかなように、この実施の形態2によれば、参照回数算出部52が、地図の縮尺別に、当該地図内に存在しているシンボルの種類別の参照回数をカウントし、シンボルデータ取得部63が、指定された縮尺の地図内に存在しているシンボルのうち、上記縮尺に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、画像書込み部19が、上位数個のシンボルの画像をテクスチャ作成部12により作成されたテクスチャに書き込み、シンボル情報保存部20が、画像書込み部19により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報をシンボル情報キャッシュ21に保存するように構成したので、地図の縮尺が変更される場合でも、地図内のシンボルを高速に描画することができる効果を奏する。
即ち、表示縮尺毎に、高使用頻度のシンボルを優先的に1つのテクスチャアトラスにまとめているので、表示縮尺に応じたテクスチャアトラスのキャッシュヒットの最適化が図られ、その結果、効率的にテクスチャ切替処理を省くことができる。
即ち、表示縮尺毎に、高使用頻度のシンボルを優先的に1つのテクスチャアトラスにまとめているので、表示縮尺に応じたテクスチャアトラスのキャッシュヒットの最適化が図られ、その結果、効率的にテクスチャ切替処理を省くことができる。
実施の形態3.
上記実施の形態1では、シンボルの描画処理の高速化が図られている地図シンボル描画装置を説明したが、この実施の形態3では、地図の表示領域が切り替わる際のシンボルの描画処理の高速化が図られている地図シンボル描画装置を説明する。
上記実施の形態1では、シンボルの描画処理の高速化が図られている地図シンボル描画装置を説明したが、この実施の形態3では、地図の表示領域が切り替わる際のシンボルの描画処理の高速化が図られている地図シンボル描画装置を説明する。
図29はこの発明の実施の形態3による地図シンボル描画装置を示す構成図であり、図において、図1と同一符号は同一または相当部分を示すので説明を省略する。
地域別テクスチャアトラス作成部8は例えばCPUなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、地図の地域別に、当該地図内に存在しているシンボルの種類別の参照回数をカウントする処理や、複数の地域の地図内に存在しているシンボルのうち、当該地域に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャに書き込む処理や、そのシンボルの種類及び書込み位置を示すシンボル情報を保存する処理などを起動時に実施する処理部である。
描画処理部5の処理内容は上記実施の形態1と同様である。
地域別テクスチャアトラス作成部8は例えばCPUなどを実装している半導体回路、あるいは、ワンチップマイコンなどから構成されており、地図の地域別に、当該地図内に存在しているシンボルの種類別の参照回数をカウントする処理や、複数の地域の地図内に存在しているシンボルのうち、当該地域に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャに書き込む処理や、そのシンボルの種類及び書込み位置を示すシンボル情報を保存する処理などを起動時に実施する処理部である。
描画処理部5の処理内容は上記実施の形態1と同様である。
地域別データ抽出部71は地図データ格納部1に格納されている地図データを参照して、地図内に存在しているシンボルを地域別に抽出する処理を実施する。
参照回数算出部72は地図の地域別に、地域別データ抽出部71により抽出されたシンボルの種類別の参照回数をカウントする処理を実施する。
種類別ソート部73は地図の地域別に、参照回数算出部72によりカウントされた参照回数が多い順に、シンボルの種類をソートする処理を実施する。
なお、地域別データ抽出部71、参照回数算出部72及び種類別ソート部73から参照回数計数手段が構成されている。
参照回数算出部72は地図の地域別に、地域別データ抽出部71により抽出されたシンボルの種類別の参照回数をカウントする処理を実施する。
種類別ソート部73は地図の地域別に、参照回数算出部72によりカウントされた参照回数が多い順に、シンボルの種類をソートする処理を実施する。
なお、地域別データ抽出部71、参照回数算出部72及び種類別ソート部73から参照回数計数手段が構成されている。
地域別リスト取得部74は種類別ソート部73による地域別のソート結果のうち、テクスチャアトラス作成対象の地域に対応するソート結果を取得する処理を実施する。
シンボルデータ取得部75は地域別リスト取得部74により取得されたソート結果を参照して、テクスチャアトラス作成対象の地域の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する処理を実施する。
なお、地域別リスト取得部74、シンボルデータ取得部75、書込み可能判定部17、書込みテクスチャ切替部18及び画像書込み部19からシンボル画像書込み手段が構成されている。
シンボルデータ取得部75は地域別リスト取得部74により取得されたソート結果を参照して、テクスチャアトラス作成対象の地域の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する処理を実施する。
なお、地域別リスト取得部74、シンボルデータ取得部75、書込み可能判定部17、書込みテクスチャ切替部18及び画像書込み部19からシンボル画像書込み手段が構成されている。
図29の例では、地図シンボル描画装置の構成要素であるメモリ超過判定部11、テクスチャ作成部12、地域別データ抽出部71、参照回数算出部72、種類別ソート部73、地域別リスト取得部74、シンボルデータ取得部75、書込み可能判定部17、書込みテクスチャ切替部18、画像書込み部19、シンボル情報保存部20、描画シンボルデータ取得部31、ポリゴン生成部32、シンボルキャッシュ確認部33、連続キャッシュヒット確認部34、テクスチャアトラス取得部36、オリジナルテクスチャ生成部37、使用テクスチャ切替部38、テクスチャ座標設定部39及びポリゴン描画部40のそれぞれが専用のハードウェア(例えば、CPUを実装している半導体集積回路、あるいは、ワンチップマイコンなど)で構成されているものを想定しているが、地図シンボル描画装置がコンピュータで構成される場合、メモリ超過判定部11、テクスチャ作成部12、地域別データ抽出部71、参照回数算出部72、種類別ソート部73、地域別リスト取得部74、シンボルデータ取得部75、書込み可能判定部17、書込みテクスチャ切替部18、画像書込み部19、シンボル情報保存部20、描画シンボルデータ取得部31、ポリゴン生成部32、シンボルキャッシュ確認部33、連続キャッシュヒット確認部34、テクスチャアトラス取得部36、オリジナルテクスチャ生成部37、使用テクスチャ切替部38、テクスチャ座標設定部39及びポリゴン描画部40の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにしてもよい。
図30はこの発明の実施の形態3よる地図シンボル描画装置の地域別テクスチャアトラス作成部8の処理内容を示すフローチャートである。
図30はこの発明の実施の形態3よる地図シンボル描画装置の地域別テクスチャアトラス作成部8の処理内容を示すフローチャートである。
次に動作について説明する。
この実施の形態3では、説明の便宜上、地図表示画面サイズが1000×1000であり、地図データが1000種類のシンボルを含んでいるものとする。
また、表示可能な地域として、東京と大阪の2つが用意されているものとする。
図31は地域が東京である場合の地図内に存在しているシンボルの種類別の参照回数(使用回数)と、地域が大阪である場合の地図内に存在しているシンボルの種類別の参照回数(使用回数)との一例を示す説明図である。
また、この実施の形態3では、シンボルのサイズが100×100[pixel]、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]であるものとする(図5を参照)。
この実施の形態3では、説明の便宜上、地図表示画面サイズが1000×1000であり、地図データが1000種類のシンボルを含んでいるものとする。
また、表示可能な地域として、東京と大阪の2つが用意されているものとする。
図31は地域が東京である場合の地図内に存在しているシンボルの種類別の参照回数(使用回数)と、地域が大阪である場合の地図内に存在しているシンボルの種類別の参照回数(使用回数)との一例を示す説明図である。
また、この実施の形態3では、シンボルのサイズが100×100[pixel]、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]であるものとする(図5を参照)。
地図シンボル描画装置の起動時では、使用メモリサイズが“0”、テクスチャリスト13が空リスト、書込みテクスチャインデックスが“0”、書込み開始座標が(0,0)であるものとする。
また、描画シンボルデータは、図6に示す6個のウィンドウ座標及びシンボル種類のセットであり、前キャッシュヒットフラグ35が“FALSE”であるものとする。
ただし、テクスチャの座標系及び表示ウィンドウ座標系は、左上を原点として、X軸方向は右、Y軸方向は下である。
また、描画シンボルデータは、図6に示す6個のウィンドウ座標及びシンボル種類のセットであり、前キャッシュヒットフラグ35が“FALSE”であるものとする。
ただし、テクスチャの座標系及び表示ウィンドウ座標系は、左上を原点として、X軸方向は右、Y軸方向は下である。
地域別テクスチャアトラス作成部8のメモリ超過判定部11は、上記実施の形態1と同様に、テクスチャとして使用可能なメモリに対して既に作成しているテクスチャのサイズTsizeNOWと、メモリ最大サイズ記憶部3に記憶されているメモリ最大サイズMMAXとを比較して、新たにテクスチャを作成することが可能であるか否かを判定する。
即ち、メモリ超過判定部11は、既に作成しているテクスチャのサイズTsizeNOWに対して、新たに作成するテクスチャの最大サイズTsizeMAX(テクスチャ最大サイズ記憶部2により記憶されているテクスチャ最大サイズ)を加算したとき、その加算結果が、メモリ最大サイズMEMMAXを超えていれば、メモリを超過してしまうため、新たにテクスチャを作成することが不可能であると判定する(図30のステップST61,ST62)。
一方、その加算結果が、メモリ最大サイズMEMMAXを超えていなければ、新たにテクスチャを作成することが可能であると判定する(ステップST61,ST62)。
即ち、メモリ超過判定部11は、既に作成しているテクスチャのサイズTsizeNOWに対して、新たに作成するテクスチャの最大サイズTsizeMAX(テクスチャ最大サイズ記憶部2により記憶されているテクスチャ最大サイズ)を加算したとき、その加算結果が、メモリ最大サイズMEMMAXを超えていれば、メモリを超過してしまうため、新たにテクスチャを作成することが不可能であると判定する(図30のステップST61,ST62)。
一方、その加算結果が、メモリ最大サイズMEMMAXを超えていなければ、新たにテクスチャを作成することが可能であると判定する(ステップST61,ST62)。
地図シンボル描画装置の起動時では、既に作成しているテクスチャのサイズTsizeNOW(使用メモリサイズ)が“0”であるため、TsizeNOW+TsizeMAXは“200×200”となり、メモリ最大サイズ“200×500”を超えないため、新たにテクスチャを作成することが可能であると判定される。
テクスチャ作成部12は、上記実施の形態1と同様に、メモリ超過判定部11により新たにテクスチャを作成することができると判定されると、テクスチャ最大サイズTsizeMAXのテクスチャ(200×200のテクスチャ)を作成する(ステップST63)。
また、テクスチャ作成部12は、テクスチャリスト13に対して、作成したテクスチャの情報を追加する。
テクスチャ作成部12が新たにテクスチャを作成することで、テクスチャ最大サイズTsizeMAXを使用メモリサイズに加算し、再度、ステップST61のメモリ超過判定処理に戻る。
上記の通り、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]である場合、200×200のテクスチャが2個作成されるが、3個目のテクスチャを作成する際にメモリ超過が認められるため、3個目のテクスチャは作成されず、ステップST64の処理に移行する。
また、テクスチャ作成部12は、テクスチャリスト13に対して、作成したテクスチャの情報を追加する。
テクスチャ作成部12が新たにテクスチャを作成することで、テクスチャ最大サイズTsizeMAXを使用メモリサイズに加算し、再度、ステップST61のメモリ超過判定処理に戻る。
上記の通り、テクスチャ最大サイズが200×200[pixel]、メモリ最大サイズが200×500[pixel]である場合、200×200のテクスチャが2個作成されるが、3個目のテクスチャを作成する際にメモリ超過が認められるため、3個目のテクスチャは作成されず、ステップST64の処理に移行する。
地域別データ抽出部71は、地図データ格納部1に格納されている地図データを参照して、地図内に存在しているシンボルを地域別に抽出する(ステップST64)。
この実施の形態3では、説明の便宜上、最初に地域が東京の地図内に存在しているシンボルが抽出され、次にステップST64の処理に戻ってきたときに、地域が大阪の地図内に存在しているシンボルが抽出されるものとする。
参照回数算出部72は、地域別データ抽出部71が地図内に存在しているシンボルを地域別に抽出すると(ステップST65)、地図の地域別に、地域別データ抽出部71により抽出されたシンボルの種類別の参照回数をカウントする(ステップST66)。
例えば、地図データ格納部1から東京/大阪の地図内に存在している全てのシンボルのシンボルデータを抽出し、種類別にデータ数を数えることで実現することができる。
この実施の形態3では、1000個のシンボルに対して、図31に示すような種類別の参照回数(使用回数)が得られるものとする。
この実施の形態3では、説明の便宜上、最初に地域が東京の地図内に存在しているシンボルが抽出され、次にステップST64の処理に戻ってきたときに、地域が大阪の地図内に存在しているシンボルが抽出されるものとする。
参照回数算出部72は、地域別データ抽出部71が地図内に存在しているシンボルを地域別に抽出すると(ステップST65)、地図の地域別に、地域別データ抽出部71により抽出されたシンボルの種類別の参照回数をカウントする(ステップST66)。
例えば、地図データ格納部1から東京/大阪の地図内に存在している全てのシンボルのシンボルデータを抽出し、種類別にデータ数を数えることで実現することができる。
この実施の形態3では、1000個のシンボルに対して、図31に示すような種類別の参照回数(使用回数)が得られるものとする。
種類別ソート部73は、参照回数算出部72がシンボルの種類別の参照回数をカウントすると、図32に示すように、カウントされた参照回数が多い順に、シンボルの種類をソートする(ステップST67)。
図32の例では、参照回数算出部52のカウント結果を示す種類別の参照回数が降順ソート(例えば、マージソート)されており、地域が東京の地図では、シンボル4、シンボル3、シンボル2、シンボル5・・・の順番で並べられている。
また、地域が大阪の地図では、シンボル5、シンボル7、シンボル9、シンボル8・・・の順番で並べられている。
この実施の形態3では、以降、地域が東京の地図のソート結果を示すリストを「ソートリスト0」と称し、地域が大阪の地図のソート結果を示すリストを「ソートリスト1」と称する。
図32の例では、参照回数算出部52のカウント結果を示す種類別の参照回数が降順ソート(例えば、マージソート)されており、地域が東京の地図では、シンボル4、シンボル3、シンボル2、シンボル5・・・の順番で並べられている。
また、地域が大阪の地図では、シンボル5、シンボル7、シンボル9、シンボル8・・・の順番で並べられている。
この実施の形態3では、以降、地域が東京の地図のソート結果を示すリストを「ソートリスト0」と称し、地域が大阪の地図のソート結果を示すリストを「ソートリスト1」と称する。
地域別リスト取得部74は、種類別ソート部73による地域別のソート結果のうち、テクスチャアトラス作成対象の地域に対応するソート結果を示すソースリストを取得する(ステップST68)。
ここでは、説明の便宜上、地域が東京の地図のソート結果を示すソートリスト0を取得するものとする。
シンボルデータ取得部75は、地域別リスト取得部74がソートリスト0を取得すると、そのソートリスト0を参照して、地域が東京の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する(ステップST69)。
ここでは、説明の便宜上、地域が東京の地図のソート結果を示すソートリスト0を取得するものとする。
シンボルデータ取得部75は、地域別リスト取得部74がソートリスト0を取得すると、そのソートリスト0を参照して、地域が東京の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する(ステップST69)。
書込み可能判定部17は、上記実施の形態1と同様に、シンボルデータ取得部75がシンボルデータを取得する毎に、テクスチャ作成部12により作成されたテクスチャ(書込みテクスチャインデックスが指示するテクスチャリスト13内のテクスチャ)に対して、そのシンボルデータが示すシンボルの画像を書き込めるか否かを判定する(ステップST70)。
以降、書込みテクスチャ切替部18、画像書込み部19及びシンボル情報保存部20が、上記実施の形態1と同様に動作する(ステップST71〜ST75)。
その結果、図33に示すようなテクスチャアトラス0(地域が東京のテクスチャアトラス)が作成され、図34に示すようなシンボル情報キャッシュが作成される。
以降、書込みテクスチャ切替部18、画像書込み部19及びシンボル情報保存部20が、上記実施の形態1と同様に動作する(ステップST71〜ST75)。
その結果、図33に示すようなテクスチャアトラス0(地域が東京のテクスチャアトラス)が作成され、図34に示すようなシンボル情報キャッシュが作成される。
次に、地域別リスト取得部74は、地域が大阪の地図のソート結果を示すソートリスト1を取得する(ステップST68)。
シンボルデータ取得部75は、地域別リスト取得部74がソートリスト1を取得すると、そのソートリスト1を参照して、地域が大阪の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する(ステップST69)。
シンボルデータ取得部75は、地域別リスト取得部74がソートリスト1を取得すると、そのソートリスト1を参照して、地域が大阪の地図内のシンボルの中で、ソート順位が1位の種類のシンボルから順番に、地図データ格納部1からシンボルデータ(シンボルの種類、シンボルの画像、シンボルのサイズを示すデータ)を取得する(ステップST69)。
書込み可能判定部17は、上記実施の形態1と同様に、シンボルデータ取得部75がシンボルデータを取得する毎に、テクスチャ作成部12により作成されたテクスチャ(書込みテクスチャインデックスが指示するテクスチャリスト13内のテクスチャ)に対して、そのシンボルデータが示すシンボルの画像を書き込めるか否かを判定する(ステップST70)。
以降、書込みテクスチャ切替部18、画像書込み部19及びシンボル情報保存部20が、上記実施の形態1と同様に動作する(ステップST71〜ST75)。
その結果、図35に示すようなテクスチャアトラス1(地域が大阪のテクスチャアトラス)が作成され、図36に示すようなシンボル情報キャッシュが作成される。
描画処理部5は、地図の描画を更新する際、上記実施の形態1と同様に動作して、3Dポリゴンの描画処理を実施する。
以降、書込みテクスチャ切替部18、画像書込み部19及びシンボル情報保存部20が、上記実施の形態1と同様に動作する(ステップST71〜ST75)。
その結果、図35に示すようなテクスチャアトラス1(地域が大阪のテクスチャアトラス)が作成され、図36に示すようなシンボル情報キャッシュが作成される。
描画処理部5は、地図の描画を更新する際、上記実施の形態1と同様に動作して、3Dポリゴンの描画処理を実施する。
以上で明らかなように、この実施の形態3によれば、参照回数算出部72が、地図の地域別に、当該地図内に存在しているシンボルの種類別の参照回数をカウントし、シンボルデータ取得部74が、複数の地域の地図内に存在しているシンボルのうち、テクスチャアトラス作成対象の地域の種類別の参照回数が多い上位数個のシンボルの画像を取得し、画像書込み部19が、上位数個のシンボルの画像をテクスチャ作成部12により作成されたテクスチャに書き込み、シンボル情報保存部20が、画像書込み部19により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報をシンボル情報キャッシュ21に保存するように構成したので、表示対象の地域が変更される場合でも、地図内のシンボルを高速に描画することができる効果を奏する。
即ち、地域別に、高使用頻度のシンボルを優先的に1つのテクスチャアトラスにまとめているので、表示する地域に応じたテクスチャアトラスのキャッシュヒットの最適化が図られ、その結果、効率的にテクスチャ切替処理を省くことができる。
即ち、地域別に、高使用頻度のシンボルを優先的に1つのテクスチャアトラスにまとめているので、表示する地域に応じたテクスチャアトラスのキャッシュヒットの最適化が図られ、その結果、効率的にテクスチャ切替処理を省くことができる。
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
この発明に係る地図シンボル描画装置は、地図内のシンボルを高速に描画するに際して、大きなメモリ領域を実装する必要がないため、使用メモリサイズの制約が厳しいカーナビなどの組込み型の地図表示器に適している。
Claims (9)
- テクスチャとして使用可能なメモリの最大サイズの範囲内で1つ以上のテクスチャを作成するテクスチャ作成手段と、地図内に存在しているシンボルの種類別の参照回数を計数する参照回数計数手段と、上記地図内に存在しているシンボルのうち、上記参照回数計数手段により計数された種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像を上記テクスチャ作成手段により作成されたテクスチャに書き込むシンボル画像書込み手段と、上記シンボル画像書込み手段により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報を保存するシンボル情報保存手段と、描画対象のシンボルの表示座標に応じて3Dポリゴンの頂点を生成するポリゴン生成手段と、上記シンボル情報保存手段により保存されているシンボル情報を参照して、描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれているか否かを確認する書込み確認手段と、上記書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、上記テクスチャ内の上記シンボルの書込み位置をテクスチャ座標として、上記ポリゴン生成手段により生成された3Dポリゴンの頂点に設定し、上記書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成し、上記テクスチャの座標を上記ポリゴン生成手段により生成された3Dポリゴンの頂点に設定するテクスチャ座標設定手段と、上記テクスチャ座標設定手段によりテクスチャ座標が設定された3Dポリゴンを描画するポリゴン描画手段とを備えた地図シンボル描画装置。
- テクスチャ座標設定手段は、書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、描画対象のシンボルの画像が描かれているオリジナルのテクスチャを作成するオリジナルテクスチャ生成部と、上記書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認された場合、上記テクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行い、上記書込み確認手段により描画対象のシンボルと同じ種類のシンボルの画像がテクスチャに書き込まれていることが確認されない場合、上記オリジナルテクスチャ生成部により作成されたオリジナルのテクスチャをポリゴン描画時に使用するテクスチャに切り替える設定を行う使用テクスチャ切替部と、上記使用テクスチャ切替部により設定されたテクスチャ内のシンボルの書込み位置をテクスチャ座標として、上記ポリゴン生成手段により生成された3Dポリゴンの頂点に設定するテクスチャ座標設定部とから構成されており、
上記使用テクスチャ切替部は、描画対象のシンボルと同じ種類のシンボルの画像が書き込まれているテクスチャが、前回のポリゴン描画時に使用しているテクスチャと同じテクスチャである場合、ポリゴン描画時に使用するテクスチャを切り替える設定を行わない
ことを特徴とする請求項1記載の地図シンボル描画装置。 - テクスチャ作成手段、参照回数計数手段、シンボル画像書込み手段及びシンボル情報保存手段は、起動時に限り処理を実施することを特徴とする請求項1記載の地図シンボル描画装置。
- ポリゴン生成手段、書込み確認手段、テクスチャ座標設定手段及びポリゴン描画手段は、地図の描画を更新する際に処理を実施することを特徴とする請求項1記載の地図シンボル描画装置。
- 参照回数計数手段は、地図の縮尺別に、当該地図内に存在しているシンボルの種類別の参照回数を計数し、
シンボル画像書込み手段は、指定された縮尺の地図内に存在しているシンボルのうち、上記縮尺に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャ作成手段により作成されたテクスチャに書き込み、
シンボル情報保存手段は、上記シンボル画像書込み手段により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報を保存する
ことを特徴とする請求項1記載の地図シンボル描画装置。 - テクスチャ作成手段及び参照回数計数手段は、起動時に限り処理を実施することを特徴とする請求項5記載の地図シンボル描画装置。
- シンボル画像書込み手段及びシンボル情報保存手段は、縮尺を変更する際に処理を実施することを特徴とする請求項5記載の地図シンボル描画装置。
- 参照回数計数手段は、地図の地域別に、当該地図内に存在しているシンボルの種類別の参照回数を計数し、
シンボル画像書込み手段は、複数の地域の地図内に存在しているシンボルのうち、当該地域に対応する種類別の参照回数が多い上位数個のシンボルの画像を取得し、上位数個のシンボルの画像をテクスチャ作成手段により作成されたテクスチャに書き込み、
シンボル情報保存手段は、上記シンボル画像書込み手段により書き込まれたシンボルの種類及び書込み位置を示すシンボル情報を保存する
ことを特徴とする請求項1記載の地図シンボル描画装置。 - テクスチャ作成手段、参照回数計数手段、シンボル画像書込み手段及びシンボル情報保存手段は、起動時に限り処理を実施することを特徴とする請求項8記載の地図シンボル描画装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/006564 WO2012063279A1 (ja) | 2010-11-09 | 2010-11-09 | 地図シンボル描画装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5318290B2 true JP5318290B2 (ja) | 2013-10-16 |
JPWO2012063279A1 JPWO2012063279A1 (ja) | 2014-05-12 |
Family
ID=46050465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012542692A Expired - Fee Related JP5318290B2 (ja) | 2010-11-09 | 2010-11-09 | 地図シンボル描画装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8994727B2 (ja) |
JP (1) | JP5318290B2 (ja) |
CN (1) | CN103201771B (ja) |
DE (1) | DE112010005982T5 (ja) |
WO (1) | WO2012063279A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5803645B2 (ja) * | 2011-12-15 | 2015-11-04 | アイシン・エィ・ダブリュ株式会社 | 評価表示システム、方法およびプログラム |
CN103903507B (zh) * | 2012-12-26 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 一种地图道路渲染方法及系统 |
JP2015187795A (ja) * | 2014-03-27 | 2015-10-29 | 株式会社ジオ技術研究所 | 画像表示システム |
DE112014006974T5 (de) | 2014-09-22 | 2017-06-29 | Mitsubishi Electric Corporation | Informationsanzeigesteuersystem und Texturatlaserzeugungsverfahren |
WO2017158734A1 (ja) * | 2016-03-15 | 2017-09-21 | 三菱電機株式会社 | テクスチャマッピング装置およびテクスチャマッピングプログラム |
CN106126682B (zh) * | 2016-06-29 | 2019-05-17 | 泰华智慧产业集团股份有限公司 | 产业地图区域地斑智能绘制方法及系统 |
US11175157B1 (en) * | 2018-10-24 | 2021-11-16 | Palantir Technologies Inc. | Dynamic scaling of geospatial data on maps |
CN111862252A (zh) * | 2020-07-07 | 2020-10-30 | 博泰车联网(南京)有限公司 | 绘制地图的方法、终端和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03138779A (ja) * | 1989-10-25 | 1991-06-13 | Daikin Ind Ltd | テクスチャ・マッピング方法およびその装置 |
JPH05242181A (ja) * | 1992-02-27 | 1993-09-21 | Toshiba Corp | Cadシステム |
JP2009238192A (ja) * | 2008-03-28 | 2009-10-15 | Konami Digital Entertainment Co Ltd | 画像処理装置、画像処理方法、ならびに、プログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6577330B1 (en) | 1997-08-12 | 2003-06-10 | Matsushita Electric Industrial Co., Ltd. | Window display device with a three-dimensional orientation of windows |
US6002407A (en) * | 1997-12-16 | 1999-12-14 | Oak Technology, Inc. | Cache memory and method for use in generating computer graphics texture |
JP3350473B2 (ja) * | 1999-03-17 | 2002-11-25 | 富士通株式会社 | オクルージョンカリングを行う3次元グラフィックス描画装置および方法 |
WO2001038826A1 (en) * | 1999-11-24 | 2001-05-31 | Honeywell International, Inc. | Labeling of moving maps |
US20040054568A1 (en) * | 2002-07-01 | 2004-03-18 | Bradley Gary J. | Automated construction project estimator tool |
JP2004271901A (ja) * | 2003-03-07 | 2004-09-30 | Matsushita Electric Ind Co Ltd | 地図表示装置 |
JP4447865B2 (ja) * | 2003-08-01 | 2010-04-07 | ソニー株式会社 | 地図表示システム、地図データ加工装置、地図表示装置及び地図表示方法 |
US7432936B2 (en) * | 2004-12-02 | 2008-10-07 | Avid Technology, Inc. | Texture data anti-aliasing method and apparatus |
JP2009045091A (ja) | 2007-08-13 | 2009-03-05 | Koei:Kk | ゲーム機器、ネットワークゲームシステム、画像生成方法および画像生成プログラム |
EP2192568A4 (en) * | 2007-09-13 | 2014-02-26 | Mitsubishi Electric Corp | CARD TRACING DEVICE |
CN101840583A (zh) * | 2010-04-08 | 2010-09-22 | 中国科学院地理科学与资源研究所 | 一种图形处理装置及方法 |
-
2010
- 2010-11-09 US US13/824,022 patent/US8994727B2/en not_active Expired - Fee Related
- 2010-11-09 DE DE112010005982T patent/DE112010005982T5/de active Pending
- 2010-11-09 JP JP2012542692A patent/JP5318290B2/ja not_active Expired - Fee Related
- 2010-11-09 WO PCT/JP2010/006564 patent/WO2012063279A1/ja active Application Filing
- 2010-11-09 CN CN201080070046.0A patent/CN103201771B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03138779A (ja) * | 1989-10-25 | 1991-06-13 | Daikin Ind Ltd | テクスチャ・マッピング方法およびその装置 |
JPH05242181A (ja) * | 1992-02-27 | 1993-09-21 | Toshiba Corp | Cadシステム |
JP2009238192A (ja) * | 2008-03-28 | 2009-10-15 | Konami Digital Entertainment Co Ltd | 画像処理装置、画像処理方法、ならびに、プログラム |
Non-Patent Citations (2)
Title |
---|
CSNB201200813001; 沼田 哲史: 「実践iPad/iPhoneゲームプログラミング」 第1版, 20101103, p.223, 株式会社秀和システム * |
JPN6013027785; 沼田 哲史: 「実践iPad/iPhoneゲームプログラミング」 第1版, 20101103, p.223, 株式会社秀和システム * |
Also Published As
Publication number | Publication date |
---|---|
US8994727B2 (en) | 2015-03-31 |
CN103201771B (zh) | 2015-06-17 |
WO2012063279A1 (ja) | 2012-05-18 |
JPWO2012063279A1 (ja) | 2014-05-12 |
US20130176307A1 (en) | 2013-07-11 |
CN103201771A (zh) | 2013-07-10 |
DE112010005982T5 (de) | 2013-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5318290B2 (ja) | 地図シンボル描画装置 | |
JP4579262B2 (ja) | 3次元画像のレンダリングにおける早期zテスト方法およびシステム | |
CN101241603B (zh) | 一种电磁场强度实时可视化方法 | |
JP3461980B2 (ja) | 高速描画方法および装置 | |
KR101640904B1 (ko) | 온라인 게이밍 경험을 제공하기 위한 컴퓨터 기반 방법, 기계 판독가능 비일시적 매체 및 서버 시스템 | |
Nurminen | m-LOMA-a mobile 3D city map | |
CN107132912B (zh) | 一种gis与bim增强现实在建筑规划的互动演示方法及系统 | |
CN110738721A (zh) | 基于视频几何分析的三维场景渲染加速方法及系统 | |
CN105261066B (zh) | 一种三维地理信息系统实时绘制多线程分配与控制方法 | |
CN106446351A (zh) | 一种面向实时绘制的大规模场景组织与调度技术及仿真系统 | |
CN104200506A (zh) | 三维gis海量矢量数据渲染方法及装置 | |
CN110090440B (zh) | 虚拟对象显示方法、装置、电子设备及存储介质 | |
CN110368694A (zh) | 游戏场景的数据处理方法、装置、设备及可读存储介质 | |
CN105549929A (zh) | 用于改善图形性能的方法、装置和计算机程序产品 | |
JP3350473B2 (ja) | オクルージョンカリングを行う3次元グラフィックス描画装置および方法 | |
KR100901284B1 (ko) | 3d 모델 식별자를 이용한 랜더링 시스템 및 방법 | |
CN112669419A (zh) | 用于渲染的方法、中央处理器、图像处理器、系统和存储介质 | |
CN109598792B (zh) | 三维场景中建筑物注记的自动放置方法 | |
CN116109767A (zh) | 三维场景的渲染方法、图像处理器、电子设备及存储介质 | |
EP0670560A2 (en) | A method for sorting polygon data and a video game machine employing the same | |
CN111292399B (zh) | 在gis系统基于粒子系统构建三维场景动画方法及装置 | |
JP2590327B2 (ja) | 図面情報の管理方法 | |
de Lucas et al. | Ultra-low power render-based collision detection for CPU/GPU systems | |
KR100817237B1 (ko) | 3차원 그래픽 연산을 위한 그래픽 가속기 장치 및 캐쉬메모리 장치, 및 3차원 그래픽 연산 처리 방법 | |
JPH0944697A (ja) | 図形描画装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130611 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130709 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |