説明

グラフィックス用半導体集積回路

【課題】演算時間や消費電力の増大を抑止し、地図描画の性能を向上させることが可能なグラフィックス用半導体集積回路を提供することを目的とする。
【解決手段】上記課題は、描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張機能を含むジオメトリシェーダと、前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換機能を含むバーテックスシェーダと、上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手段と、を有するグラフィックス用半導体集積回路により達成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の頂点座標を用いて三次元の立体画像を描画するグラフィックス用半導体集積回路に関する。
【背景技術】
【0002】
近年のカーナビゲーションシステム等に代表される地図描画では、ビル等の建築物を立体的に描画する三次元の画像表示が普及している。三次元の画像表示は、例えばプログラマが画像生成アルゴリズムを定義したシェーダプログラムが組み込まれた用途特化型プロセッサ(プログラマブルシェーダ)を搭載したグラフィックLSI(Large Scale Integration)等により実現される。
【0003】
グラフィックスLSIで三次元の画像表示を行う簡易的な方法として、建築物の厳密な三次元頂点データを使用する代わりに、例えば建築物の平面形状を示す二次元の頂点データと建築物の高さ情報とを使用するものがある。システムは、二次元の頂点データと高さ情報を保持しており、グラフィックスLSIの外部のCPU(Central Processing Unit)に二次元の頂点データを高さ分押し出して三次元の頂点データにする加工を実行させる。グラフィックスLSIは、この三次元の頂点データを用いて描画を行う。
【0004】
あるいは、上述した押し出し処理をCPUの代わりにグラフィックスLSIで実行する方法も考えられる。この場合、二通りの方法が可能である。描画処理の実行手順は、規格によりバーテックスシェーダ、ジオメトリシェーダ、ピクセルシェーダの順で規定されている。
【0005】
そこで第一の方法として、バーテックスシェーダで二次元頂点データに高さ0を付加して三次元化した頂点と、バーテックスシェーダで生成した、平面形状に直交し建築物の高さ分の長さの法線ベクトルとを、バーテックスシェーダで座標変換する。続いて、ジオメトリシェーダにおいて、座標変換後の平面形状を複製し、座標変換後の法線ベクトルに沿って押し出す。
【0006】
一方、第二の方法として、規格に定められたストリームアウトとストリームバッファを利用する方法も原理的には可能である。まず、CPUあるいはバーテックスシェーダで、二次元頂点データに高さ0を付加して三次元化する。続いてジオメトリシェーダで、平面形状を複製して高さ0を建築物の高さに置き換える。続いてこの頂点データを、ストリームアウト経由でストリームバッファに保存する。続いて、ストリームバッファからこの頂点データを読み出してバーテックスシェーダに渡し、バーテックスシェーダで座標変換する。続いて、ジオメトリシェーダを何もせずに素通りさせる。
【特許文献1】特開2006−221650号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述した描画処理において、規定に従ってバーテックスシェーダ、ジオメトリシェーダの順に実行する場合、始めに二次元の頂点データ(x−y平面上の座標)はバーテックスシェーダで三次元の描画(透視射影)を行うための座標に変換される。よって変換後の座標は、(X,Y,Z)座標軸に対するx−y平面の直交性が失われた座標となる。このためジオメトリシェーダでは、変換後の座標で示される平面形状の高さ分押し出す際に、X,Y,Z各要素毎の厳密な幾何学的計算を実行する必要があり、演算時間や消費電力の増大を引き起こす。また演算の負荷の増大による地図描画の性能が低下する虞がある。
【0008】
またストリームアウトとストリームバッファを用いて擬似的にジオメトリシェーダをバーテックスシェーダよりも先行して実行させる手法がある。この手法では、最初に頂点データをバーテックスシェーダに入力する段階で、頂点データを素通りさせてジオメトリシェーダを実行する。そしてジオメトリシェーダの実行結果をストリームアウトを経由してストリームバッファに保存する。続いてストリームバッファから頂点データを読み出してバーテックスシェーダを実行した後にジオメトリシェーダを素通りさせる。よって上記手法では、変換する前の座標で示される平面形状を単純に高さ分だけ押し出した後に座標変換すれば良いため、平面形状を押し出す処理は簡素化することができるが、頂点データを素通りさせる、ストリームバッファからの外部メモリ読み出しを伴う等の冗長な処理が発生する。したがって演算時間や消費電力の増大を引き起こす。
【0009】
よって本発明の目的は、演算時間や消費電力の増大を抑止し、地図描画の性能を向上させることが可能なグラフィックス用半導体集積回路を提供することである。
【課題を解決するための手段】
【0010】
上記課題を解決するため、描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張機能を含むジオメトリシェーダと、前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換機能を含むバーテックスシェーダと、上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手段と、を有する。
【発明の効果】
【0011】
開示のグラフィックス用半導体集積回路では、演算時間や消費電力の増大を抑止し、地図描画の性能を向上させることができる。
【発明を実施するための最良の形態】
【0012】
以下、本発明の一実施形態を図面に基づいて説明する。
【0013】
本実施形態では、バーテックスシェーダとジオメトリシェーダの実行順序の切替制御を行う切替制御手段を設け、頂点データをジオメトリシェーダに直接入力し、ジオメトリシェーダ、バーテックスシェーダの順に実行させる。
【0014】
図1は、本発明の一実施形態のグラフィックスLSIを説明する図である。
【0015】
本実施形態のグラフィックスLSI100は、切替制御部110と、バーテックスシェーダ120と、ジオメトリシェーダ130と、方向切替部140、150と、ストリームアウト160と、ラスタライザ170と、フラグメントシェーダ180と、画素描画部190と、経路選択用のセレクタ11〜19と、を有する。
【0016】
本実施形態のグラフィックスLSI100では、切替制御部110から出力される制御信号によりセレクタ11〜19と方向切替部140、150とを制御して、頂点データが流れる経路を切り替える。本実施形態では、頂点データの流れる経路を切り替えることにより、バーテックスシェーダ120とジオメトリシェーダ130の実行順序を変更することができる。
【0017】
またグラフィックスLSI100は、グラフィックスメモリ200と接続されている。グラフィックスメモリ200は、頂点データが格納された頂点バッファ210、ストリームアウト160を介してジオメトリシェーダ130から出力されるデータが保存されるストリームバッファ220、画素描画部190から出力されるデータが保存されるフレームバッファ230を有する。
【0018】
本実施形態のグラフィックスLSI100において、外部から頂点データが入力された場合、頂点データはセレクタ11に供給される。セレクタ11は、頂点データをセレクタ12又はセレクタ13へ供給する。セレクタ12に頂点データが供給された場合、セレクタ12は頂点データをバーテックスシェーダ120へ供給する。セレクタ13に頂点データが供給された場合、セレクタ13は頂点データをジオメトリシェーダ130へ供給する。
【0019】
バーテックスシェーダ120とジオメトリシェーダ130とは、方向切替部140、150を介して経路30で接続されている。方向切替部140、150は、経路30を介してデータの送受信が可能である。方向切替部140から経路30を介して方向切替部150へデータを送信することも可能であるし、方向切替部150から経路30を介して方向切替部140へデータを送信することも可能である。
【0020】
すなわち本実施形態では、バーテックスシェーダ120の出力データをジオメトリシェーダ130へ供給することもできるし、ジオメトリシェーダ130の出力データをバーテックスシェーダ120へ供給することもできる。
【0021】
バーテックスシェーダ120の出力データは、セレクタ14を介してセレクタ16又はセレクタ17に供給される。ジオメトリシェーダ130の出力データは、セレクタ15を介してセレクタ16又はセレクタ17に供給される。
【0022】
セレクタ16は、バーテックスシェーダ120の出力データ又はジオメトリシェーダ130の出力データをストリームアウト160へ供給する。ストリームアウト160の出力は、グラフィックスメモリ200のストリームバッファ220へ供給される。
【0023】
セレクタ17は、バーテックスシェーダ120の出力データ又はジオメトリシェーダ130の出力データをラスタライザ170へ供給する。ラスタライザ170の出力は、フラグメントシェーダ180を介して画素描画部190へ供給される。画素描画部190の出力は、フレームバッファ230へ出力される。
【0024】
セレクタ18は、頂点バッファ210に記憶された頂点データ又はストリームバッファに保存されたデータをセレクタ19へ供給する。セレクタ19は、供給されたデータをセレクタ12又はセレクタ13へ供給する。
【0025】
次に経路選択用のセレクタ11〜19と、方向切替部140、150とを制御する制御信号について説明する。制御信号は、切替制御部110から供給される。
【0026】
切替制御部110は、設定レジスタ111を有する。設定レジスタ111には、例えばグラフィックスLSI100の上位制御手段であるCPU(Central Processing Unit)により、頂点データの流れる経路を実現するための経路毎の制御が設定される。切替制御部110は、CPUから経路を選択する選択信号が供給されると、設定レジスタ111の設定に従って各制御信号の出力を制御する。
【0027】
例えば切替制御部110は、上位制御部であるCPUにより後述する第一の経路が選択されると、第一の経路に対応した制御信号を出力する。また上位制御部であるCPUにより後述する第二の経路が選択されると、切替制御部110は第二の経路に対応したパターンの制御信号を出力する。
【0028】
以下に切替制御部110から出力される制御信号とセレクタ11〜19、方向切替部140、150との関係について説明する。
【0029】
切替制御部110は、選択された経路に応じて制御信号60、61、63、65、67を出力する。制御信号60は、セレクタ11、19、方向切替部140、150を制御する。
【0030】
セレクタ11は、制御信号60に応じて頂点データをセレクタ12又はセレクタ13のどちらかに供給する。セレクタ19は、制御信号60に応じてセレクタ18から供給されるデータをセレクタ12又はセレクタ13のどちらかに供給する。方向切替部140、150は、制御信号60に応じてデータが経路30を流れる方向を制御する。
【0031】
制御信号61は、セレクタ12、13を制御する。セレクタ12は、制御信号61に応じて、セレクタ11を介して供給された頂点データか、又はセレクタ19を介して供給されたデータをバーテックスシェーダ120へ供給する。セレクタ13は、制御信号61に応じて、セレクタ11を介して供給された頂点データか、又はセレクタ19を介して供給されたデータをジオメトリシェーダ130へ供給する。
【0032】
制御信号63は、セレクタ18を制御する。セレクタ18は、制御信号63に応じて頂点バッファ210から読み出した頂点データか、又はストリームバッファ220から読み出してデータをセレクタ19へ供給する。
【0033】
制御信号65は、セレクタ14、15を制御する。セレクタ14は、制御信号65に応じてバーテックスシェーダ120の出力データをセレクタ16か、又はセレクタ17に供給する。セレクタ15は、制御信号65に応じてジオメトリシェーダ130の出力データをセレクタ16か、又はセレクタ17に供給する。
【0034】
制御信号67は、セレクタ16、17を制御する。セレクタ16は、制御信号67に応じて、セレクタ14を介して供給されるバーテックスシェーダ120の出力データか、又はセレクタ15を介して供給されるジオメトリシェーダ130の出力データをストリームアウト160へ供給する。セレクタ17は、制御信号67に応じて、セレクタ14を介して供給されるバーテックスシェーダ120の出力データか、又はセレクタ15を介して供給されるジオメトリシェーダ130の出力データをラスタライザ170へ供給する。
【0035】
以下に、本実施形態のグラフィックスLSI100における経路の切り替えについて説明する。図2は、切替制御部110の切替制御により実現される第一の経路を説明する図である。図2では、ストリームアウト220を用いずにジオメトリシェーダ130からバーテックスシェーダ120へデータを1回流す経路を示している。尚図2ではデータの経路のみ図示した。
【0036】
図2の例において、切替制御部110は、制御信号60、67を出力する。グラフィックスLSI100に入力された頂点データは、セレクタ11に供給される。セレクタ11では、制御信号60によりジオメトリシェーダ130へ頂点データを供給する経路が選択されている。よって頂点データはセレクタ11を介してジオメトリシェーダ130へ供給される。
【0037】
方向切替部140、150では、制御信号60により、ジオメトリシェーダ130からバーテックスシェーダ120へデータを流す経路が選択されている。よって、ジオメトリシェーダ130で処理が実行されると、ジオメトリシェーダ130の出力データは方向切替部150、経路30、方向切替部140を介してバーテックスシェーダ120へ供給される。
【0038】
セレクタ17では、制御信号67により、バーテックスシェーダ120の出力データをラスタラザ170へ供給する経路が選択されている。よってバーテックスシェーダ120の出力データは、セレクタ17を介してラスタライザ170へ供給される。バーテックスシェーダ120の出力データは、ラスタライザ170、フラグメントシェーダ180、画素描画部190を介して最終的にフレームバッファ230へ保存される。
【0039】
このように本実施形態では、ストリームアウト160を介さずにジオメトリシェーダ130とバーテックスシェーダ120の実行の順序を切り替えることができる。
【0040】
図3は、第一の経路を実現するための切替制御部による制御例を示す図である。第一の経路において切替制御部110は、制御信号60により、セレクタ11による経路の選択と、方向切替部140、150における方向の選択とを制御する。セレクタ11は、制御信号60に応じてジオメトリシェーダ130に接続された方の経路を選択する。
【0041】
方向切替部140、150は、経路30を介してジオメトリシェーダ130からバーテックスシェーダ120へデータが流れる経路を選択する。例えば方向切替部140はデータの送受信のうちデータの送信を選択し、方向切替部150はデータの送受信のうちデータの受信を選択する。
【0042】
本実施形態のセレクタ11は、例えば制御信号60がハイレベル(以下、Hレベル)のときジオメトリシェーダ130と接続された方の経路を選択しても良い。また本実施形態の方向切替部140、150は、制御信号60がHレベルのとき、ジオメトリシェーダ130からバーテックスシェーダ120へデータが流れる経路を選択しても良い。またセレクタ11は、例えば制御信号60がローレベル(以下、Lレベル)のときバーテックスシェーダ120と接続された方の経路を選択しても良い。また本実施形態の方向切替部140、150は、制御信号60がLレベルのときバーテックスシェーダ120からジオメトリシェーダ130へデータが流れる経路を選択しても良い。
【0043】
また切替制御部110は、制御信号67により、セレクタ17による経路の選択を制御する。セレクタ17は、制御信号67に応じてバーテックスシェーダ120と接続された経路を選択する。尚本実施形態のセレクタ17は、制御信号67がHレベルのときバーテックスシェーダ120と接続された経路を選択し、制御信号67がLレベルのときジオメトリシェーダ130と接続された経路を選択しても良い。
【0044】
また本実施形態の設定レジスタ111には、第一の経路と対応したパターンの制御信号として、「制御信号60=Hレベル、制御信号67=Hレベル」が記憶されていても良い。
【0045】
次に図4を参照して第一の経路による描画処理を説明する。図4は、本実施形態の第一の経路による描画処理を説明するフローチャートである。
【0046】
第一の経路において、頂点データ(x,y)がグラフィックスLSI100に供給されると、頂点データはセレクタ11を介してジオメトリシェーダ130に入力される。ジオメトリシェーダ130は、頂点データ(x,y)を三次元で描画するために、頂点データ(x,y)に高さを示す情報を付与する(ステップS401)。
【0047】
ステップS401において、ジオメトリシェーダ130は頂点データ(x,y)の複製を生成する。そしてジオメトリシェーダ130は、2組の頂点データにz軸座標のz=0、z=hをそれぞれ付与した三次元の頂点データを生成する。ジオメトリシェーダ130で生成される三次元の頂点データは、(x,y,0)と、(x,y,h)である。
【0048】
尚hは、二次元の頂点データ(x,y)により示される平面形状の高さを示す高さ情報である。高さ情報hは、例えば頂点バッファ210等に予め記憶されており、ジオメトリシェーダ130が事前に取得していても良い。
【0049】
三次元の頂点データ(x,y,0)は、二次元の頂点データ(x,y)により示される平面形状を三次元とした際の床面を示す頂点データである。三次元の頂点データ(x,y,h)は、二次元の頂点データ(x,y)により示される平面形状を三次元とした際の天井面を示す頂点データである。ジオメトリシェーダ130で三次元の頂点データ(x,y,0)、(x,y,h)が生成されると、この三次元の頂点データはバーテックスシェーダ120へ渡される。
【0050】
バーテックスシェーダ120では、三次元の頂点データで示される立体を傾けて鳥瞰表示させるための座標変換を行う(ステップS402)。バーテックスシェーダ120では、床面を示す頂点データ(x,y,0)と天井面を示す頂点データ(x,y,h)について座標変換を行う。図5を参照してステップS402におけるバーテックスシェーダ120の演算内容を説明する。
【0051】
図5は、第一の経路においてバーテックスシェーダ120が実行する演算内容を説明する図である。第一の経路においてバーテックスシェーダ120は、床面を示す頂点データ(x,y,0)と天井面を示す頂点データ(x,y,h)に行列演算用の数学的処理として導入される同次座標を追加する。そしてバーテックスシェーダ120は、同次座標が追加されたそれぞれの頂点データ(x,y,0,1)、(x,y,h,1)の転置行列と座標変換に用いられる4行×4列の行列Mとを乗算し、頂点データ(x´,y´,z´)、(x″,y″,z″)として出力する。
【0052】
図4に戻って、バーテックスシェーダ120から出力された頂点データは、セレクタ17を介してラスタライザ170へ供給される。ラスタライザ170は、バーテックスシェーダ120から出力された頂点データで示される図形を走査線単位に分解し、さらに画素単位のデータセットに分解して出力する。
【0053】
ラスタライザ170の出力がフラグメントシェーダ180に渡されると、フラグメントシェーダ180は画素色を算出する(ステップS404)。続いて画素描画部190で画素の最終処理を行う(ステップS405)。画素描画部190は、例えば陰影消去で画素の描画/非描画を決定したり、アルファブレンドで混色したりする処理を行う。
【0054】
続いて画素描画部190は、フレームバッファ230へ画素を描画するか、又は描画をキャンセルするか否かを決定する(ステップS406)。グラフィックスLSI100は、図形の全画素についてステップS404からステップS406までの処理を繰り返す(ステップS407)。グラフィックスLSI100は、1図形(例えば1つの建築物)の描画が完了すると、描画すべき全ての図形に対してステップS401からステップS407までの処理を繰り返す(ステップS408)。
【0055】
以下に図6乃至図8を参照してバーテックスシェーダ120とジオメトリシェーダ130の処理をさらに説明する。図6は、二次元の頂点データを説明するための図である。図6(A)は、二次元の頂点データTを示す図であり、図6(B)は頂点データTに示される平面形状を説明する第一の図であり、図6(C)は頂点データTに示される平面形状を説明する第二の図である。
【0056】
例えば図6(A)に示す二次元の頂点t1〜t6からなる頂点データTがジオメトリシェーダ130に入力された場合、6つの頂点t1〜t6に示される平面形状は図6(B)に示すようなる。このとき頂点データTは2次元で定義されているため、図6(C)に示されるように高さ方向の値は反映されていない。
【0057】
図7は、二次元の頂点データに高さ情報が付加された状態を説明する図である。図7(A)は、頂点データTが複製されてz軸座標が追加された三次元の頂点データTaを示す図であり、図7(B)は頂点データTaに示される床面と天井面を説明する図であり、図7(C)は頂点データTaに示される高さ情報を説明する図である。
【0058】
図7(A)に示すように、頂点データTaにはz軸座標が追加されている。頂点データTaのうち、頂点P1〜P6は頂点データTの頂点t1〜t6の(x,y)座標にz軸座標としてz=0を付加したデータである。頂点データTaのうち、頂点P7〜P12は、頂点データTの頂点t1〜t6の複製にz座標としてz=hを付加したデータである。
【0059】
図7(B)では、頂点P1〜P6で示される床面の形状と、頂点P7〜P12で示される天井面の形状とが示されている。頂点P7〜P12に示される天井面は、床面の形状を示す頂点P1〜P6の複製にz=hを追加しただけのものであるため、天井面と床面は同形状となる。
【0060】
図7(C)には、床面と天井面に対して高さ方向の値が反映されている。このとき頂点データTaは、頂点データTに高さ情報を付加しただけの状態であり、各座標軸との直交性や平行性は保たれている。
【0061】
図8は、三次元の頂点データが座標変換された状態を説明する図である。図8(A)は座標変換された後の頂点データTbを示す図であり、図8(B)は頂点データTbに示される三次元形状を示す図である。
【0062】
図8(A)に示す頂点データTbは、バーテックスシェーダ120により頂点データTaの座標変換を行った後の頂点データである。頂点データTbは、バーテックスシェーダ120による透視投影法を反映した行列演算(図5参照)により求められる。頂点データTbが求められると、頂点データTbから図8(B)に示すような遠近法を施した立体形状が得られる。
【0063】
以上に説明したように、本実施形態の第一の経路では、バーテックスシェーダ120に二次元の頂点データを流す前にジオメトリシェーダ130へ頂点データを流す。そして各座標軸と頂点データにより示される平面形状との直交性や平行性があるときに、二次元の頂点データを三次元の頂点データに展開する。よって本実施形態では、ジオメトリシェーダ130において、平面形状の高さ分押し出す処理(以下、押し出し処理)において、X,Y,Z各要素毎の厳密な幾何学的計算を実行する必要がなく、処理の負荷を低減することができる。
【0064】
また、規格通りの処理手順で描画処理を実行する際には、押し出す処理をグラフィックスLSI100の上位制御部であるCPU等により事前に実行するか、ジオメトリシェーダ130で厳密な幾何学的計算を実行するか、後述するストリームバッファを経由して冗長な手順を踏む必要がある。本実施形態では、頂点データを流す経路を第一の経路に切り替えることにより負荷を低減できるため、グラフィックスLSI100内で押し出し処理も実行することができる。さらに本実施形態では、負荷が低減されるため、演算時間や消費電力を低減させつつ地図描画の性能を向上させることができる。
【0065】
以下に、本実施形態の切替制御部110の切替制御により実現されるその他の経路について説明する。
【0066】
図9は、切替制御部110の切替制御により実現される第二の経路を説明する図である。
【0067】
図9に示す第二の経路では、頂点バッファ210から頂点データを読み出す点が第一の経路と相違する。
【0068】
第二の経路において切替制御部110は、制御信号60、61、63、67を出力する。頂点データは、頂点バッファ210から読み出され、セレクタ18、セレクタ19、セレクタ13を介してジオメトリシェーダ130へ入力される。ジオメトリシェーダ130から三次元の頂点データが出力された後は、第一の経路と同様の経路を辿る。
【0069】
図10は、第二の経路を実現するための切替制御部による制御例を示す図である。第二の経路では、制御信号60によりセレクタ11、セレクタ19、方向切替部140、150が制御され、制御信号61によりセレクタ12、13が制御される。また制御信号67によりセレクタ17が制御され、制御信号63によりセレクタ18が制御される。
【0070】
第二の経路では、セレクタ18において頂点バッファ側が選択されているため、セレクタ11の制御は不問となる。方向切替部140、150は、経路30を介してジオメトリシェーダ130からバーテックスシェーダ120へデータが流れる方向を選択する。セレクタ19は、制御信号60に応じてジオメトリシェーダ130に接続された経路を選択する。
【0071】
また第二の経路では、制御信号61によりセレクタ12とセレクタ13とが制御される。セレクタ12では、制御信号61によりセレクタ19と接続されている経路が選択される。尚セレクタ12は、セレクタ19においてジオメトリシェーダ130側が選択されているため無効となる。セレクタ13では、制御信号61によりセレクタ19と接続されている経路が選択される。
【0072】
セレクタ17は、制御信号67により制御される。セレクタ17では、バーテックスシェーダ120と接続された経路が選択される。よってラスタライザ170には、セレクタ17を介してバーテックスシェーダ120の出力が供給される。セレクタ18は、制御信号63により制御される。セレクタ18では、頂点バッファ210と接続されている経路が選択される。
【0073】
本実施形態の設定レジスタ111には、第二の経路を実現できるパターンの制御信号が記憶されていても良い。
【0074】
次に図11乃至図14を参照して本実施形態における第三の経路と第四の経路について接続する。本実施形態のグラフィックスLSI100では、切替制御部110により、第三の経路から第四の経路へ切り替えることにより、バーテックスシェーダ120、ジオメトリシェーダ130を複数回経由して多重的なビジュアルエフェクトを実現することができる。
【0075】
図11は、切替制御部110の切替制御により実現される第三の経路を説明する図である。図11に示す第三の経路では、ストリームアウト160を用いてジオメトリシェーダ130やバーテックスシェーダ120を複数経由する場合に、ストリームバッファ220へバーテックスシェーダ120の出力データを保存する経路である。
【0076】
第三の経路において切替制御部110は、制御信号60、61、63、65、67を出力する。頂点データは、頂点バッファ210から読み出され、セレクタ18、セレクタ19、セレクタ13を介してジオメトリシェーダ130へ入力される。ジオメトリシェーダ130の出力データは、方向切替部150、経路30、方向切替部140を介してバーテックスシェーダ120へ供給される。
【0077】
バーテックスシェーダ120の出力データは、セレクタ14、セレクタ16を介してストリームアウト160へ供給される。ストリームアウト160の出力データは、ストリームバッファ220に保存される。
【0078】
尚図11は、頂点バッファ210から頂点データを読み出す例としたが、頂点データはグラフィックスLSI100の外部から供給されても良い。
【0079】
図12は、第三の経路を実現するための切替制御部による制御例を示す図である。第三の経路では、制御信号60によりセレクタ11、セレクタ19、方向切替部140、150が制御され、制御信号61によりセレクタ12、13が制御される。また制御信号63によりセレクタ18が制御され、制御信号65によりセレクタ14、15が制御され、制御信号67によりセレクタ16、17が制御される。
【0080】
第三の経路では、セレクタ18において頂点バッファ210側が選択されているため、セレクタ11の制御は不問となる。方向切替部140、150は、制御信号60により、経路30を介してジオメトリシェーダ130からバーテックスシェーダ120へデータが流れる方向を選択する。セレクタ19では、制御信号60によりセレクタ13に接続された経路が選択される。
【0081】
セレクタ12では、制御信号61によりセレクタ19と接続された経路が選択されるが、セレクタ19において頂点バッファ210ジオメトリシェーダ130側が選択されているためセレクタ12での選択は無効となる。セレクタ13では、制御信号61によりセレクタ19と接続された経路が選択される。セレクタ18では、制御信号63により頂点バッファ210と接続された経路が選択される。
【0082】
セレクタ14では、制御信号65により、バーテックスシェーダ120の出力データをセレクタ16へ供給する経路が選択される。セレクタ15では、ジオメトリシェーダ130の出力データをセレクタ16に供給する経路が選択されている。尚第三の経路では、ジオメトリシェーダ130の出力データはバーテックスシェーダ120へ供給されるため、セレクタ15における選択は無効となる。
【0083】
セレクタ16では、制御信号67によりセレクタ14と接続された経路が選択される。よってバーテックスシェーダ120の出力データは、セレクタ14、16を介してストリームアウト160へ供給される。セレクタ17では、セレクタ14と接続された経路が選択されるが、セレクタ14でセレクタ16と接続された経路が選択されているためセレクタ17の選択は無効となる。
【0084】
尚本実施形態の設定レジスタ111には、第三の経路を実現できるパターンの制御信号が記憶されていても良い。
【0085】
図13は、切替制御部110の切替制御により実現される第四の経路を説明する図である。図13に示す第四の経路では、第三の経路によりストリームバッファ220に保存された頂点データを読み出して再度バーテックスシェーダ120へ供給する経路である。
【0086】
第四の経路において切替制御部110は、制御信号60、61、63、65、67を出力する。頂点データは、ストリームバッファ220から読み出され、セレクタ18、セレクタ19、セレクタ12を介してバーテックスシェーダ120へ入力される。バーテックスシェーダ120の出力データは、方向切替部140、経路30、方向切替部150を介してジオメトリシェーダ130へ供給される。
【0087】
ジオメトリシェーダ130の出力データは、セレクタ15、セレクタ17を介してラスタライザ170へ供給される。ラスタライザ170の出力は、フラグメントシェーダ180を介して画素描画部190へ供給される。画素描画部190の出力データはフレームバッファ230に保存される。
【0088】
図14は、第四の経路を実現するための切替制御部による制御例を示す図である。第四の経路では、制御信号60によりセレクタ11、セレクタ19、方向切替部140、150が制御され、制御信号61によりセレクタ12、13が制御される。また制御信号63によりセレクタ18が制御され、制御信号65によりセレクタ14、15が制御され、制御信号67によりセレクタ16、17が制御される。
【0089】
第四の経路では、セレクタ18においてストリームバッファ220側が選択されているため、セレクタ11の制御は不問となる。方向切替部140、150は、制御信号60により、経路30を介してバーテックスシェーダ120からジオメトリシェーダ130へデータが流れる方向を選択する。セレクタ19では、制御信号60によりセレクタ12に接続された経路が選択される。
【0090】
セレクタ12では、制御信号61によりセレクタ19と接続された経路が選択される。セレクタ13では、制御信号61によりセレクタ19と接続された経路が選択されるが、セレクタ19でセレクタ12と接続された経路が選択されているため、セレクタ13での選択は無効となる。セレクタ18では、制御信号63によりストリームバッファ220と接続された経路が選択される。
【0091】
セレクタ14では、制御信号65により、バーテックスシェーダ120の出力データをセレクタ17へ供給する経路が選択されが、バーテックスシェーダ120の出力データはジオメトリシェーダ130へ供給されるためセレクタ14での選択は無効となる。セレクタ15では、ジオメトリシェーダ130の出力データをセレクタ17に供給する経路が選択されている。
【0092】
セレクタ16では、制御信号67によりセレクタ15と接続された経路が選択されるが、セレクタ15はセレクタ17と接続された経路を選択しているためセレクタ16での選択は無効である。セレクタ17では、制御信号67によりセレクタ15と接続された経路が選択される。よってジオメトリシェーダ130の出力データは、セレクタ15、セレクタ17を介してラスタライザ170へ供給される。
【0093】
尚本実施形態の設定レジスタ111には、第四の経路を実現できるパターンの制御信号が記憶されていても良い。
【0094】
以上の説明は、バーテックスシェーダ120とジオメトリシェーダ130を規格に定められた順序とは逆の順序で実行する形態に関するものである。
【0095】
ところで本実施形態のグラフィックスLSI100では、切替制御部110の切替制御により、規格通りの順序でバーテックスシェーダ120とジオメトリシェーダ130とを実行することもできる。
【0096】
以下に本実施形態のグラフィックスLSI100において規格通りの経路で頂点データを流し、規格通りの順序で処理を実行した場合について説明する。
【0097】
図15は、第五の経路を実現するための切替制御部による制御例を示す図である。第五の経路は規格に定められた経路であり、頂点データはバーテックスシェーダ120に入力され、バーテックスシェーダ120の出力データがジオメトリシェーダ130へ入力される。第五の経路では、頂点バッファ210か読み出された頂点データが、セレクタ12を介してバーテックスシェーダ120へ供給される。
【0098】
第五の経路において、セレクタ11と方向切替部140、150は、制御信号60により制御される。セレクタ12は制御信号61により制御される。
【0099】
セレクタ11では、セレクタ12において頂点バッファ210側が選択されているので、制御信号60によるセレクタ11の制御は無効となる。方向切替部140、150は、制御信号60により、頂点データがバーテックスシェーダ120からジオメトリシェーダ130へ流れるように選択される。セレクタ12では、制御信号61により、頂点バッファ210と接続された経路が選択される。尚セレクタ12で選択される経路とは、セレクタ18、セレクタ19を介してセレクタ12が頂点バッファ210と接続される経路である。
【0100】
次に、図16を参照して規定通りの順序で行った描画処理について説明する。図16は、本実施形態の第五の経路による描画処理を説明するフローチャートである。
【0101】
第五の経路において、頂点データ(x,y)が頂点バッファから読み出されると、頂点データはセレクタ12を介してバーテックスシェーダ120に入力される。バーテックスシェーダ120は、頂点データ(x,y)にz軸座標であるz=0を追加して床面用頂点データを生成し、法線ベクトルを付加する(ステップS1601)。
【0102】
ステップS1601において頂点データ(x,y,0)、法線ベクトル(0,0,1)が生成されると、バーテックスシェーダ120は、頂点データと高さ情報hでスケーリングした法線ベクトルを座標変換する(ステップS1602)。
ステップS1602において座標変換が行われると、変換後の頂点データ(x´,y´,z´)と法線ベクトル(nx´,ny´,nz´)がジオメトリシェーダ130に入力される。
【0103】
ジオメトリシェーダ130では、座標変換された床面用の頂点データ(x´,y´,z´)を法線ベクトル(nx´,ny´,nz´)方向に引き延ばし、天井面の平面形状を示す頂点データ(x´´,y´´,z´´)を生成する(ステップS1603)。
【0104】
ステップS1603で生成された頂点データはラスタライザ170へ供給されて、図4のステップS403以降の処理が実行される。
【0105】
図17に、ステップS1602とステップS1603で行われる演算の式を示す。図17において、Wは行列演算用の数学的処理として導入される同次座標であり、Mは座標変換に用いられる4行×4列の行列であり、tは転置行列を表す添字である。
【0106】
このように規定通りにバーテックスシェーダ120、ジオメトリシェーダ130の順に実行した場合、ジオメトリシェーダ130、バーテックスシェーダ120の順に実行した場合と比べて処理が複雑であることがわかる。
【0107】
次に図18乃至図21を参照して本実施形態における第六の経路と第七の経路について説明する。本実施形態のグラフィックスLSI100では第六の経路と第七の経路とを切り替えて処理を行うことにより、第二の経路と等価の処理を行うことができる。
【0108】
図18は、切替制御部110の切替制御により実現される第六の経路を説明する図である。
【0109】
図18に示す第六の経路において切替制御部110は、制御信号60、61、63、65を出力する。頂点データは、頂点バッファ210から読み出され、セレクタ18、セレクタ12を介してバーテックスシェーダ120へ入力される。このときバーテックスシェーダ120は、Z=0を付加して3次元化するのみで、座標変換等の処理を実行せず、頂点データを素通りさせる。バーテックスシェーダ120から出力された頂点データは、方向切替部140、経路30、方向切替部150を介してジオメトリシェーダ130へ供給される。
【0110】
ジオメトリシェーダ130では、床面の平面形状に対して押し出し処理が実行され、天井面として複製される。ジオメトリシェーダ130の出力データは、セレクタ15を介してストリームアウト160へ供給される。ストリームアウト160の出力はストリームバッファ220に保存される。ここでストリームバッファに保存されたデータは、ジオメトリシェーダ130による処理のみが施された状態の頂点データである。
【0111】
図19は、第六の経路を実現するための切替制御部による制御例を示す図である。第六の経路では、制御信号60によりセレクタ11、方向切替部140、150が制御され、制御信号61によりセレクタ12が制御される。また制御信号63によりセレクタ18が制御され、制御信号65によりセレクタ15が制御される。
【0112】
セレクタ11は、制御信号60により制御されるが、セレクタ12においてセレクタ18側が選択されているため、セレクタ11の制御は無効となる。方向切替部140、150は、制御信号60により、経路30を介してバーテックスシェーダ120からジオメトリシェーダ130へデータが流れる方向を選択する。
【0113】
セレクタ12では、制御信号61によりセレクタ18と接続された経路が選択されている。セレクタ18では、制御信号63により頂点バッファ210と接続された経路が選択されている。よってバーテックスシェーダ120には、頂点バッファ210から読み出された頂点データが供給される。
【0114】
セレクタ15では、制御信号65によりストリームアウト160と接続された経路が選択される。よってジオメトリシェーダ130の出力データはセレクタ15を介してストリームアウト160へ供給される。
【0115】
尚本実施形態の設定レジスタ111には、第六の経路を実現できるパターンの制御信号が記憶されていても良い。
【0116】
図20は、切替制御部110の切替制御により実現される第七の経路を説明する図である。図20に示す第七の経路では、第六の経路によりストリームバッファ220に保存された頂点データを読み出して再度バーテックスシェーダ120へ供給する経路である。
【0117】
第七の経路において切替制御部110は、制御信号60、61、63、65を出力する。頂点データは、ストリームバッファ220から読み出され、セレクタ18、セレクタ12を介してバーテックスシェーダ120へ入力される。頂点データが入力されると、バーテックスシェーダ120は処理を実行する。バーテックスシェーダ120の出力データは、方向切替部140、経路30、方向切替部150を介してジオメトリシェーダ130へ供給される。
【0118】
バーテックスシェーダ120の出力データがジオメトリシェーダ130に供給されると、ジオメトリシェーダ130は処理を実行せずにバーテックスシェーダ120の出力データを素通りさせる。バーテックスシェーダ120の出力データは、セレクタ15を介してラスタライザ170へ供給される。ラスタライザ170の出力は、フラグメントシェーダ180を介して画素描画部190へ供給される。画素描画部190の出力データはフレームバッファ230に保存される。
【0119】
図21は、第七の経路を実現するための切替制御部による制御例を示す図である。制御信号60によりセレクタ11、方向切替部140、150が制御され、制御信号61によりセレクタ12が制御される。また制御信号63によりセレクタ18が制御され、制御信号65によりセレクタ15が制御される。
【0120】
セレクタ11は、制御信号60により制御されるが、セレクタ12においてセレクタ18側が選択されているため、セレクタ11の制御は無効となる。方向切替部140、150は、制御信号60により、経路30を介してバーテックスシェーダ120からジオメトリシェーダ130へデータが流れる方向を選択する。
【0121】
セレクタ12では、制御信号61によりセレクタ18と接続された経路が選択されている。セレクタ18では、制御信号63によりストリームバッファ220と接続された経路が選択されている。よってバーテックスシェーダ120には、ストリームバッファ220から読み出されたデータが供給される。
【0122】
セレクタ15では、制御信号65によりラスタライザ170と接続された経路が選択される。よってジオメトリシェーダ130の出力データはセレクタ15を介してラスタライザ170へ供給される。
【0123】
尚本実施形態の設定レジスタ111には、第七の経路を実現できるパターンの制御信号が記憶されていても良い。
【0124】
このように本実施形態のグラフィックスLSI100では、第六の経路においてストリームバッファ220にジオメトリシェーダ130の出力データを保存しておく。次に切り替え制御部110は、第六の経路を第七の経路へ切り替えてストリームバッファ220からジオメトリシェーダ130の出力データを読み出し、バーテックスシェーダ120に入力することで、規定通りの処理手順でも第二の経路と等価の処理を行うことができる。
【0125】
次に図22を参照して第六の経路と第七の経路とに沿った手順で描画処理を行った場合の動作について説明する。図22は、第六の経路と第七の経路とに沿った手順で描画処理を行った場合の動作を説明するフローチャートである。
【0126】
第六の経路において、頂点バッファから頂点データ(x,y)が読み出されてバーテックスシェーダ120に入力されると、バーテックスシェーダ120はダミー処理を実行して頂点データを素通りさせる(ステップS2201)。バーテックスシェーダ120によるダミー処理とは、入力された頂点データ(x,y)を(x,y,0)に拡張するだけで、三次元の頂点データとして出力する処理である。よって第六の経路においてバーテックスシェーダ120は座標を変換する処理を行っていない。
【0127】
バーテックスシェーダ120から出力された頂点データ(x,y,0)は、ジオメトリシェーダ130に入力される。ジオメトリシェーダ130では、頂点データ(x,y,0)の複製を生成してz=hを代入し、床面の平面形状を示す頂点データと天井面の平面形状を示す頂点データとを生成する(ステップS2202)。
【0128】
ジオメトリシェーダ130は生成した頂点データを出力する。ジオメトリシェーダ130から出力された頂点データは、ストリームアウト160によりストリームバッファ220に書き込まれて保存される(ステップS2203)。
【0129】
ストリームバッファ220にジオメトリシェーダ130の出力データである頂点データが保存されると、切替制御部110は第七の経路と対応したパターンの制御信号を出力し、データの流れる経路を第六の経路から第七の経路に切り替える。
【0130】
第七の経路に切り替えられると、バーテックスシェーダ120はストリームバッファ220から頂点データを読み出す(ステップS2204)。バーテックスシェーダ120は、読み出した頂点データの座標を変換する処理を行う(ステップS2205)。尚ステップS2205におけるバーテックスシェーダ120の処理は、図4のステップS402で説明した通りである。
【0131】
第七の経路においてバーテックスシェーダ120による座標変換が実行されると、変換後の頂点データがジオメトリシェーダ130へ入力される。ジオメトリシェーダ130は、入力された頂点データに対してダミー処理を行う(ステップS2206)。ジオメトリシェーダ130におけるダミー処理とは、バーテックスシェーダ120により座標変換された頂点データを素通りさせる処理である。よって第七の経路では、ジオメトリシェーダ130は天井面を追加する押し上げ処理を行っていない。
【0132】
ステップS2206においてジオメトリシェーダ130から出力された座標変換後の頂点データは、ラスタライザ170へ供給されて、図4のステップS403以降の処理が施される。
【0133】
このように、本実施形態のグラフィックスLSI100では、第六の経路と第七の経路とを切り替えることで、規格通りの手順で第二の経路を用いた処理と等価の処理を行うこともできる。しかしながら、冗長なダミー処理やストリームバッファへの余計なメモリアクセスが発生するため、第二の経路を用いた処理がより優れていることは明らかである。
【0134】
以上に説明した本実施形態のグラフィックスLSI100は、例えば地図描画システムに搭載されても良い。図23は、本実施形態のグラフィックスLSIが搭載された地図描画システムの構成を説明する図である。
【0135】
地図描画システム300は、グラフィックスLSI100、グラフィックスメモリ200、ディスプレイ310、CPU320、メインメモリ330、IO(Input Output)コントローラ340、GPS(Global Positioning System)ユニット350、ジャイロセンサ360、光学ディスクドライブユニット370、HDD(Hard Disk Dive)ユニット380を有する。
【0136】
ディスプレイ310は、グラフィックスLSI100により描画された地図等を表示させる。CPU320は、地図描画システム300の全体を制御する。メインメモリ330は、地図描画システム300において設定された設定値やCPU320による演算の結果等が記憶される。IOコントローラ340は、GPSユニット350、ジャイロセンサ360、光学ディスクドライブユニット370、HDDユニット380とCPU320との通信において、データの入出力を制御する。
【0137】
GPSユニット350は、現在位置を検出する。ジャイロセンサ360は、各方向における現在の加速度を検出する。光学ディスクドライブユニット370は、例えばCD(Compact Disc)やDVD(Digital Versatile Disc)等の光学ディスクの読み込み等を行う。HDDユニット380は、CPU320により実行されるアプリケーション等が記憶される。
【0138】
地図描画システム300では、例えばCPU320は、GPSユニット350により検出された自車の位置や、ジャイロセンサ360により検出された現在の加速度等に基づきグラフィックスLSI100へ経路を選択する選択信号を出力する。例えばCPU320は、現在の加速度が大きい場合には、グラフィックスLSI100において最も処理の負荷が小さく演算時間の短い経路を選択する選択信号を出力しても良い。グラフィックスLSI100は、上述したように、CPU320から供給される選択信号に基づき経路を選択し、選択された経路に対応したパターンの制御信号を出力する。
【0139】
地図描画システム300は、例えば自動車等に搭載されるナビゲーション装置により実現されても良い。また地図描画システム300は、据え置き型の一般のパーソナルコンピュータや携帯電話等の携帯型端末装置等により実現されても良い。
【0140】
尚以上に述べた実施形態は、以上に述べた実施形態の機能を実行する装置、以上に述べた実施形態の機能をコンピュータに実行させるためのプログラム、以上に述べた実施形態の機能をコンピュータが処理する方法に適用できる。
【0141】
本発明の実施形態は、以下に記載する付記のような構成が考えられる。
(付記1)
描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張機能を含むジオメトリシェーダと、
前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換機能を含むバーテックスシェーダと、
上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手段と、を有するグラフィックス用半導体集積回路。
(付記2)
前記ジオメトリシェーダは、
前記二次元の頂点座標の複製を生成し、一方の前記二次元の頂点座標に0を追加し、他方の前記二次元の頂点座標に前記オブジェクトの高さ情報を追加して、前記三次元の形状を示す頂点座標を生成する機能を有する付記1記載のグラフィック用半導体集積回路。
(付記3)
前記ジオメトリシェーダと前記バーテックスシェーダとを接続する経路と、
前記制御手段による切り替え制御に応じて前記経路において情報が流れる方向を切り替える方向切替手段と、を有する付記1又は2記載のグラフィックス用半導体集積回路。
(付記4)
前記制御手段による切り替え制御に応じて前記ジオメトリシェーダか、又は前記バーテックスシェーダの何れか一方に前記複数の頂点座標を供給する選択手段を有する付記1乃至3の何れか一項に記載のグラフィックス用半導体集積回路。
(付記5)
前記制御手段は、
前記実行順序に対応した制御信号が記憶された記憶手段を有し、
前記上位制御手段から前記実行順序を選択する選択信号が供給されたとき、選択された前記実行順序と対応した制御信号を出力する付記1乃至4の何れか一項に記載のグラフィックス用半導体集積回路。
(付記6)
前記方向切替手段と前記選択手段とは、
前記選択手段により前記ジオメトリシェーダが選択されたとき、前記方向切替手段により前記ジオメトリシェーダから前記バーテックスシェーダへ前記情報が流れるように前記情報が流れる方向が切り替えられ、
前記選択手段により前記バーテックスシェーダが選択されたとき、前記方向切替手段により前記バーテックスシェーダから前記ジオメトリシェーダへ前記情報が流れるように前記情報が流れる方向が切り替えられる付記4又は5記載のグラフィックス用半導体集積回路。
(付記7)
前記方向切替手段と前記選択手段とは、同一の制御信号により制御される付記6記載のグラフィックス用半導体集積回路。
(付記8)
現在位置情報を取得する取得手段と、
前記現在位置情報に基づく前記描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張機能を含むジオメトリシェーダと、
前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換機能を含むバーテックスシェーダと、
上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手段と、を有する地図描画システム。
(付記9)
ジオメトリシェーダと、バーテックスシェーダと、フラグメントシェーダ又はピクセルシェーダと、を有するグラフィックス用半導体集積回路における地図描画方法であって、
前記ジオメトリシェーダにおいて描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張手順と、
前記バーテックスシェーダにおいて前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換手順と、
上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手順と、を実行する地図描画方法。
【0142】
本発明の実施形態は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【0143】
【図1】本発明の一実施形態のグラフィックスLSIを説明する図である。
【図2】切替制御部110の切替制御により実現される第一の経路を説明する図である。
【図3】第一の経路を実現するための切替制御部による制御例を示す図である。
【図4】第一の経路による描画処理を説明するフローチャートである。
【図5】第一の経路においてバーテックスシェーダ120が実行する演算内容を説明する図である。
【図6】二次元の頂点データを説明するための図である。
【図7】二次元の頂点データに高さ情報が付加された状態を説明する図である。
【図8】三次元の頂点データが座標変換された状態を説明する図である。
【図9】切替制御部110の切替制御により実現される第二の経路を説明する図である。
【図10】第二の経路を実現するための切替制御部による制御例を示す図である。
【図11】切替制御部110の切替制御により実現される第三の経路を説明する図である。
【図12】第三の経路を実現するための切替制御部による制御例を示す図である。
【図13】切替制御部110の切替制御により実現される第四の経路を説明する図である。
【図14】第四の経路を実現するための切替制御部による制御例を示す図である。
【図15】第五の経路を実現するための切替制御部による制御例を示す図である。
【図16】本実施形態の第五の経路による描画処理を説明するフローチャートである。
【図17】ステップS1602とステップS1603で行われる演算の式を示す図である。
【図18】切替制御部110の切替制御により実現される第六の経路を説明する図である。
【図19】第六の経路を実現するための切替制御部による制御例を示す図である。
【図20】切替制御部110の切替制御により実現される第七の経路を説明する図である。
【図21】第七の経路を実現するための切替制御部による制御例を示す図である。
【図22】第六の経路と第七の経路とに沿った手順で描画処理を行った場合の動作を説明するフローチャートである。
【図23】本実施形態のグラフィックスLSIが搭載された地図描画システムの構成を説明する図である。
【符号の説明】
【0144】
100 グラフィックスLSI
110 切替制御部
111 設定レジスタ
120 バーテックスシェーダ
130 ジオメトリシェーダ
140、150 方向切替部
160 ストリームアウト
170 ラスタライザ
180 フラグメントシェーダ
190 画素描画部
200 グラフィックスメモリ
210 頂点バッファ
220 ストリームバッファ
230 フレームバッファ

