(57)【要約】【課題】演算時間や消費電力の増大を抑止し、地図描画の性能を向上させることが可能なグラフィックス用半導体集積回路を提供することを目的とする。【解決手段】上記課題は、描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張機能を含むジオメトリシェーダと、前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換機能を含むバーテックスシェーダと、上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手段と、を有するグラフィックス用半導体集積回路により達成される。【選択図】図１
2010152702.tif 000002
【特許請求の範囲】
【請求項１】
描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張機能を含むジオメトリシェーダと、
前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換機能を含むバーテックスシェーダと、
上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手段と、を有するグラフィックス用半導体集積回路。
【請求項２】
前記ジオメトリシェーダは、
前記二次元の頂点座標の複製を生成し、一方の前記二次元の頂点座標に０を追加し、他方の前記二次元の頂点座標に前記オブジェクトの高さ情報を追加して、前記三次元の形状を示す頂点座標を生成する機能を有する請求項１記載のグラフィック用半導体集積回路。
【請求項３】
前記ジオメトリシェーダと前記バーテックスシェーダとを接続する経路と、
前記制御手段による切り替え制御に応じて前記経路において情報が流れる方向を切り替える方向切替手段と、を有する請求項１又は２記載のグラフィックス用半導体集積回路。
【請求項４】
前記制御手段による切り替え制御に応じて前記ジオメトリシェーダか、又は前記バーテックスシェーダの何れか一方に前記複数の頂点座標を供給する選択手段を有する請求項１乃至３の何れか一項に記載のグラフィックス用半導体集積回路。
【請求項５】
前記制御手段は、
前記実行順序に対応した制御信号が記憶された記憶手段を有し、
前記上位制御手段から前記実行順序を選択する選択信号が供給されたとき、選択された前記実行順序と対応した制御信号を出力する請求項１乃至４の何れか一項に記載のグラフィックス用半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の頂点座標を用いて三次元の立体画像を描画するグラフィックス用半導体集積回路に関する。
【背景技術】
【０００２】
近年のカーナビゲーションシステム等に代表される地図描画では、ビル等の建築物を立体的に描画する三次元の画像表示が普及している。三次元の画像表示は、例えばプログラマが画像生成アルゴリズムを定義したシェーダプログラムが組み込まれた用途特化型プロセッサ（プログラマブルシェーダ）を搭載したグラフィックＬＳＩ（Large Scale Integration）等により実現される。
【０００３】
グラフィックスＬＳＩで三次元の画像表示を行う簡易的な方法として、建築物の厳密な三次元頂点データを使用する代わりに、例えば建築物の平面形状を示す二次元の頂点データと建築物の高さ情報とを使用するものがある。システムは、二次元の頂点データと高さ情報を保持しており、グラフィックスＬＳＩの外部のＣＰＵ（Central Processing Unit）に二次元の頂点データを高さ分押し出して三次元の頂点データにする加工を実行させる。グラフィックスＬＳＩは、この三次元の頂点データを用いて描画を行う。
【０００４】
あるいは、上述した押し出し処理をＣＰＵの代わりにグラフィックスＬＳＩで実行する方法も考えられる。この場合、二通りの方法が可能である。描画処理の実行手順は、規格によりバーテックスシェーダ、ジオメトリシェーダ、ピクセルシェーダの順で規定されている。
【０００５】
そこで第一の方法として、バーテックスシェーダで二次元頂点データに高さ０を付加して三次元化した頂点と、バーテックスシェーダで生成した、平面形状に直交し建築物の高さ分の長さの法線ベクトルとを、バーテックスシェーダで座標変換する。続いて、ジオメトリシェーダにおいて、座標変換後の平面形状を複製し、座標変換後の法線ベクトルに沿って押し出す。
【０００６】
一方、第二の方法として、規格に定められたストリームアウトとストリームバッファを利用する方法も原理的には可能である。まず、ＣＰＵあるいはバーテックスシェーダで、二次元頂点データに高さ０を付加して三次元化する。続いてジオメトリシェーダで、平面形状を複製して高さ０を建築物の高さに置き換える。続いてこの頂点データを、ストリームアウト経由でストリームバッファに保存する。続いて、ストリームバッファからこの頂点データを読み出してバーテックスシェーダに渡し、バーテックスシェーダで座標変換する。続いて、ジオメトリシェーダを何もせずに素通りさせる。
【特許文献１】特開２００６−２２１６５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した描画処理において、規定に従ってバーテックスシェーダ、ジオメトリシェーダの順に実行する場合、始めに二次元の頂点データ（ｘ−ｙ平面上の座標）はバーテックスシェーダで三次元の描画（透視射影）を行うための座標に変換される。よって変換後の座標は、（Ｘ，Ｙ，Ｚ）座標軸に対するｘ−ｙ平面の直交性が失われた座標となる。このためジオメトリシェーダでは、変換後の座標で示される平面形状の高さ分押し出す際に、Ｘ，Ｙ，Ｚ各要素毎の厳密な幾何学的計算を実行する必要があり、演算時間や消費電力の増大を引き起こす。また演算の負荷の増大による地図描画の性能が低下する虞がある。
【０００８】
またストリームアウトとストリームバッファを用いて擬似的にジオメトリシェーダをバーテックスシェーダよりも先行して実行させる手法がある。この手法では、最初に頂点データをバーテックスシェーダに入力する段階で、頂点データを素通りさせてジオメトリシェーダを実行する。そしてジオメトリシェーダの実行結果をストリームアウトを経由してストリームバッファに保存する。続いてストリームバッファから頂点データを読み出してバーテックスシェーダを実行した後にジオメトリシェーダを素通りさせる。よって上記手法では、変換する前の座標で示される平面形状を単純に高さ分だけ押し出した後に座標変換すれば良いため、平面形状を押し出す処理は簡素化することができるが、頂点データを素通りさせる、ストリームバッファからの外部メモリ読み出しを伴う等の冗長な処理が発生する。したがって演算時間や消費電力の増大を引き起こす。
【０００９】
よって本発明の目的は、演算時間や消費電力の増大を抑止し、地図描画の性能を向上させることが可能なグラフィックス用半導体集積回路を提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張機能を含むジオメトリシェーダと、前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換機能を含むバーテックスシェーダと、上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手段と、を有する。
【発明の効果】
【００１１】
開示のグラフィックス用半導体集積回路では、演算時間や消費電力の増大を抑止し、地図描画の性能を向上させることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態を図面に基づいて説明する。
【００１３】
本実施形態では、バーテックスシェーダとジオメトリシェーダの実行順序の切替制御を行う切替制御手段を設け、頂点データをジオメトリシェーダに直接入力し、ジオメトリシェーダ、バーテックスシェーダの順に実行させる。
【００１４】
図１は、本発明の一実施形態のグラフィックスＬＳＩを説明する図である。
【００１５】
本実施形態のグラフィックスＬＳＩ１００は、切替制御部１１０と、バーテックスシェーダ１２０と、ジオメトリシェーダ１３０と、方向切替部１４０、１５０と、ストリームアウト１６０と、ラスタライザ１７０と、フラグメントシェーダ１８０と、画素描画部１９０と、経路選択用のセレクタ１１〜１９と、を有する。
【００１６】
本実施形態のグラフィックスＬＳＩ１００では、切替制御部１１０から出力される制御信号によりセレクタ１１〜１９と方向切替部１４０、１５０とを制御して、頂点データが流れる経路を切り替える。本実施形態では、頂点データの流れる経路を切り替えることにより、バーテックスシェーダ１２０とジオメトリシェーダ１３０の実行順序を変更することができる。
【００１７】
またグラフィックスＬＳＩ１００は、グラフィックスメモリ２００と接続されている。グラフィックスメモリ２００は、頂点データが格納された頂点バッファ２１０、ストリームアウト１６０を介してジオメトリシェーダ１３０から出力されるデータが保存されるストリームバッファ２２０、画素描画部１９０から出力されるデータが保存されるフレームバッファ２３０を有する。
【００１８】
本実施形態のグラフィックスＬＳＩ１００において、外部から頂点データが入力された場合、頂点データはセレクタ１１に供給される。セレクタ１１は、頂点データをセレクタ１２又はセレクタ１３へ供給する。セレクタ１２に頂点データが供給された場合、セレクタ１２は頂点データをバーテックスシェーダ１２０へ供給する。セレクタ１３に頂点データが供給された場合、セレクタ１３は頂点データをジオメトリシェーダ１３０へ供給する。
【００１９】
バーテックスシェーダ１２０とジオメトリシェーダ１３０とは、方向切替部１４０、１５０を介して経路３０で接続されている。方向切替部１４０、１５０は、経路３０を介してデータの送受信が可能である。方向切替部１４０から経路３０を介して方向切替部１５０へデータを送信することも可能であるし、方向切替部１５０から経路３０を介して方向切替部１４０へデータを送信することも可能である。
【００２０】
すなわち本実施形態では、バーテックスシェーダ１２０の出力データをジオメトリシェーダ１３０へ供給することもできるし、ジオメトリシェーダ１３０の出力データをバーテックスシェーダ１２０へ供給することもできる。
【００２１】
バーテックスシェーダ１２０の出力データは、セレクタ１４を介してセレクタ１６又はセレクタ１７に供給される。ジオメトリシェーダ１３０の出力データは、セレクタ１５を介してセレクタ１６又はセレクタ１７に供給される。
【００２２】
セレクタ１６は、バーテックスシェーダ１２０の出力データ又はジオメトリシェーダ１３０の出力データをストリームアウト１６０へ供給する。ストリームアウト１６０の出力は、グラフィックスメモリ２００のストリームバッファ２２０へ供給される。
【００２３】
セレクタ１７は、バーテックスシェーダ１２０の出力データ又はジオメトリシェーダ１３０の出力データをラスタライザ１７０へ供給する。ラスタライザ１７０の出力は、フラグメントシェーダ１８０を介して画素描画部１９０へ供給される。画素描画部１９０の出力は、フレームバッファ２３０へ出力される。
【００２４】
セレクタ１８は、頂点バッファ２１０に記憶された頂点データ又はストリームバッファに保存されたデータをセレクタ１９へ供給する。セレクタ１９は、供給されたデータをセレクタ１２又はセレクタ１３へ供給する。
【００２５】
次に経路選択用のセレクタ１１〜１９と、方向切替部１４０、１５０とを制御する制御信号について説明する。制御信号は、切替制御部１１０から供給される。
【００２６】
切替制御部１１０は、設定レジスタ１１１を有する。設定レジスタ１１１には、例えばグラフィックスＬＳＩ１００の上位制御手段であるＣＰＵ（Central Processing Unit）により、頂点データの流れる経路を実現するための経路毎の制御が設定される。切替制御部１１０は、ＣＰＵから経路を選択する選択信号が供給されると、設定レジスタ１１１の設定に従って各制御信号の出力を制御する。
【００２７】
例えば切替制御部１１０は、上位制御部であるＣＰＵにより後述する第一の経路が選択されると、第一の経路に対応した制御信号を出力する。また上位制御部であるＣＰＵにより後述する第二の経路が選択されると、切替制御部１１０は第二の経路に対応したパターンの制御信号を出力する。
【００２８】
以下に切替制御部１１０から出力される制御信号とセレクタ１１〜１９、方向切替部１４０、１５０との関係について説明する。
【００２９】
切替制御部１１０は、選択された経路に応じて制御信号６０、６１、６３、６５、６７を出力する。制御信号６０は、セレクタ１１、１９、方向切替部１４０、１５０を制御する。
【００３０】
セレクタ１１は、制御信号６０に応じて頂点データをセレクタ１２又はセレクタ１３のどちらかに供給する。セレクタ１９は、制御信号６０に応じてセレクタ１８から供給されるデータをセレクタ１２又はセレクタ１３のどちらかに供給する。方向切替部１４０、１５０は、制御信号６０に応じてデータが経路３０を流れる方向を制御する。
【００３１】
制御信号６１は、セレクタ１２、１３を制御する。セレクタ１２は、制御信号６１に応じて、セレクタ１１を介して供給された頂点データか、又はセレクタ１９を介して供給されたデータをバーテックスシェーダ１２０へ供給する。セレクタ１３は、制御信号６１に応じて、セレクタ１１を介して供給された頂点データか、又はセレクタ１９を介して供給されたデータをジオメトリシェーダ１３０へ供給する。
【００３２】
制御信号６３は、セレクタ１８を制御する。セレクタ１８は、制御信号６３に応じて頂点バッファ２１０から読み出した頂点データか、又はストリームバッファ２２０から読み出してデータをセレクタ１９へ供給する。
【００３３】
制御信号６５は、セレクタ１４、１５を制御する。セレクタ１４は、制御信号６５に応じてバーテックスシェーダ１２０の出力データをセレクタ１６か、又はセレクタ１７に供給する。セレクタ１５は、制御信号６５に応じてジオメトリシェーダ１３０の出力データをセレクタ１６か、又はセレクタ１７に供給する。
【００３４】
制御信号６７は、セレクタ１６、１７を制御する。セレクタ１６は、制御信号６７に応じて、セレクタ１４を介して供給されるバーテックスシェーダ１２０の出力データか、又はセレクタ１５を介して供給されるジオメトリシェーダ１３０の出力データをストリームアウト１６０へ供給する。セレクタ１７は、制御信号６７に応じて、セレクタ１４を介して供給されるバーテックスシェーダ１２０の出力データか、又はセレクタ１５を介して供給されるジオメトリシェーダ１３０の出力データをラスタライザ１７０へ供給する。
【００３５】
以下に、本実施形態のグラフィックスＬＳＩ１００における経路の切り替えについて説明する。図２は、切替制御部１１０の切替制御により実現される第一の経路を説明する図である。図２では、ストリームアウト２２０を用いずにジオメトリシェーダ１３０からバーテックスシェーダ１２０へデータを１回流す経路を示している。尚図２ではデータの経路のみ図示した。
【００３６】
図２の例において、切替制御部１１０は、制御信号６０、６７を出力する。グラフィックスＬＳＩ１００に入力された頂点データは、セレクタ１１に供給される。セレクタ１１では、制御信号６０によりジオメトリシェーダ１３０へ頂点データを供給する経路が選択されている。よって頂点データはセレクタ１１を介してジオメトリシェーダ１３０へ供給される。
【００３７】
方向切替部１４０、１５０では、制御信号６０により、ジオメトリシェーダ１３０からバーテックスシェーダ１２０へデータを流す経路が選択されている。よって、ジオメトリシェーダ１３０で処理が実行されると、ジオメトリシェーダ１３０の出力データは方向切替部１５０、経路３０、方向切替部１４０を介してバーテックスシェーダ１２０へ供給される。
【００３８】
セレクタ１７では、制御信号６７により、バーテックスシェーダ１２０の出力データをラスタラザ１７０へ供給する経路が選択されている。よってバーテックスシェーダ１２０の出力データは、セレクタ１７を介してラスタライザ１７０へ供給される。バーテックスシェーダ１２０の出力データは、ラスタライザ１７０、フラグメントシェーダ１８０、画素描画部１９０を介して最終的にフレームバッファ２３０へ保存される。
【００３９】
このように本実施形態では、ストリームアウト１６０を介さずにジオメトリシェーダ１３０とバーテックスシェーダ１２０の実行の順序を切り替えることができる。
【００４０】
図３は、第一の経路を実現するための切替制御部による制御例を示す図である。第一の経路において切替制御部１１０は、制御信号６０により、セレクタ１１による経路の選択と、方向切替部１４０、１５０における方向の選択とを制御する。セレクタ１１は、制御信号６０に応じてジオメトリシェーダ１３０に接続された方の経路を選択する。
【００４１】
方向切替部１４０、１５０は、経路３０を介してジオメトリシェーダ１３０からバーテックスシェーダ１２０へデータが流れる経路を選択する。例えば方向切替部１４０はデータの送受信のうちデータの送信を選択し、方向切替部１５０はデータの送受信のうちデータの受信を選択する。
【００４２】
本実施形態のセレクタ１１は、例えば制御信号６０がハイレベル（以下、Ｈレベル）のときジオメトリシェーダ１３０と接続された方の経路を選択しても良い。また本実施形態の方向切替部１４０、１５０は、制御信号６０がＨレベルのとき、ジオメトリシェーダ１３０からバーテックスシェーダ１２０へデータが流れる経路を選択しても良い。またセレクタ１１は、例えば制御信号６０がローレベル（以下、Ｌレベル）のときバーテックスシェーダ１２０と接続された方の経路を選択しても良い。また本実施形態の方向切替部１４０、１５０は、制御信号６０がＬレベルのときバーテックスシェーダ１２０からジオメトリシェーダ１３０へデータが流れる経路を選択しても良い。
【００４３】
また切替制御部１１０は、制御信号６７により、セレクタ１７による経路の選択を制御する。セレクタ１７は、制御信号６７に応じてバーテックスシェーダ１２０と接続された経路を選択する。尚本実施形態のセレクタ１７は、制御信号６７がＨレベルのときバーテックスシェーダ１２０と接続された経路を選択し、制御信号６７がＬレベルのときジオメトリシェーダ１３０と接続された経路を選択しても良い。
【００４４】
また本実施形態の設定レジスタ１１１には、第一の経路と対応したパターンの制御信号として、「制御信号６０＝Ｈレベル、制御信号６７＝Ｈレベル」が記憶されていても良い。
【００４５】
次に図４を参照して第一の経路による描画処理を説明する。図４は、本実施形態の第一の経路による描画処理を説明するフローチャートである。
【００４６】
第一の経路において、頂点データ（ｘ，ｙ）がグラフィックスＬＳＩ１００に供給されると、頂点データはセレクタ１１を介してジオメトリシェーダ１３０に入力される。ジオメトリシェーダ１３０は、頂点データ（ｘ，ｙ）を三次元で描画するために、頂点データ（ｘ，ｙ）に高さを示す情報を付与する（ステップＳ４０１）。
【００４７】
ステップＳ４０１において、ジオメトリシェーダ１３０は頂点データ（ｘ，ｙ）の複製を生成する。そしてジオメトリシェーダ１３０は、２組の頂点データにｚ軸座標のｚ＝０、ｚ＝ｈをそれぞれ付与した三次元の頂点データを生成する。ジオメトリシェーダ１３０で生成される三次元の頂点データは、（ｘ，ｙ，０）と、（ｘ，ｙ，ｈ）である。
【００４８】
尚ｈは、二次元の頂点データ（ｘ，ｙ）により示される平面形状の高さを示す高さ情報である。高さ情報ｈは、例えば頂点バッファ２１０等に予め記憶されており、ジオメトリシェーダ１３０が事前に取得していても良い。
【００４９】
三次元の頂点データ（ｘ，ｙ，０）は、二次元の頂点データ（ｘ，ｙ）により示される平面形状を三次元とした際の床面を示す頂点データである。三次元の頂点データ（ｘ，ｙ，ｈ）は、二次元の頂点データ（ｘ，ｙ）により示される平面形状を三次元とした際の天井面を示す頂点データである。ジオメトリシェーダ１３０で三次元の頂点データ（ｘ，ｙ，０）、（ｘ，ｙ，ｈ）が生成されると、この三次元の頂点データはバーテックスシェーダ１２０へ渡される。
【００５０】
バーテックスシェーダ１２０では、三次元の頂点データで示される立体を傾けて鳥瞰表示させるための座標変換を行う（ステップＳ４０２）。バーテックスシェーダ１２０では、床面を示す頂点データ（ｘ，ｙ，０）と天井面を示す頂点データ（ｘ，ｙ，ｈ）について座標変換を行う。図５を参照してステップＳ４０２におけるバーテックスシェーダ１２０の演算内容を説明する。
【００５１】
図５は、第一の経路においてバーテックスシェーダ１２０が実行する演算内容を説明する図である。第一の経路においてバーテックスシェーダ１２０は、床面を示す頂点データ（ｘ，ｙ，０）と天井面を示す頂点データ（ｘ，ｙ，ｈ）に行列演算用の数学的処理として導入される同次座標を追加する。そしてバーテックスシェーダ１２０は、同次座標が追加されたそれぞれの頂点データ（ｘ，ｙ，０，１）、（ｘ，ｙ，ｈ，１）の転置行列と座標変換に用いられる４行×４列の行列Ｍとを乗算し、頂点データ（ｘ´，ｙ´,ｚ´）、（ｘ″，ｙ″，ｚ″）として出力する。
【００５２】
図４に戻って、バーテックスシェーダ１２０から出力された頂点データは、セレクタ１７を介してラスタライザ１７０へ供給される。ラスタライザ１７０は、バーテックスシェーダ１２０から出力された頂点データで示される図形を走査線単位に分解し、さらに画素単位のデータセットに分解して出力する。
【００５３】
ラスタライザ１７０の出力がフラグメントシェーダ１８０に渡されると、フラグメントシェーダ１８０は画素色を算出する（ステップＳ４０４）。続いて画素描画部１９０で画素の最終処理を行う（ステップＳ４０５）。画素描画部１９０は、例えば陰影消去で画素の描画／非描画を決定したり、アルファブレンドで混色したりする処理を行う。
【００５４】
続いて画素描画部１９０は、フレームバッファ２３０へ画素を描画するか、又は描画をキャンセルするか否かを決定する（ステップＳ４０６）。グラフィックスＬＳＩ１００は、図形の全画素についてステップＳ４０４からステップＳ４０６までの処理を繰り返す（ステップＳ４０７）。グラフィックスＬＳＩ１００は、１図形（例えば１つの建築物）の描画が完了すると、描画すべき全ての図形に対してステップＳ４０１からステップＳ４０７までの処理を繰り返す（ステップＳ４０８）。
【００５５】
以下に図６乃至図８を参照してバーテックスシェーダ１２０とジオメトリシェーダ１３０の処理をさらに説明する。図６は、二次元の頂点データを説明するための図である。図６（Ａ）は、二次元の頂点データＴを示す図であり、図６（Ｂ）は頂点データＴに示される平面形状を説明する第一の図であり、図６（Ｃ）は頂点データＴに示される平面形状を説明する第二の図である。
【００５６】
例えば図６（Ａ）に示す二次元の頂点ｔ１〜ｔ６からなる頂点データＴがジオメトリシェーダ１３０に入力された場合、６つの頂点ｔ１〜ｔ６に示される平面形状は図６（Ｂ）に示すようなる。このとき頂点データＴは２次元で定義されているため、図６（Ｃ）に示されるように高さ方向の値は反映されていない。
【００５７】
図７は、二次元の頂点データに高さ情報が付加された状態を説明する図である。図７（Ａ）は、頂点データＴが複製されてｚ軸座標が追加された三次元の頂点データＴａを示す図であり、図７（Ｂ）は頂点データＴａに示される床面と天井面を説明する図であり、図７（Ｃ）は頂点データＴａに示される高さ情報を説明する図である。
【００５８】
図７（Ａ）に示すように、頂点データＴａにはｚ軸座標が追加されている。頂点データＴａのうち、頂点Ｐ１〜Ｐ６は頂点データＴの頂点ｔ１〜ｔ６の（ｘ，ｙ）座標にｚ軸座標としてｚ＝０を付加したデータである。頂点データＴａのうち、頂点Ｐ７〜Ｐ１２は、頂点データＴの頂点ｔ１〜ｔ６の複製にｚ座標としてｚ＝ｈを付加したデータである。
【００５９】
図７（Ｂ）では、頂点Ｐ１〜Ｐ６で示される床面の形状と、頂点Ｐ７〜Ｐ１２で示される天井面の形状とが示されている。頂点Ｐ７〜Ｐ１２に示される天井面は、床面の形状を示す頂点Ｐ１〜Ｐ６の複製にｚ＝ｈを追加しただけのものであるため、天井面と床面は同形状となる。
【００６０】
図７（Ｃ）には、床面と天井面に対して高さ方向の値が反映されている。このとき頂点データＴａは、頂点データＴに高さ情報を付加しただけの状態であり、各座標軸との直交性や平行性は保たれている。
【００６１】
図８は、三次元の頂点データが座標変換された状態を説明する図である。図８（Ａ）は座標変換された後の頂点データＴｂを示す図であり、図８（Ｂ）は頂点データＴｂに示される三次元形状を示す図である。
【００６２】
図８（Ａ）に示す頂点データＴｂは、バーテックスシェーダ１２０により頂点データＴａの座標変換を行った後の頂点データである。頂点データＴｂは、バーテックスシェーダ１２０による透視投影法を反映した行列演算（図５参照）により求められる。頂点データＴｂが求められると、頂点データＴｂから図８（Ｂ）に示すような遠近法を施した立体形状が得られる。
【００６３】
以上に説明したように、本実施形態の第一の経路では、バーテックスシェーダ１２０に二次元の頂点データを流す前にジオメトリシェーダ１３０へ頂点データを流す。そして各座標軸と頂点データにより示される平面形状との直交性や平行性があるときに、二次元の頂点データを三次元の頂点データに展開する。よって本実施形態では、ジオメトリシェーダ１３０において、平面形状の高さ分押し出す処理（以下、押し出し処理）において、Ｘ，Ｙ，Ｚ各要素毎の厳密な幾何学的計算を実行する必要がなく、処理の負荷を低減することができる。
【００６４】
また、規格通りの処理手順で描画処理を実行する際には、押し出す処理をグラフィックスＬＳＩ１００の上位制御部であるＣＰＵ等により事前に実行するか、ジオメトリシェーダ１３０で厳密な幾何学的計算を実行するか、後述するストリームバッファを経由して冗長な手順を踏む必要がある。本実施形態では、頂点データを流す経路を第一の経路に切り替えることにより負荷を低減できるため、グラフィックスＬＳＩ１００内で押し出し処理も実行することができる。さらに本実施形態では、負荷が低減されるため、演算時間や消費電力を低減させつつ地図描画の性能を向上させることができる。
【００６５】
以下に、本実施形態の切替制御部１１０の切替制御により実現されるその他の経路について説明する。
【００６６】
図９は、切替制御部１１０の切替制御により実現される第二の経路を説明する図である。
【００６７】
図９に示す第二の経路では、頂点バッファ２１０から頂点データを読み出す点が第一の経路と相違する。
【００６８】
第二の経路において切替制御部１１０は、制御信号６０、６１、６３、６７を出力する。頂点データは、頂点バッファ２１０から読み出され、セレクタ１８、セレクタ１９、セレクタ１３を介してジオメトリシェーダ１３０へ入力される。ジオメトリシェーダ１３０から三次元の頂点データが出力された後は、第一の経路と同様の経路を辿る。
【００６９】
図１０は、第二の経路を実現するための切替制御部による制御例を示す図である。第二の経路では、制御信号６０によりセレクタ１１、セレクタ１９、方向切替部１４０、１５０が制御され、制御信号６１によりセレクタ１２、１３が制御される。また制御信号６７によりセレクタ１７が制御され、制御信号６３によりセレクタ１８が制御される。
【００７０】
第二の経路では、セレクタ１８において頂点バッファ側が選択されているため、セレクタ１１の制御は不問となる。方向切替部１４０、１５０は、経路３０を介してジオメトリシェーダ１３０からバーテックスシェーダ１２０へデータが流れる方向を選択する。セレクタ１９は、制御信号６０に応じてジオメトリシェーダ１３０に接続された経路を選択する。
【００７１】
また第二の経路では、制御信号６１によりセレクタ１２とセレクタ１３とが制御される。セレクタ１２では、制御信号６１によりセレクタ１９と接続されている経路が選択される。尚セレクタ１２は、セレクタ１９においてジオメトリシェーダ１３０側が選択されているため無効となる。セレクタ１３では、制御信号６１によりセレクタ１９と接続されている経路が選択される。
【００７２】
セレクタ１７は、制御信号６７により制御される。セレクタ１７では、バーテックスシェーダ１２０と接続された経路が選択される。よってラスタライザ１７０には、セレクタ１７を介してバーテックスシェーダ１２０の出力が供給される。セレクタ１８は、制御信号６３により制御される。セレクタ１８では、頂点バッファ２１０と接続されている経路が選択される。
【００７３】
本実施形態の設定レジスタ１１１には、第二の経路を実現できるパターンの制御信号が記憶されていても良い。
【００７４】
次に図１１乃至図１４を参照して本実施形態における第三の経路と第四の経路について接続する。本実施形態のグラフィックスＬＳＩ１００では、切替制御部１１０により、第三の経路から第四の経路へ切り替えることにより、バーテックスシェーダ１２０、ジオメトリシェーダ１３０を複数回経由して多重的なビジュアルエフェクトを実現することができる。
【００７５】
図１１は、切替制御部１１０の切替制御により実現される第三の経路を説明する図である。図１１に示す第三の経路では、ストリームアウト１６０を用いてジオメトリシェーダ１３０やバーテックスシェーダ１２０を複数経由する場合に、ストリームバッファ２２０へバーテックスシェーダ１２０の出力データを保存する経路である。
【００７６】
第三の経路において切替制御部１１０は、制御信号６０、６１、６３、６５、６７を出力する。頂点データは、頂点バッファ２１０から読み出され、セレクタ１８、セレクタ１９、セレクタ１３を介してジオメトリシェーダ１３０へ入力される。ジオメトリシェーダ１３０の出力データは、方向切替部１５０、経路３０、方向切替部１４０を介してバーテックスシェーダ１２０へ供給される。
【００７７】
バーテックスシェーダ１２０の出力データは、セレクタ１４、セレクタ１６を介してストリームアウト１６０へ供給される。ストリームアウト１６０の出力データは、ストリームバッファ２２０に保存される。
【００７８】
尚図１１は、頂点バッファ２１０から頂点データを読み出す例としたが、頂点データはグラフィックスＬＳＩ１００の外部から供給されても良い。
【００７９】
図１２は、第三の経路を実現するための切替制御部による制御例を示す図である。第三の経路では、制御信号６０によりセレクタ１１、セレクタ１９、方向切替部１４０、１５０が制御され、制御信号６１によりセレクタ１２、１３が制御される。また制御信号６３によりセレクタ１８が制御され、制御信号６５によりセレクタ１４、１５が制御され、制御信号６７によりセレクタ１６、１７が制御される。
【００８０】
第三の経路では、セレクタ１８において頂点バッファ２１０側が選択されているため、セレクタ１１の制御は不問となる。方向切替部１４０、１５０は、制御信号６０により、経路３０を介してジオメトリシェーダ１３０からバーテックスシェーダ１２０へデータが流れる方向を選択する。セレクタ１９では、制御信号６０によりセレクタ１３に接続された経路が選択される。
【００８１】
セレクタ１２では、制御信号６１によりセレクタ１９と接続された経路が選択されるが、セレクタ１９において頂点バッファ２１０ジオメトリシェーダ１３０側が選択されているためセレクタ１２での選択は無効となる。セレクタ１３では、制御信号６１によりセレクタ１９と接続された経路が選択される。セレクタ１８では、制御信号６３により頂点バッファ２１０と接続された経路が選択される。
【００８２】
セレクタ１４では、制御信号６５により、バーテックスシェーダ１２０の出力データをセレクタ１６へ供給する経路が選択される。セレクタ１５では、ジオメトリシェーダ１３０の出力データをセレクタ１６に供給する経路が選択されている。尚第三の経路では、ジオメトリシェーダ１３０の出力データはバーテックスシェーダ１２０へ供給されるため、セレクタ１５における選択は無効となる。
【００８３】
セレクタ１６では、制御信号６７によりセレクタ１４と接続された経路が選択される。よってバーテックスシェーダ１２０の出力データは、セレクタ１４、１６を介してストリームアウト１６０へ供給される。セレクタ１７では、セレクタ１４と接続された経路が選択されるが、セレクタ１４でセレクタ１６と接続された経路が選択されているためセレクタ１７の選択は無効となる。
【００８４】
尚本実施形態の設定レジスタ１１１には、第三の経路を実現できるパターンの制御信号が記憶されていても良い。
【００８５】
図１３は、切替制御部１１０の切替制御により実現される第四の経路を説明する図である。図１３に示す第四の経路では、第三の経路によりストリームバッファ２２０に保存された頂点データを読み出して再度バーテックスシェーダ１２０へ供給する経路である。
【００８６】
第四の経路において切替制御部１１０は、制御信号６０、６１、６３、６５、６７を出力する。頂点データは、ストリームバッファ２２０から読み出され、セレクタ１８、セレクタ１９、セレクタ１２を介してバーテックスシェーダ１２０へ入力される。バーテックスシェーダ１２０の出力データは、方向切替部１４０、経路３０、方向切替部１５０を介してジオメトリシェーダ１３０へ供給される。
【００８７】
ジオメトリシェーダ１３０の出力データは、セレクタ１５、セレクタ１７を介してラスタライザ１７０へ供給される。ラスタライザ１７０の出力は、フラグメントシェーダ１８０を介して画素描画部１９０へ供給される。画素描画部１９０の出力データはフレームバッファ２３０に保存される。
【００８８】
図１４は、第四の経路を実現するための切替制御部による制御例を示す図である。第四の経路では、制御信号６０によりセレクタ１１、セレクタ１９、方向切替部１４０、１５０が制御され、制御信号６１によりセレクタ１２、１３が制御される。また制御信号６３によりセレクタ１８が制御され、制御信号６５によりセレクタ１４、１５が制御され、制御信号６７によりセレクタ１６、１７が制御される。
【００８９】
第四の経路では、セレクタ１８においてストリームバッファ２２０側が選択されているため、セレクタ１１の制御は不問となる。方向切替部１４０、１５０は、制御信号６０により、経路３０を介してバーテックスシェーダ１２０からジオメトリシェーダ１３０へデータが流れる方向を選択する。セレクタ１９では、制御信号６０によりセレクタ１２に接続された経路が選択される。
【００９０】
セレクタ１２では、制御信号６１によりセレクタ１９と接続された経路が選択される。セレクタ１３では、制御信号６１によりセレクタ１９と接続された経路が選択されるが、セレクタ１９でセレクタ１２と接続された経路が選択されているため、セレクタ１３での選択は無効となる。セレクタ１８では、制御信号６３によりストリームバッファ２２０と接続された経路が選択される。
【００９１】
セレクタ１４では、制御信号６５により、バーテックスシェーダ１２０の出力データをセレクタ１７へ供給する経路が選択されが、バーテックスシェーダ１２０の出力データはジオメトリシェーダ１３０へ供給されるためセレクタ１４での選択は無効となる。セレクタ１５では、ジオメトリシェーダ１３０の出力データをセレクタ１７に供給する経路が選択されている。
【００９２】
セレクタ１６では、制御信号６７によりセレクタ１５と接続された経路が選択されるが、セレクタ１５はセレクタ１７と接続された経路を選択しているためセレクタ１６での選択は無効である。セレクタ１７では、制御信号６７によりセレクタ１５と接続された経路が選択される。よってジオメトリシェーダ１３０の出力データは、セレクタ１５、セレクタ１７を介してラスタライザ１７０へ供給される。
【００９３】
尚本実施形態の設定レジスタ１１１には、第四の経路を実現できるパターンの制御信号が記憶されていても良い。
【００９４】
以上の説明は、バーテックスシェーダ１２０とジオメトリシェーダ１３０を規格に定められた順序とは逆の順序で実行する形態に関するものである。
【００９５】
ところで本実施形態のグラフィックスＬＳＩ１００では、切替制御部１１０の切替制御により、規格通りの順序でバーテックスシェーダ１２０とジオメトリシェーダ１３０とを実行することもできる。
【００９６】
以下に本実施形態のグラフィックスＬＳＩ１００において規格通りの経路で頂点データを流し、規格通りの順序で処理を実行した場合について説明する。
【００９７】
図１５は、第五の経路を実現するための切替制御部による制御例を示す図である。第五の経路は規格に定められた経路であり、頂点データはバーテックスシェーダ１２０に入力され、バーテックスシェーダ１２０の出力データがジオメトリシェーダ１３０へ入力される。第五の経路では、頂点バッファ２１０か読み出された頂点データが、セレクタ１２を介してバーテックスシェーダ１２０へ供給される。
【００９８】
第五の経路において、セレクタ１１と方向切替部１４０、１５０は、制御信号６０により制御される。セレクタ１２は制御信号６１により制御される。
【００９９】
セレクタ１１では、セレクタ１２において頂点バッファ２１０側が選択されているので、制御信号６０によるセレクタ１１の制御は無効となる。方向切替部１４０、１５０は、制御信号６０により、頂点データがバーテックスシェーダ１２０からジオメトリシェーダ１３０へ流れるように選択される。セレクタ１２では、制御信号６１により、頂点バッファ２１０と接続された経路が選択される。尚セレクタ１２で選択される経路とは、セレクタ１８、セレクタ１９を介してセレクタ１２が頂点バッファ２１０と接続される経路である。
【０１００】
次に、図１６を参照して規定通りの順序で行った描画処理について説明する。図１６は、本実施形態の第五の経路による描画処理を説明するフローチャートである。
【０１０１】
第五の経路において、頂点データ（ｘ，ｙ）が頂点バッファから読み出されると、頂点データはセレクタ１２を介してバーテックスシェーダ１２０に入力される。バーテックスシェーダ１２０は、頂点データ（ｘ，ｙ）にｚ軸座標であるｚ＝０を追加して床面用頂点データを生成し、法線ベクトルを付加する（ステップＳ１６０１）。
【０１０２】
ステップＳ１６０１において頂点データ（ｘ，ｙ，０）、法線ベクトル（０，０，１）が生成されると、バーテックスシェーダ１２０は、頂点データと高さ情報ｈでスケーリングした法線ベクトルを座標変換する（ステップＳ１６０２）。
ステップＳ１６０２において座標変換が行われると、変換後の頂点データ（ｘ´,ｙ´，ｚ´）と法線ベクトル（ｎｘ´，ｎｙ´，ｎｚ´）がジオメトリシェーダ１３０に入力される。
【０１０３】
ジオメトリシェーダ１３０では、座標変換された床面用の頂点データ（ｘ´,ｙ´，ｚ´）を法線ベクトル（ｎｘ´，ｎｙ´，ｎｚ´）方向に引き延ばし、天井面の平面形状を示す頂点データ（ｘ´´,ｙ´´，ｚ´´）を生成する（ステップＳ１６０３）。
【０１０４】
ステップＳ１６０３で生成された頂点データはラスタライザ１７０へ供給されて、図４のステップＳ４０３以降の処理が実行される。
【０１０５】
図１７に、ステップＳ１６０２とステップＳ１６０３で行われる演算の式を示す。図１７において、Ｗは行列演算用の数学的処理として導入される同次座標であり、Ｍは座標変換に用いられる４行×４列の行列であり、ｔは転置行列を表す添字である。
【０１０６】
このように規定通りにバーテックスシェーダ１２０、ジオメトリシェーダ１３０の順に実行した場合、ジオメトリシェーダ１３０、バーテックスシェーダ１２０の順に実行した場合と比べて処理が複雑であることがわかる。
【０１０７】
次に図１８乃至図２１を参照して本実施形態における第六の経路と第七の経路について説明する。本実施形態のグラフィックスＬＳＩ１００では第六の経路と第七の経路とを切り替えて処理を行うことにより、第二の経路と等価の処理を行うことができる。
【０１０８】
図１８は、切替制御部１１０の切替制御により実現される第六の経路を説明する図である。
【０１０９】
図１８に示す第六の経路において切替制御部１１０は、制御信号６０、６１、６３、６５を出力する。頂点データは、頂点バッファ２１０から読み出され、セレクタ１８、セレクタ１２を介してバーテックスシェーダ１２０へ入力される。このときバーテックスシェーダ１２０は、Ｚ＝０を付加して３次元化するのみで、座標変換等の処理を実行せず、頂点データを素通りさせる。バーテックスシェーダ１２０から出力された頂点データは、方向切替部１４０、経路３０、方向切替部１５０を介してジオメトリシェーダ１３０へ供給される。
【０１１０】
ジオメトリシェーダ１３０では、床面の平面形状に対して押し出し処理が実行され、天井面として複製される。ジオメトリシェーダ１３０の出力データは、セレクタ１５を介してストリームアウト１６０へ供給される。ストリームアウト１６０の出力はストリームバッファ２２０に保存される。ここでストリームバッファに保存されたデータは、ジオメトリシェーダ１３０による処理のみが施された状態の頂点データである。
【０１１１】
図１９は、第六の経路を実現するための切替制御部による制御例を示す図である。第六の経路では、制御信号６０によりセレクタ１１、方向切替部１４０、１５０が制御され、制御信号６１によりセレクタ１２が制御される。また制御信号６３によりセレクタ１８が制御され、制御信号６５によりセレクタ１５が制御される。
【０１１２】
セレクタ１１は、制御信号６０により制御されるが、セレクタ１２においてセレクタ１８側が選択されているため、セレクタ１１の制御は無効となる。方向切替部１４０、１５０は、制御信号６０により、経路３０を介してバーテックスシェーダ１２０からジオメトリシェーダ１３０へデータが流れる方向を選択する。
【０１１３】
セレクタ１２では、制御信号６１によりセレクタ１８と接続された経路が選択されている。セレクタ１８では、制御信号６３により頂点バッファ２１０と接続された経路が選択されている。よってバーテックスシェーダ１２０には、頂点バッファ２１０から読み出された頂点データが供給される。
【０１１４】
セレクタ１５では、制御信号６５によりストリームアウト１６０と接続された経路が選択される。よってジオメトリシェーダ１３０の出力データはセレクタ１５を介してストリームアウト１６０へ供給される。
【０１１５】
尚本実施形態の設定レジスタ１１１には、第六の経路を実現できるパターンの制御信号が記憶されていても良い。
【０１１６】
図２０は、切替制御部１１０の切替制御により実現される第七の経路を説明する図である。図２０に示す第七の経路では、第六の経路によりストリームバッファ２２０に保存された頂点データを読み出して再度バーテックスシェーダ１２０へ供給する経路である。
【０１１７】
第七の経路において切替制御部１１０は、制御信号６０、６１、６３、６５を出力する。頂点データは、ストリームバッファ２２０から読み出され、セレクタ１８、セレクタ１２を介してバーテックスシェーダ１２０へ入力される。頂点データが入力されると、バーテックスシェーダ１２０は処理を実行する。バーテックスシェーダ１２０の出力データは、方向切替部１４０、経路３０、方向切替部１５０を介してジオメトリシェーダ１３０へ供給される。
【０１１８】
バーテックスシェーダ１２０の出力データがジオメトリシェーダ１３０に供給されると、ジオメトリシェーダ１３０は処理を実行せずにバーテックスシェーダ１２０の出力データを素通りさせる。バーテックスシェーダ１２０の出力データは、セレクタ１５を介してラスタライザ１７０へ供給される。ラスタライザ１７０の出力は、フラグメントシェーダ１８０を介して画素描画部１９０へ供給される。画素描画部１９０の出力データはフレームバッファ２３０に保存される。
【０１１９】
図２１は、第七の経路を実現するための切替制御部による制御例を示す図である。制御信号６０によりセレクタ１１、方向切替部１４０、１５０が制御され、制御信号６１によりセレクタ１２が制御される。また制御信号６３によりセレクタ１８が制御され、制御信号６５によりセレクタ１５が制御される。
【０１２０】
セレクタ１１は、制御信号６０により制御されるが、セレクタ１２においてセレクタ１８側が選択されているため、セレクタ１１の制御は無効となる。方向切替部１４０、１５０は、制御信号６０により、経路３０を介してバーテックスシェーダ１２０からジオメトリシェーダ１３０へデータが流れる方向を選択する。
【０１２１】
セレクタ１２では、制御信号６１によりセレクタ１８と接続された経路が選択されている。セレクタ１８では、制御信号６３によりストリームバッファ２２０と接続された経路が選択されている。よってバーテックスシェーダ１２０には、ストリームバッファ２２０から読み出されたデータが供給される。
【０１２２】
セレクタ１５では、制御信号６５によりラスタライザ１７０と接続された経路が選択される。よってジオメトリシェーダ１３０の出力データはセレクタ１５を介してラスタライザ１７０へ供給される。
【０１２３】
尚本実施形態の設定レジスタ１１１には、第七の経路を実現できるパターンの制御信号が記憶されていても良い。
【０１２４】
このように本実施形態のグラフィックスＬＳＩ１００では、第六の経路においてストリームバッファ２２０にジオメトリシェーダ１３０の出力データを保存しておく。次に切り替え制御部１１０は、第六の経路を第七の経路へ切り替えてストリームバッファ２２０からジオメトリシェーダ１３０の出力データを読み出し、バーテックスシェーダ１２０に入力することで、規定通りの処理手順でも第二の経路と等価の処理を行うことができる。
【０１２５】
次に図２２を参照して第六の経路と第七の経路とに沿った手順で描画処理を行った場合の動作について説明する。図２２は、第六の経路と第七の経路とに沿った手順で描画処理を行った場合の動作を説明するフローチャートである。
【０１２６】
第六の経路において、頂点バッファから頂点データ（ｘ，ｙ）が読み出されてバーテックスシェーダ１２０に入力されると、バーテックスシェーダ１２０はダミー処理を実行して頂点データを素通りさせる（ステップＳ２２０１）。バーテックスシェーダ１２０によるダミー処理とは、入力された頂点データ（ｘ，ｙ）を（ｘ，ｙ，０）に拡張するだけで、三次元の頂点データとして出力する処理である。よって第六の経路においてバーテックスシェーダ１２０は座標を変換する処理を行っていない。
【０１２７】
バーテックスシェーダ１２０から出力された頂点データ（ｘ，ｙ，０）は、ジオメトリシェーダ１３０に入力される。ジオメトリシェーダ１３０では、頂点データ（ｘ，ｙ，０）の複製を生成してｚ＝ｈを代入し、床面の平面形状を示す頂点データと天井面の平面形状を示す頂点データとを生成する（ステップＳ２２０２）。
【０１２８】
ジオメトリシェーダ１３０は生成した頂点データを出力する。ジオメトリシェーダ１３０から出力された頂点データは、ストリームアウト１６０によりストリームバッファ２２０に書き込まれて保存される（ステップＳ２２０３）。
【０１２９】
ストリームバッファ２２０にジオメトリシェーダ１３０の出力データである頂点データが保存されると、切替制御部１１０は第七の経路と対応したパターンの制御信号を出力し、データの流れる経路を第六の経路から第七の経路に切り替える。
【０１３０】
第七の経路に切り替えられると、バーテックスシェーダ１２０はストリームバッファ２２０から頂点データを読み出す（ステップＳ２２０４）。バーテックスシェーダ１２０は、読み出した頂点データの座標を変換する処理を行う（ステップＳ２２０５）。尚ステップＳ２２０５におけるバーテックスシェーダ１２０の処理は、図４のステップＳ４０２で説明した通りである。
【０１３１】
第七の経路においてバーテックスシェーダ１２０による座標変換が実行されると、変換後の頂点データがジオメトリシェーダ１３０へ入力される。ジオメトリシェーダ１３０は、入力された頂点データに対してダミー処理を行う（ステップＳ２２０６）。ジオメトリシェーダ１３０におけるダミー処理とは、バーテックスシェーダ１２０により座標変換された頂点データを素通りさせる処理である。よって第七の経路では、ジオメトリシェーダ１３０は天井面を追加する押し上げ処理を行っていない。
【０１３２】
ステップＳ２２０６においてジオメトリシェーダ１３０から出力された座標変換後の頂点データは、ラスタライザ１７０へ供給されて、図４のステップＳ４０３以降の処理が施される。
【０１３３】
このように、本実施形態のグラフィックスＬＳＩ１００では、第六の経路と第七の経路とを切り替えることで、規格通りの手順で第二の経路を用いた処理と等価の処理を行うこともできる。しかしながら、冗長なダミー処理やストリームバッファへの余計なメモリアクセスが発生するため、第二の経路を用いた処理がより優れていることは明らかである。
【０１３４】
以上に説明した本実施形態のグラフィックスＬＳＩ１００は、例えば地図描画システムに搭載されても良い。図２３は、本実施形態のグラフィックスＬＳＩが搭載された地図描画システムの構成を説明する図である。
【０１３５】
地図描画システム３００は、グラフィックスＬＳＩ１００、グラフィックスメモリ２００、ディスプレイ３１０、ＣＰＵ３２０、メインメモリ３３０、ＩＯ（Input Output）コントローラ３４０、ＧＰＳ（Global Positioning System）ユニット３５０、ジャイロセンサ３６０、光学ディスクドライブユニット３７０、ＨＤＤ（Hard Disk Dive）ユニット３８０を有する。
【０１３６】
ディスプレイ３１０は、グラフィックスＬＳＩ１００により描画された地図等を表示させる。ＣＰＵ３２０は、地図描画システム３００の全体を制御する。メインメモリ３３０は、地図描画システム３００において設定された設定値やＣＰＵ３２０による演算の結果等が記憶される。ＩＯコントローラ３４０は、ＧＰＳユニット３５０、ジャイロセンサ３６０、光学ディスクドライブユニット３７０、ＨＤＤユニット３８０とＣＰＵ３２０との通信において、データの入出力を制御する。
【０１３７】
ＧＰＳユニット３５０は、現在位置を検出する。ジャイロセンサ３６０は、各方向における現在の加速度を検出する。光学ディスクドライブユニット３７０は、例えばＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）等の光学ディスクの読み込み等を行う。ＨＤＤユニット３８０は、ＣＰＵ３２０により実行されるアプリケーション等が記憶される。
【０１３８】
地図描画システム３００では、例えばＣＰＵ３２０は、ＧＰＳユニット３５０により検出された自車の位置や、ジャイロセンサ３６０により検出された現在の加速度等に基づきグラフィックスＬＳＩ１００へ経路を選択する選択信号を出力する。例えばＣＰＵ３２０は、現在の加速度が大きい場合には、グラフィックスＬＳＩ１００において最も処理の負荷が小さく演算時間の短い経路を選択する選択信号を出力しても良い。グラフィックスＬＳＩ１００は、上述したように、ＣＰＵ３２０から供給される選択信号に基づき経路を選択し、選択された経路に対応したパターンの制御信号を出力する。
【０１３９】
地図描画システム３００は、例えば自動車等に搭載されるナビゲーション装置により実現されても良い。また地図描画システム３００は、据え置き型の一般のパーソナルコンピュータや携帯電話等の携帯型端末装置等により実現されても良い。
【０１４０】
尚以上に述べた実施形態は、以上に述べた実施形態の機能を実行する装置、以上に述べた実施形態の機能をコンピュータに実行させるためのプログラム、以上に述べた実施形態の機能をコンピュータが処理する方法に適用できる。
【０１４１】
本発明の実施形態は、以下に記載する付記のような構成が考えられる。
（付記１）
描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張機能を含むジオメトリシェーダと、
前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換機能を含むバーテックスシェーダと、
上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手段と、を有するグラフィックス用半導体集積回路。
（付記２）
前記ジオメトリシェーダは、
前記二次元の頂点座標の複製を生成し、一方の前記二次元の頂点座標に０を追加し、他方の前記二次元の頂点座標に前記オブジェクトの高さ情報を追加して、前記三次元の形状を示す頂点座標を生成する機能を有する付記１記載のグラフィック用半導体集積回路。
（付記３）
前記ジオメトリシェーダと前記バーテックスシェーダとを接続する経路と、
前記制御手段による切り替え制御に応じて前記経路において情報が流れる方向を切り替える方向切替手段と、を有する付記１又は２記載のグラフィックス用半導体集積回路。
（付記４）
前記制御手段による切り替え制御に応じて前記ジオメトリシェーダか、又は前記バーテックスシェーダの何れか一方に前記複数の頂点座標を供給する選択手段を有する付記１乃至３の何れか一項に記載のグラフィックス用半導体集積回路。
（付記５）
前記制御手段は、
前記実行順序に対応した制御信号が記憶された記憶手段を有し、
前記上位制御手段から前記実行順序を選択する選択信号が供給されたとき、選択された前記実行順序と対応した制御信号を出力する付記１乃至４の何れか一項に記載のグラフィックス用半導体集積回路。
（付記６）
前記方向切替手段と前記選択手段とは、
前記選択手段により前記ジオメトリシェーダが選択されたとき、前記方向切替手段により前記ジオメトリシェーダから前記バーテックスシェーダへ前記情報が流れるように前記情報が流れる方向が切り替えられ、
前記選択手段により前記バーテックスシェーダが選択されたとき、前記方向切替手段により前記バーテックスシェーダから前記ジオメトリシェーダへ前記情報が流れるように前記情報が流れる方向が切り替えられる付記４又は５記載のグラフィックス用半導体集積回路。
（付記７）
前記方向切替手段と前記選択手段とは、同一の制御信号により制御される付記６記載のグラフィックス用半導体集積回路。
（付記８）
現在位置情報を取得する取得手段と、
前記現在位置情報に基づく前記描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張機能を含むジオメトリシェーダと、
前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換機能を含むバーテックスシェーダと、
上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手段と、を有する地図描画システム。
（付記９）
ジオメトリシェーダと、バーテックスシェーダと、フラグメントシェーダ又はピクセルシェーダと、を有するグラフィックス用半導体集積回路における地図描画方法であって、
前記ジオメトリシェーダにおいて描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張手順と、
前記バーテックスシェーダにおいて前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換手順と、
上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手順と、を実行する地図描画方法。
【０１４２】
本発明の実施形態は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【０１４３】
【図１】本発明の一実施形態のグラフィックスＬＳＩを説明する図である。
【図２】切替制御部１１０の切替制御により実現される第一の経路を説明する図である。
【図３】第一の経路を実現するための切替制御部による制御例を示す図である。
【図４】第一の経路による描画処理を説明するフローチャートである。
【図５】第一の経路においてバーテックスシェーダ１２０が実行する演算内容を説明する図である。
【図６】二次元の頂点データを説明するための図である。
【図７】二次元の頂点データに高さ情報が付加された状態を説明する図である。
【図８】三次元の頂点データが座標変換された状態を説明する図である。
【図９】切替制御部１１０の切替制御により実現される第二の経路を説明する図である。
【図１０】第二の経路を実現するための切替制御部による制御例を示す図である。
【図１１】切替制御部１１０の切替制御により実現される第三の経路を説明する図である。
【図１２】第三の経路を実現するための切替制御部による制御例を示す図である。
【図１３】切替制御部１１０の切替制御により実現される第四の経路を説明する図である。
【図１４】第四の経路を実現するための切替制御部による制御例を示す図である。
【図１５】第五の経路を実現するための切替制御部による制御例を示す図である。
【図１６】本実施形態の第五の経路による描画処理を説明するフローチャートである。
【図１７】ステップＳ１６０２とステップＳ１６０３で行われる演算の式を示す図である。
【図１８】切替制御部１１０の切替制御により実現される第六の経路を説明する図である。
【図１９】第六の経路を実現するための切替制御部による制御例を示す図である。
【図２０】切替制御部１１０の切替制御により実現される第七の経路を説明する図である。
【図２１】第七の経路を実現するための切替制御部による制御例を示す図である。
【図２２】第六の経路と第七の経路とに沿った手順で描画処理を行った場合の動作を説明するフローチャートである。
【図２３】本実施形態のグラフィックスＬＳＩが搭載された地図描画システムの構成を説明する図である。
【符号の説明】
【０１４４】
１００  グラフィックスＬＳＩ
１１０  切替制御部
１１１  設定レジスタ
１２０  バーテックスシェーダ
１３０  ジオメトリシェーダ
１４０、１５０  方向切替部
１６０  ストリームアウト
１７０  ラスタライザ
１８０  フラグメントシェーダ
１９０  画素描画部
２００  グラフィックスメモリ
２１０  頂点バッファ
２２０  ストリームバッファ
２３０  フレームバッファ
【図１】
2010152702.tif 000003
【図２】
2010152702.tif 000004
【図３】
2010152702.tif 000005
【図４】
2010152702.tif 000006
【図５】
2010152702.tif 000007
【図６】
2010152702.tif 000008
【図７】
2010152702.tif 000009
【図８】
2010152702.tif 000010
【図９】
2010152702.tif 000011
【図１０】
2010152702.tif 000012
【図１１】
2010152702.tif 000013
【図１２】
2010152702.tif 000014
【図１３】
2010152702.tif 000015
【図１４】
2010152702.tif 000016
【図１５】
2010152702.tif 000017
【図１６】
2010152702.tif 000018
【図１７】
2010152702.tif 000019
【図１８】
2010152702.tif 000020
【図１９】
2010152702.tif 000021
【図２０】
2010152702.tif 000022
【図２１】
2010152702.tif 000023
【図２２】
2010152702.tif 000024
【図２３】
2010152702.tif 000025