【特許請求の範囲】
【請求項1】
描画対象のオブジェクトの平面形状を示す二次元の頂点座標に該オブジェクトの高さ情報を追加して三次元の形状を示す頂点座標に拡張する座標拡張機能を含むジオメトリシェーダと、
前記オブジェクトの頂点座標を遠近法が施された立体画像を表現するための頂点座標へ変換する座標変換機能を含むバーテックスシェーダと、
上位制御手段からの指示に応じて前記ジオメトリシェーダと前記バーテックスシェーダとの実行順序の切り替え制御を行う制御手段と、を有するグラフィックス用半導体集積回路。
【請求項2】
前記ジオメトリシェーダは、
前記二次元の頂点座標の複製を生成し、一方の前記二次元の頂点座標に0を追加し、他方の前記二次元の頂点座標に前記オブジェクトの高さ情報を追加して、前記三次元の形状を示す頂点座標を生成する機能を有する請求項1記載のグラフィック用半導体集積回路。
【請求項3】
前記ジオメトリシェーダと前記バーテックスシェーダとを接続する経路と、
前記制御手段による切り替え制御に応じて前記経路において情報が流れる方向を切り替える方向切替手段と、を有する請求項1又は2記載のグラフィックス用半導体集積回路。
【請求項4】
前記制御手段による切り替え制御に応じて前記ジオメトリシェーダか、又は前記バーテックスシェーダの何れか一方に前記複数の頂点座標を供給する選択手段を有する請求項1乃至3の何れか一項に記載のグラフィックス用半導体集積回路。
【請求項5】
前記制御手段は、
前記実行順序に対応した制御信号が記憶された記憶手段を有し、
前記上位制御手段から前記実行順序を選択する選択信号が供給されたとき、選択された前記実行順序と対応した制御信号を出力する請求項1乃至4の何れか一項に記載のグラフィックス用半導体集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2010−152702(P2010−152702A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2008−330876(P2008−330876)
【出願日】平成20年12月25日(2008.12.25)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】