(57)【要約】  グラフィックスシステムは、フレームバッファのクリッピング枠のデータが格納されるレジスタ（１３）と、図形のオフセットデータが格納されるレジスタ（１４）と、フレームバッファのクリッピング枠よりも大きなステンシルバッファのクリッピング枠のデータとオフセット無し又はオフセット有りの図形がフレームバッファに描画される時のステンシルバッファ上の参照基点の位置データとが格納されるレジスタ（１６）と、図形とステンシルバッファのクリッピング枠のデータとに基づいて図形についての画素の被覆判定結果をステンシルバッファに描画すること、及び、その被覆判定結果が描画されたステンシルバッファと、レジスタ（１６）に格納されている参照基点の位置データと、フレームバッファのクリッピング枠のデータとを参照して、オフセット無し又はオフセット有りの図形をフレームバッファに描画することを行う画素塗潰しモジュール（１８）とを備える。
2008087700.tif 000002
【特許請求の範囲】
【請求項１】
同一の描画対象を所定距離だけオフセットさせて多重描画するグラフィックスシステムであって、
フレームバッファのクリッピング枠を定めるフレームバッファクリッピング枠データが記憶されるフレームバッファクリッピング枠データ記憶手段と、
前記描画対象のオフセット方向とオフセット量を定めるオフセットデータが記憶されるオフセットデータ記憶手段と、
ステンシルバッファのクリッピング枠であって前記フレームバッファのクリッピング枠よりも大きなクリッピング枠を定めるステンシルバッファクリッピング枠データが記憶されるステンシルバッファクリッピング枠データ記憶手段と、
オフセット無し又はオフセット有りの前記描画対象が前記フレームバッファに描画される時の参照基点となる前記ステンシルバッファ上の位置の位置データが記憶される位置データ記憶手段と、
前記描画対象と前記ステンシルバッファクリッピング枠データとに基づいて、前記描画対象についての画素の被覆判定結果を前記ステンシルバッファに描画する第１の描画手段と、
前記第１の描画手段により描画された前記ステンシルバッファと、前記位置データと、前記フレームバッファクリッピング枠データとを参照して、オフセット無し又はオフセット有りの前記描画対象を前記フレームバッファに描画する第２の描画手段と、
を備えることを特徴とするグラフィックスシステム。
【請求項２】
前記ステンシルバッファクリッピング枠データは、前記フレームバッファクリッピング枠データと前記オフセットデータとに基づいて算出される、
ことを特徴とする請求項１記載のグラフィックスシステム。
【請求項３】
オフセット無しの前記描画対象を前記フレームバッファに描画する場合の参照基点となる前記ステンシルバッファ上の位置の位置データは、前記フレームバッファクリッピング枠データに応じて決定され、
オフセット有りの前記描画対象を前記フレームバッファに描画する場合の参照基点となる前記ステンシルバッファ上の位置の位置データは、前記フレームバッファクリッピング枠データと前記オフセットデータとに基づいて算出される、
ことを特徴とする請求項１記載のグラフィックスシステム。
【請求項４】
前記参照基点となるステンシルバッファ上の位置は、前記ステンシルバッファのクリッピング枠内の位置である、
ことを特徴とする請求項１記載のグラフィックスシステム。
【請求項５】
前記フレームバッファクリッピング枠データと前記オフセットデータとを入力する入力手段を更に備える、
ことを特徴とする請求項１記載のグラフィックスシステム。
【請求項６】
同一の描画対象を所定距離だけオフセットさせて多重描画するグラフィックスシステムであって、
フレームバッファの仮想的なクリッピング枠を定める仮想クリッピング枠データが記憶される仮想クリッピング枠データ記憶手段と、
前記描画対象のオフセット方向とオフセット量を定めるオフセットデータが記憶されるオフセットデータ記憶手段と、
前記フレームバッファとステンシルバッファに共通のクリッピング枠であって前記仮想的なクリッピング枠よりも大きなクリッピング枠を定める共通クリッピング枠データが記憶される共通クリッピング枠データ記憶手段と、
オフセット無し又はオフセット有りの前記描画対象が前記フレームバッファに描画される時の参照範囲となる前記ステンシルバッファ上の範囲の範囲データが記憶される範囲データ記憶手段と、
前記描画対象と前記共通クリッピング枠データとに基づいて、前記描画対象についての画素の被覆判定結果を前記ステンシルバッファに描画する第１の描画手段と、
前記第１の描画手段により描画された前記ステンシルバッファと、前記範囲データと、前記仮想クリッピング枠データとを参照して、オフセット無し又はオフセット有りの前記描画対象を前記フレームバッファに描画する第２の描画手段と、
を備えることを特徴とするグラフィックスシステム。
【請求項７】
前記共通クリッピング枠データは、前記仮想クリッピング枠データと前記オフセットデータとに基づいて算出される、
ことを特徴とする請求項６記載のグラフィックスシステム。
【請求項８】
オフセット無しの前記描画対象が前記フレームバッファに描画される時の参照範囲となる前記ステンシルバッファ上の範囲の範囲データは、前記仮想クリッピング枠データに応じて決定され、
オフセット有りの前記描画対象が前記フレームバッファに描画される時の参照範囲となる前記ステンシルバッファ上の範囲の範囲データは、前記仮想クリッピング枠データと前記オフセットデータとに基づいて算出される、
ことを特徴とする請求項６記載のグラフィックスシステム。
【請求項９】
前記参照範囲となるステンシルバッファ上の範囲は、前記ステンシルバッファのクリッピング枠内の範囲である、
ことを特徴とする請求項６記載のグラフィックスシステム。
【請求項１０】
前記仮想クリッピング枠データと前記オフセットデータを入力する入力手段を更に備える、
ことを特徴とする請求項６記載のグラフィックスシステム。
【請求項１１】
前記描画対象は図形であり、前記フレームバッファに描画されるオフセット有りの前記描画対象は前記図形の影として表現される図形である、
ことを特徴とする請求項１又は６記載のグラフィックスシステム。
【請求項１２】
同一の描画対象を所定距離だけオフセットさせて多重描画するグラフィックスシステムの描画方法であって、
フレームバッファのクリッピング枠を定めるフレームバッファクリッピング枠データと、前記描画対象のオフセット方向とオフセット量を定めるオフセットデータとを入力し、
前記フレームバッファクリッピング枠データと前記オフセットデータとに基づいて、ステンシルバッファのクリッピング枠であって前記フレームバッファのクリッピング枠よりも大きなクリッピング枠を定めるステンシルバッファクリッピング枠データを算出し、
前記描画対象と前記ステンシルバッファクリッピング枠データとに基づいて、前記描画対象についての画素の被覆判定結果を前記ステンシルバッファに描画し、
オフセット無しの前記描画対象を前記フレームバッファに描画する時の参照基点となる前記ステンシルバッファ上の位置の位置データと、前記ステンシルバッファと、前記フレームバッファクリッピング枠データとを参照して、オフセット無しの前記描画対象を前記フレームバッファに描画し、オフセット有りの前記描画対象を前記フレームバッファに描画する時の参照基点となる前記ステンシルバッファ上の位置の位置データと、前記ステンシルバッファと、前記フレームバッファクリッピング枠データとを参照して、オフセット有りの前記描画対象を前記フレームバッファに描画する、
ことを特徴とするグラフィックスシステムの描画方法。
【請求項１３】
オフセット無しの前記描画対象を前記フレームバッファに描画する時の参照基点となる前記ステンシルバッファ上の位置の位置データを、前記フレームバッファクリッピング枠データに応じて決定し、
オフセット有りの前記描画対象を前記フレームバッファに描画する時の参照基点となる前記ステンシルバッファ上の位置の位置データを、前記フレームバッファクリッピング枠データと前記オフセットデータとに基づいて算出する、
ことを特徴とする請求項１２記載のグラフィックスシステムの描画方法。
【請求項１４】
前記参照基点となるステンシルバッファ上の位置は、前記ステンシルバッファのクリッピング枠内の位置である、
ことを特徴とする請求項１２記載のグラフィックスシステムの描画方法。
【請求項１５】
前記描画対象は図形であり、前記フレームバッファに描画されるオフセット有りの前記描画対象は前記図形の影として表現される図形である、
ことを特徴とする請求項１２記載のグラフィックスシステムの描画方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックスシステム及びその描画方法に関し、特に、同一描画対象を所定距離だけオフセットさせて多重描画するグラフィックスシステム及びその描画方法に関する。
【背景技術】
【０００２】
グラフィックスシステムでは、同一図形を微小距離だけオフセットさせて多重描画を行う場合がある。典型的には、図９に示すような2次元図形の影表現を行う場合であり、例えばカーナビゲーションシステム等の地図描画で多用されている。【０００３】
ここで、図９に示した２次元図形の影表現を行う場合の描画手法を、図１０を用いて説明する。同図に示したように、この場合、まずグラフィックスシステムの描画機構５１は、ステンシルバッファ５２に、画素が対象図形に含まれるか否かを判定した結果（被覆判定結果）を描画する（ステップ１）。すなわち、その図形が占有する画素を塗り潰す。ここで、塗り潰された画素の図形５３はステンシルマスク図形ともいう。続いて、そのステンシルバッファ５２を参照しながら、画素位置対応関係を考慮して、図形の本体５４および影５５をフレームバッファ５６に描画する（ステップ２）。【０００４】
なお、ステンシルバッファとは、画素単位で描画を許可するか否かの情報が記憶されるバッファであり、このような、ステンシルバッファを用いて行われる描画手法は、凹部を有する複雑形状の描画手段の一つとして広く普及している。【０００５】
ところで、このような描画手法では、ステンシルバッファおよびフレームバッファの大きさ（画面解像度）が有限であることから、その境界から外れる画素を描画しないようにするためにクリッピング処理が行われる。しかしながら、図形がクリップ境界に跨っていた場合には、ステンシルバッファを参照しながら図形の影をフレームバッファにオフセット描画すると、クリップされた切り口が画面内側にずれ込んでしまい、図１１に示すような欠けた部分を有する影５７が生成されてしまう。【０００６】
そこで、フレームバッファサイズが画面サイズよりも小さくない場合には、図１２に示すように、フレームバッファ５８に影オフセット分の糊しろとしての領域を持たせて画面サイズ５９よりも大きめにフレームバッファサイズ（クリッピング枠サイズでもある）６０を確保しておけば、糊しろが画面外に放逐されるので、図形の本体６４及び影６５を正しく描画でき、その問題をごまかすことができる。なお、同図において、ステンシルマスク図形６１が描画されたステンシルバッファ６２における点線枠はステンシルバッファサイズ（クリッピング枠サイズでもある）６３を示し、実線枠は画面サイズ５９を示している。【０００７】
しかしながら、図１３に示すように、画面サイズ６６より小さい部分領域６７のみに描画する場合には、クリッピング領域（クリッピング枠６８内の領域）が全て画面内側に入ってくるので、糊しろとして確保した余計な領域まで描画され、余計な断片６９まで過剰に描画されてしまい、そのようなごまかしが効かない。なお、同図において、実線枠は画面サイズ６６を示す。また、図形の本体７０及び影７１が描画された、フレームバッファサイズ７２のフレームバッファ７３において、点線枠６７は部分領域（ウィンドウサイズともいう）を示し、点線枠６８はクリッピング枠サイズを示している。【０００８】
以上に説明したグラフィックスシステム以外にも、例えば、特許文献１にはゲーム処理において仮想三次元のゲーム空間における陰影処理を行うゲーム装置としてのグラフィックスシステムが記載されている。また、特許文献２には、線分等の所定の幅を有する図形を対象としてクリップ処理を行う情報処理装置としてのグラフィックスシステムが記載されている。【０００９】
本発明は、上記実情に鑑み、2次元図形の影表現のように、同一描画対象を所定距離だけオフセットさせて多重描画を行う場合に、欠けた部分や余計な部分が描画されることのない、グラフィックスシステム及びその描画方法を提供することを目的とする。
【特許文献１】特開２００３−３３１３１４号公報
【特許文献２】特開平０８−２８７２６５号公報
【発明の開示】
【００１０】
本発明の第１の態様に係るグラフィックスシステムは、同一の描画対象を所定距離だけオフセットさせて多重描画するグラフィックスシステムであって、フレームバッファのクリッピング枠を定めるフレームバッファクリッピング枠データが記憶されるフレームバッファクリッピング枠データ記憶手段と、前記描画対象のオフセット方向とオフセット量を定めるオフセットデータが記憶されるオフセットデータ記憶手段と、ステンシルバッファのクリッピング枠であって前記フレームバッファのクリッピング枠よりも大きなクリッピング枠を定めるステンシルバッファクリッピング枠データが記憶されるステンシルバッファクリッピング枠データ記憶手段と、オフセット無し又はオフセット有りの前記描画対象が前記フレームバッファに描画される時の参照基点となる前記ステンシルバッファ上の位置の位置データが記憶される位置データ記憶手段と、前記描画対象と前記ステンシルバッファクリッピング枠データとに基づいて、前記描画対象についての画素の被覆判定結果を前記ステンシルバッファに描画する第１の描画手段と、前記第１の描画手段により描画された前記ステンシルバッファと、前記位置データと、前記フレームバッファクリッピング枠データとを参照して、オフセット無し又はオフセット有りの前記描画対象を前記フレームバッファに描画する第２の描画手段と、を備えることを特徴とする。
【００１１】
この構成によれば、描画対象をオフセットする方向及び量に応じてステンシルバッファのクリッピング枠をフレームバッファのクリッピング枠より大きめに設け、オフセット無しの描画対象を描画する時のステンシルバッファ上の参照基点の位置データに基づいてオフセット無しの描画対象が描画され、オフセット有りの描画対象を描画する時のステンシルバッファ上の参照基点の位置データに基づいてオフセット有りの描画対象が描画されることで、欠けた部分や余計な部分が描画されることなく、同一の描画対象をオフセットさせて多重描画することができる。
【００１２】
本発明の第２の態様に係るグラフィックスシステムは、同一の描画対象を所定距離だけオフセットさせて多重描画するグラフィックスシステムであって、フレームバッファの仮想的なクリッピング枠を定める仮想クリッピング枠データが記憶される仮想クリッピング枠データ記憶手段と、前記描画対象のオフセット方向とオフセット量を定めるオフセットデータが記憶されるオフセットデータ記憶手段と、前記フレームバッファとステンシルバッファに共通のクリッピング枠であって前記仮想的なクリッピング枠よりも大きなクリッピング枠を定める共通クリッピング枠データが記憶される共通クリッピング枠データ記憶手段と、オフセット無し又はオフセット有りの前記描画対象が前記フレームバッファに描画される時の参照範囲となる前記ステンシルバッファ上の範囲の範囲データが記憶される範囲データ記憶手段と、前記描画対象と前記共通クリッピング枠データとに基づいて、前記描画対象についての画素の被覆判定結果を前記ステンシルバッファに描画する第１の描画手段と、前記第１の描画手段により描画された前記ステンシルバッファと、前記範囲データと、前記仮想クリッピング枠データとを参照して、オフセット無し又はオフセット有りの前記描画対象を前記フレームバッファに描画する第２の描画手段と、を備えることを特徴とする。
【００１３】
この構成によれば、描画対象をオフセットする方向及び量に応じて共通のクリッピング枠を仮想的なクリッピング枠より大きめに設け、オフセット無しの描画対象を描画する時の参照範囲の範囲データに基づいてオフセット無しの描画対象が描画され、オフセット有りの描画対象を描画する時の参照範囲の範囲データに基づいてオフセット有りの描画対象が描画されることで、欠けた部分や余計な部分が描画されることなく、同一の描画対象をオフセットさせて多重描画することができる。
【００１４】
また、本発明は、上記の各態様に係るグラフィックスシステムの他、グラフィックスシステムの描画方法として構成することもできる。
【図面の簡単な説明】
【００１５】
本発明は、後述する詳細な説明を、下記の添付図面と共に参照すればより明らかになるであろう。
【図１】第１の実施形態に係るグラフィックスシステムの全体構成を示すブロック図である。
【図２】第１の実施形態に係る、グラフィックスＬＳＩ及びグラフィックスメモリの構成をより詳細に示すブロック図である。
【図３】第１の実施形態に係る、２次元図形の影表現を行う場合の動作を示すフローチャートである。
【図４Ａ】第１の実施形態に係る、２次元図形の本体を描画するときの具体例を模式的に示す図である。
【図４Ｂ】第１の実施形態に係る、２次元図形の影を描画するときの具体例を模式的に示す図である。
【図５】第２の実施形態に係る、グラフィックスＬＳＩ及びグラフィックスメモリの構成をより詳細に示すブロック図である。
【図６】第２の実施形態に係る、２次元図形の影表現を行う場合の動作を示すフローチャートである。
【図７Ａ】第２の実施形態に係る、２次元図形の本体を描画するときの具体例を模式的に示す図である。
【図７Ｂ】第２の実施形態に係る、２次元図形の影を描画するときの具体例を模式的に示す図である。
【図８】クリッピング枠の広げ方を説明する図である。
【図９】2次元図形の影表現の一例を示す図である。
【図１０】２次元図形の影表現を行う場合の描画手法の一例を説明する図である。
【図１１】欠けた部分を有する影が生成された例を示す図である。
【図１２】フレームバッファサイズが画面サイズよりも大きい場合の描画例を説明する図である。
【図１３】画面サイズより小さい部分領域のみに描画する場合の描画例を説明する図である。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら本発明の実施の形態を説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係るグラフィックスシステムの全体構成を示すブロック図である。【００１７】
同図に示したように、本実施形態に係るグラフィックスシステムは、当該システム全体の動作を制御するＣＰＵ１と、ＣＰＵ１による制御処理の実行のためのワークエリア等として使用されるメインメモリ２と、ユーザー（例えばプログラマー）からの指示やデータの入力に用いられる入力部３と、ＣＰＵ１の制御の下に描画処理を行うグラフィックスＬＳＩ４と、グラフィックスＬＳＩ４による描画処理に使用されるグラフィックスメモリ５と、グラフィックスメモリ５のフレームバッファ領域に描画されている内容等を画面に表示するディスプレイ装置６を備えて構成されている。【００１８】
このように構成されたグラフィックスシステムでは、図９に示した２次元図形の影表現のように同一描画対象を所定距離だけオフセットさせて多重描画を行うことが可能になっている。ここで、そのような多重描画を行う際に主に関係する構成として、グラフィックスＬＳＩ４及びグラフィックスメモリ５の構成をより詳細に説明する。なお、本実施例では、描画対象を図形として説明する。【００１９】
図２は、その構成をより詳細に示すブロック図である。
同図に示したように、グラフィックスメモリ５は、ステンシルバッファ領域（以下単に「ステンシルバッファ」という）１１と、フレームバッファ領域（以下単に「フレームバッファ」という）１２とを備えている。ステンシルバッファ１１は画素単位で描画を許可するか否かの情報が記憶されるバッファ領域であり、フレームバッファ１２はディスプレイ６に表示される画像のラスタデータが記憶されるバッファ領域である。なお、ステンシルバッファ１１とフレームバッファ１２のバッファサイズは同じであり（但し、画素数が同じという意味であり、総ビット数が同じという意味ではない）、本実施形態では、そのバッファサイズがディスプレイ装置６の画面サイズを兼ねるものとする。【００２０】
グラフィックスＬＳＩ４において、フレームバッファレジスタ１３には、入力部３を介してユーザがアプリケーションに応じて設定した、フレームバッファ１２のクリッピング枠（以下「フレームバッファクリッピング枠」という）を定義するためのデータが格納される。なお、フレームバッファクリッピング枠は、フレームバッファ１２上の描画領域を規定するために用いられる枠である。すなわち、フレームバッファ１２上のフレームバッファクリッピング枠内の領域は、フレームバッファ１２の描画領域となる。【００２１】
図形オフセット量レジスタ１４には、入力部３を介してユーザーがアプリケーションに応じて設定した図形オフセット量のデータが格納される。なお、図形オフセット量は、その符号により図形オフセット方向も同時に表すものとする。【００２２】
クリッピング枠拡張モジュール１５は、フレームバッファレジスタ１３に格納されているデータと図形オフセット量レジスタ１４に格納されているデータとから、ステンシルバッファ１１のクリッピング枠（以下「ステンシルバッファクリッピング枠」という）を定義するためのデータを自動的に算出する。なお、ステンシルバッファクリッピング枠は、ステンシルバッファ１１上の描画領域を規定するために用いられる枠である。すなわち、ステンシルバッファ１１上のステンシルバッファクリッピング枠内の領域は、ステンシルバッファ１１の描画領域となる。また、クリッピング枠拡張モジュール１５は、フレームバッファレジスタ１３に格納されているデータ、又は、当該データ及び図形オフセット量レジスタ１４に格納されているデータとから、オフセット無しの図形又はオフセット有りの図形がフレームバッファ１２に描画される時の、ステンシルバッファ１１の参照領域（以下「ステンシルバッファ参照領域」という）の基点となる座標（以下「参照基点座標」という）のデータを自動的に算出する。【００２３】
ステンシルバッファレジスタ１６には、クリッピング枠拡張モジュール１５により算出された、ステンシルバッファクリッピング枠を定義するためのデータと参照基点座標のデータとが格納される。【００２４】
図形形成モジュール１７は、入力された図形データを基に、描画する図形を形成する。
画素塗り潰しモジュール１８は、ステンシルバッファ１１の特定画素を塗り潰したり、フレームバッファ１２の特定画素を特定色で塗り潰したり等の処理を行う。より詳しくは、画素塗り潰しモジュール１８は、ステンシルバッファ１１に、画素が図形形成モジュール１７により形成された図形であってステンシルバッファクリッピング枠によって切り取られた図形に含まれるか否かの判定結果（被覆判定結果）を描画する。すなわち、その図形が占有する画素を塗り潰す（形状マスク塗り潰し）。また、画素塗り潰しモジュール１８は、フレームバッファレジスタ１３に格納されているデータと、ステンシルバッファレジスタ１６に格納されているデータと、図形占有画素が塗り潰されたステンシルバッファ１１とを参照して、フレームバッファ１２にオフセット無しの図形を描画する。すなわち、その図形が占有する画素を特定色で塗り潰す。さらに、画素塗り潰しモジュール１８は、フレームバッファレジスタ１３に格納されているデータと、ステンシルバッファレジスタ１６に格納されているデータと、図形占有画素が塗り潰されたステンシルバッファ１１とを参照して、フレームバッファ１２にオフセット有りの図形を描画する。すなわち、その図形が占有する画素を特定色で塗り潰す。【００２５】
このような構成では、画素塗り潰しモジュール１８が少なくとも、ステンシルバッファ１１への描画を１回、ステンシルバッファ１１の参照を２回、フレームバッファ１２への描画を２回行うことによって、２次元図形の影表現を行うことができる。【００２６】
図３は、その２次元図形の影表現を行う場合の動作を示すフローチャートである。また、図４Ａおよび図４Ｂは、その動作の具体例を模式的に示す図であって、図４Ａは２次元図形の本体を描画するときの具体例を模式的に示す図であり、図４Ｂは２次元図形の影を描画するときの具体例を模式的に示す図である。ここでは、理解を容易にするために、図３に示したフローチャートを、図４Ａおよび図４Ｂ示した具体例を参照しながら、説明する。なお、図３に示したフローチャートは、当該グラフィックスシステムで所定のアプリケーションの実行中に行われる処理の一つである。また、図４Ａおよび図４Ｂに示したステンシルバッファ１１およびフレームバッファ１２においては、各バッファの左上の画素座標を原点（０，０）として、右方向を＋Ｘ方向、下方向を＋Ｙ方向とする。【００２７】
図３に示したように、本動作（同図の点線に示すステップ（以下単に「Ｓ」という）１以降の動作）は、フレームバッファクリッピング枠と図形オフセットベクトルがユーザーによって定義された後に行われる。すなわち、まず、ユーザによって、フレームバッファクリッピング枠と図形オフセットベクトルとを定義するためのデータ（値）が入力部３を介して入力され、フレームバッファレジスタ１３と図形オフセット量レジスタ１４のそれぞれに、対応するデータが格納される（Ｓ０）。【００２８】
本実施形態では、フレームバッファクリッピング枠を定義するためのデータとして、クリッピング枠基準点座標ｆｏ、クリッピング枠幅ｆｗ、クリッピング枠高さｆｈが入力され、フレームバッファレジスタ１３に格納される。図４Ａに示したフレームバッファレジスタ１３には、その格納例を示している。なお、これらのｆｏ、ｆｗ、ｆｈは、図４Ａのフレームバッファ１２に示したフレームバッファクリッピング枠２１のｆｏ、ｆｗ、ｆｈに対応する。また、図形オフセットベクトルを定義するためのデータとして、Ｘ方向のオフセット量ｄｘおよびＹ方向のオフセット量ｄｙが入力され、図形オフセット量レジスタ１４に格納される。なお、前述のとおり、Ｘ方向のオフセット量ｄｘおよびＹ方向のオフセット量ｄｙは、その符号により、Ｘ方向のオフセット方向およびＹ方向のオフセット方向も同時に表すものとする。また、ここで入力、格納されるオフセット量は、本システムで設定可能な最大オフセット量を超えない量とする。図４Ａに示した図形オフセット量レジスタ１４には、その格納例を示している。【００２９】
なお、フレームバッファクリッピング枠２１を定義するためのデータや図形オフセットベクトルを定義するためのデータは、アプリケーションの実行中において随時変更可能とされ、再描画（Ｓ１以降の処理の再実行）が可能になっている。【００３０】
このようにしてフレームバッファクリッピング枠２１と図形オフセットベクトルとが定義され、本動作が開始すると、まず、格納されている図形オフセットベクトル（図形オフセット量ｄｘ、ｄｙ）から、その逆ベクトルを算出する（図３のＳ１）。【００３１】
続いて、Ｓ１で算出された逆ベクトルから、ステンシルバッファクリッピング枠の拡大量を算出し（Ｓ２）、その拡大量に応じてステンシルバッファクリッピング枠を拡大する（Ｓ３）。具体的には、クリッピング枠拡張モジュール１５が、拡大したステンシルバッファクリッピング枠を定義するためのデータとして、クリッピング枠基準点座標ｓｏ、クリッピング枠幅ｓｗ、クリッピング枠高さｓｈを自動的に算出してステンシルバッファレジスタ１６に格納する。図４Ａに示したステンシルバッファレジスタ１６には、その格納例を示している。なお、これらのｓｏ、ｓｗ、ｓｈは、図４Ａのステンシルバッファ１１に示したステンシルバッファクリッピング枠２２のｓｏ、ｓｗ、ｓｈに対応するものであり、次式を用いて自動的に算出される。【００３２】
ｓｏ＝ｆｏ−（｜ｄｘ｜，｜ｄｙ｜）
ｓｗ＝ｆｗ＋２＊｜ｄｘ｜
ｓｈ＝ｆｈ＋２＊｜ｄｙ｜
続いて、ステンシルバッファ１１の参照基準位置をリセットする（図３のＳ４）。具体的には、オフセット無しの図形をフレームバッファ１２に描画する時の参照基点座標ｓｒを、クリッピング枠拡張モジュール１５が次式により算出する。【００３３】
ｓｒ＝ｆｏ
そして、その参照基点座標ｓｒをステンシルバッファレジスタ１６に格納する。図４Ａに示したステンシルバッファレジスタ１６には、その格納例を示している。また、参照基点座標ｓｒにより、フレームバッファクリッピング枠２１と同サイズのステンシルバッファ参照領域が決定される。図４Ａに示したステンシルバッファ１１には、その参照基点座標ｓｒにより決定されたステンシルバッファ参照領域２３を示している。この時の状態（ｓｒ＝ｆｏのときの状態、標準状態ともいう）では、ステンシルバッファ参照領域２３とフレームバッファクリッピング枠２１内の領域は画素座標的に一致している。【００３４】
続いて、ステンシルバッファ１１に基準図形（ステンシルマスク図形）を描画する（図３のＳ５）。具体的には、画素塗り潰しモジュール１８が、ステンシルバッファ１１に、画素が図形形成モジュール１７により形成された図形であってステンシルバッファクリッピング枠２２によって切り取られた図形に含まれるか否かの判定結果（被覆判定結果）を描画する。すなわち、その図形が占有する画素を塗り潰す。図４Ａに示したステンシルバッファ１１には、そのステンシルマスク図形２４の描画例を示している。【００３５】
続いて、フレームバッファ１２にステンシルバッファ１１を写像し、フレームバッファ１２に基準図形（図形本体）を描画する（図３のＳ６）。具体的には、画素塗り潰しモジュール１８が、フレームバッファレジスタ１３に格納されているデータと、ステンシルバッファレジスタ１６に格納されているデータと、ステンシルバッファ１１とを参照して、ステンシルバッファ参照領域２３内の図形形状を抽出し、ステンシルバッファ参照領域２３とフレームバッファクリッピング枠２１とを対応させて（参照基点座標ｓｒとフレームバッファクリッピング枠２１の基準点座標ｆｏとを対応させて）図形本体（オフセット無し図形）をフレームバッファ１２に描画する。すなわち、その図形本体が占有する画素を特定色（図形本体の色）で塗り潰す。図４Ａに示したフレームバッファ１２には、その図形本体２５の描画例を示している。【００３６】
続いて、ステンシルバッファ１１の参照基準位置を、図形オフセットベクトルの逆ベクトル分ずらす（図３のＳ７）。具体的には、オフセット有りの図形を描画する時の参照基点座標ｓｒを、クリッピング枠拡張モジュール１５が次式により算出する。【００３７】
ｓｒ＝ｆｏ−（ｄｘ，ｄｙ）
すなわち、フレームバッファレジスタ１３に格納されているフレームバッファクリッピング枠基準点座標ｆｏに、図形オフセット量レジスタ１４に格納されている図形オフセット量（ｄｘ，ｄｙ）の符号を反転させた分を加えて、その時の参照基点座標ｓｒを算出する。そして、ステンシルバッファレジスタ１６に格納されている参照基点座標ｓｒを、ここで算出した参照基点座標ｓｒへ更新する。図４Ｂに示したステンシルバッファレジスタ１６には、その更新例を示している。なお、ステンシルバッファ参照領域２３のサイズはフレームバッファクリッピング枠２１と同じサイズなので、参照基点座標ｓｒが更新されても、そのサイズに変更はない。【００３８】
続いて、フレームバッファ１２にステンシルバッファ１１を写像し、フレームバッファ１２にオフセット図形（図形の影）を描画する（図３のＳ８）。具体的には、画素塗り潰しモジュール１８が、フレームバッファレジスタ１３に格納されているデータと、ステンシルバッファレジスタ１６に格納されているデータと、ステンシルバッファ１１とを参照して、ステンシルバッファ参照領域２３内の図形形状を抽出し、ステンシルバッファ参照領域２３とフレームバッファクリッピング枠２１とを対応させて（参照基点座標ｓｒとフレームバッファクリッピング枠２１の基準点座標ｆｏを対応させて）図形の影（オフセット有り図形）をフレームバッファ１２に描画する。すなわち、フレームバッファ１２において、図形の影が占有する画素を特定色（図形の影の色）で塗り潰す。図４Ｂに示したフレームバッファ１２には、その図形の影２６の描画例を示している。なお、ここでの処理では、公知のＺバッファ技法を用いることにより図形の本体と影の重なり制御（陰面消去）を正しく処理することができる。Ｚバッファ技法とは、描画する図形が重なるときに、図形の奥行き情報が格納されたＺバッファを用いて奥側の図形を描画せずに手前側の図形を描画するようにする手法である。【００３９】
このような動作により、フレームバッファ１２に、余計な部分を含む本体の図形や一部が欠けた影の図形が描画されることなく、図形の本体及び影を正しく描画することができる。【００４０】
このように、本実施形態によれば、ステンシルバッファとフレームバッファにそれぞれ独立のクリッピング枠を設定することができ、さらに、ステンシルバッファのクリッピング枠内の何れの位置をフレームバッファ描画時の参照基点とするかを定める参照基点座標を設定することができるので、ステンシルバッファのクリッピング枠を図形オフセット量に応じて大きく確保しておき、図形本体描画時には図形オフセット量に応じたオフセット前の参照基点座標で定まるステンシルバッファ参照領域を参照し、図形の影描画時には図形オフセット量に応じたオフセット後の参照基点座標で定まるステンシルバッファ参照領域を参照して、フレームバッファへの描画を行うことによって、余計な部分を含まない本体や欠けた部分の無い影を描画することができる。
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。【００４１】
本実施形態に係るグラフィックスシステムは、同一描画対象を所定距離だけオフセットさせて多重描画を行う手法が第１の実施形態と異なる。そのため、当該システムの全体構成は図１に示したものと同じであるが、グラフィックスＬＳＩ４の構成が一部異なっている。【００４２】
図５は、本実施形態に係るグラフィックスＬＳＩ４及びグラフィックスメモリ５の構成をより詳細に示すブロック図である。なお、本実施例でも、描画対象を図形として説明する。【００４３】
同図において、グラフィックスメモリ５は、第１の実施形態と同様に、同じバッファサイズ（但し、画素数が同じという意味であり、総ビット数が同じという意味ではない）のステンシルバッファ１１とフレームバッファ１２とを備え、両バッファサイズはディスプレイ装置６の画面サイズを兼ねるものとする。【００４４】
グラフィックスＬＳＩ４において、仮想クリッピング枠レジスタ３１には、入力部３を介してユーザーがアプリケーションに応じて設定した、フレームバッファ１２の仮想クリッピング枠（以下「フレームバッファ仮想クリッピング枠」という）を定義するためのデータが格納される。なお、フレームバッファ仮想クリッピング枠は、ユーザが設定したフレームバッファ１２上の描画領域を規定するために用いられる枠である。すなわち、フレームバッファ１２上のフレームバッファ仮想クリッピング枠内の範囲は、ユーザの意図した描画範囲となる。【００４５】
図形オフセット量レジスタ１４には、第１の実施形態と同様に、入力部３を介してユーザーがアプリケーションに応じて設定した図形オフセット量のデータが格納される。なお、本実施形態においても、図形オフセット量は、その符号により図形オフセット方向も同時に表すものとする。【００４６】
クリッピング枠拡張モジュール３２は、仮想クリッピングレジスタ３１に格納されているデータと図形オフセット量レジスタ１４に格納されているデータとから、ステンシルバッファ１１とフレームバッファ１２との共通クリッピング枠を定義するためのデータを自動的に算出する。なお、共通クリッピング枠は、ステンシルバッファ１１上およびフレームバッファ１２上に範囲が同じとなる描画領域を規定するために用いられる枠である。但し、フレームバッファ１２上の共通クリッピング枠内の領域であって仮想クリッピング枠内の領域を除いた残りの領域は、描画が省略される領域となる。ステンシルバッファ１１上の共通クリッピング枠内の領域は、ステンシルバッファ１１の描画領域となる。また、クリッピング枠拡張モジュール３２は、仮想クリッピングレジスタ３１に格納されているデータ、又は、当該データ及び図形オフセット量レジスタ１４に格納されているデータとから、オフセット無しの図形又はオフセット有りの図形が描画される時に参照される、ステンシルバッファ１１の有効参照範囲（以下「ステンシルバッファ有効参照範囲」という）を定義するためのデータを自動的に算出する。【００４７】
両バッファ共通レジスタ３３には、クリッピング枠拡張モジュール３２により算出された、共通クリッピング枠を定義するためのデータが格納される。
ステンシルバッファ有効参照範囲レジスタ３４には、クリッピング枠拡張モジュール３２により算出された、ステンシルバッファ有効参照範囲を定義するためのデータが格納される。【００４８】
図形形成モジュール１７は、第１の実施形態と同様に、入力された図形データを基に、描画する図形を形成する。
画素塗り潰しモジュール３５は、ステンシルバッファ１１の特定画素を塗り潰したり、フレームバッファ１２の特定画素を特定色で塗り潰したり等の処理を行う。より詳しくは、画素塗り潰しモジュール３５は、ステンシルバッファ１１に、画素が図形形成モジュール１７により形成された図形であって共通クリッピング枠により切り取られた図形に含まれるか否かの判定結果（被覆判定結果）を描画する。すなわち、その図形が占有する画素を塗り潰す（形状マスク塗り潰し）。また、画素塗り潰しモジュール３５は、ステンシルバッファ有効参照範囲レジスタ３４に格納されているデータと、図形占有画素が塗り潰されたステンシルバッファ１１と、仮想クリッピング枠レジスタ３１に格納されているデータとを参照して、フレームバッファ１２にオフセット無しの図形を描画する。すなわち、その図形が占有する画素を特定色で塗り潰す。さらに、画素塗り潰しモジュール３５は、ステンシルバッファ有効参照範囲レジスタ３４に格納されているデータと、図形占有画素が塗り潰されたステンシルバッファ１１と、仮想クリッピング枠レジスタ３１に格納されているデータとを参照して、フレームバッファ１２にオフセット有りの図形を描画する。すなわち、その図形が占有する画素を特定色で塗り潰す。【００４９】
このような構成では、第１の実施形態と同様に、画素塗り潰しモジュール３５が少なくとも、ステンシルバッファ１１への描画を１回、ステンシルバッファ１１の参照を２回、フレームバッファ１２への描画を２回行うことによって、２次元図形の影表現を行うことができる。【００５０】
図６は、その２次元図形の影表現を行う場合の動作を示すフローチャートである。また、図７Ａおよび図７Ｂは、その動作の具体例を模式的に示す図であって、図７Ａは２次元図形の本体を描画するときの具体例を模式的に示す図であり、図７Ｂは２次元図形の影を描画するときの具体例を模式的に示す図である。ここでは、理解を容易にするために、図６に示したフローチャートを、図７Ａおよび図７Ｂ示した具体例を参照しながら、説明する。なお、図６に示したフローチャートは、当該グラフィックスシステムで所定のアプリケーションの実行中に行われる処理の一つである。また、図７Ａおよび図７Ｂに示したステンシルバッファ１１およびフレームバッファ１２においては、各バッファの左上の画素座標を原点（０，０）として、右方向を＋Ｘ方向、下方向を＋Ｙ方向とする。【００５１】
図６に示したように、本動作（同図の点線に示すＳ１１以降の動作）は、仮想クリッピング枠と図形オフセットベクトルがユーザーによって定義された後に行われる。すなわち、まず、ユーザによって、フレームバッファクリッピング枠と図形オフセットベクトルとを定義するためのデータ（値）が入力部３を介して入力され、仮想クリッピング枠レジスタ３１と図形オフセット量レジスタ１４のそれぞれに、対応するデータが格納される（Ｓ１０）。【００５２】
本実施形態では、仮想クリッピング枠を定義するためのデータとして、クリッピング枠基準点座標ｆｏ、クリッピング枠幅ｆｗ、クリッピング枠高さｆｈが入力され、仮想クリッピング枠レジスタ３１に格納される。図７Ａに示した仮想クリッピング枠レジスタ３１には、その格納例を示している。なお、これらのｆｏ、ｆｗ、ｆｈは、図７Ａのフレームバッファ１２に示した仮想クリッピング枠４１のｆｏ、ｆｗ、ｆｈに対応する。また、図形オフセットベクトルを定義するためのデータとして、Ｘ方向のオフセット量ｄｘおよびＹ方向のオフセット量ｄｙが入力され、図形オフセット量レジスタ１５に格納される。なお、前述のとおり、Ｘ方向のオフセット量ｄｘおよびＹ方向のオフセット量ｄｙは、その符号により、Ｘ方向のオフセット方向およびＹ方向のオフセット方向も同時に表すものとする。また、第１の実施形態と同様に、ここで入力、格納されるオフセット量は、本システムで設定可能な最大オフセット量を超えない量とする。図７Ａに示した図形オフセット量レジスタ１４には、その格納例を示している。【００５３】
なお、仮想クリッピング枠４１を定義するためのデータや図形オフセットベクトルを定義するためのデータは、アプリケーションの実行中において随時変更可能とされ、再描画（Ｓ１１以降の処理の再実行）が可能になっている。【００５４】
このようにして仮想クリッピング枠４１と図形オフセットベクトルとが定義され、本動作が開始すると、まず、格納されている図形オフセットベクトル（図形オフセット量ｄｘ、ｄｙ）から、その逆ベクトルを算出する（図６のＳ１１）。【００５５】
続いて、Ｓ１１で算出された逆ベクトルから、共通クリッピング枠の拡大量を算出し（Ｓ１２）、その拡大量に応じて共通クリッピング枠を拡大する（Ｓ１３）。具体的には、クリッピング枠拡張モジュール３２が、拡大した共通クリッピング枠を定義するためのデータとして、クリッピング枠基準点座標ｃｏ、クリッピング枠幅ｃｗ、クリッピング枠高さｃｈを自動的に算出して両バッファ共通レジスタ３３に格納する。図７Ａに示した両バッファ共通レジスタ３３には、その格納例を示している。なお、これらのｃｏ、ｃｗ、ｃｈは、図７Ａに示した共通クリッピング枠４２のｃｏ、ｃｗ、ｃｈ（但し、図７Ａではフレームバッファ１２上の共通クリッピング枠４２のみ図示）に対応するものであり、次式を用いて自動的に算出される。【００５６】
ｃｏ＝ｆｏ−（｜ｄｘ｜，｜ｄｙ｜）
ｃｗ＝ｆｗ＋２＊｜ｄｘ｜
ｃｈ＝ｆｈ＋２＊｜ｄｙ｜
このように両バッファ共通レジスタ３３に共通クリッピング枠４２を定義するためのデータが格納されると、フレームバッファ１２上において、共通クリッピング枠４２内の領域であって仮想クリッピング枠４１内の領域を除いた残りの領域４７（図７Ａに示す斜線領域）は、描画が省略される描画省略領域となる。【００５７】
続いて、ステンシルバッファ有効参照範囲をリセットする（図６のＳ１４）。具体的には、ステンシルバッファ有効参照範囲を定義するためのデータである、有効参照範囲原点座標ｅｏ、有効参照範囲幅ｅｗ、有効参照範囲高さｅｈ、及び、有効参照範囲オフセット量ｅｒにおいて、ｅｒを０（ｅｒ＝（０，０））、すなわち有効参照範囲のＸ方向オフセット量を０、Ｙ方向オフセット量を０として、ｅｏ、ｅｗ、ｅｈを自動的に算出し、ステンシルバッファ有効参照範囲レジスタ３４に格納する。これにより、ステンシルバッファ有効参照範囲レジスタ３４には、オフセット無しの図形を描画する時のステンシルバッファ有効参照範囲を定義するためのデータが格納される。図７Ａに示したステンシルバッファ有効参照範囲レジスタ３４には、その格納例を示している。なお、これらのｅｏ、ｅｗ、ｅｈは、図７Ａのステンシルバッファ１１に示したステンシルバッファ有効参照範囲４３のｅｏ、ｅｗ、ｅｈに対応するものであり、次式を用いて自動的に算出される。【００５８】
ｅｏ＝ｆｏ＋ｅｒ
ｅｗ＝ｆｗ
ｅｈ＝ｆｈ
このときの状態（ｅｒ＝（０，０）のときの状態、標準状態ともいう）では、ステンシルバッファ有効参照範囲内の領域と、仮想クリッピング枠内の領域は画素座標的に一致している。【００５９】
続いて、ステンシルバッファ１１に基準図形（ステンシルマスク図形）を描画する（図６のＳ１５）。具体的には、画素塗り潰しモジュール３５が、ステンシルバッファ１１に、画素が図形形成モジュール１７により形成された図形であって共通クリッピング枠４２により切り取られた図形に含まれるか否かの判定結果（被覆判定結果）を描画する。すなわち、その図形が占有する画素を塗り潰す。図７Ａに示したステンシルバッファ１１には、そのステンシルマスク図形４４の描画例を示している。【００６０】
続いて、フレームバッファ１２にステンシルバッファ１１を写像し、フレームバッファ１２に基準図形（図形本体）を描画する（図６のＳ１６）。具体的には、画素塗り潰しモジュール３５が、ステンシルバッファ有効参照範囲レジスタ３４に格納されているデータと、ステンシルバッファ１１と、仮想クリッピング枠レジスタ３１に格納されているデータとを参照して、ステンシルバッファ有効参照範囲４３内の図形形状を抽出し、ステンシルバッファ有効参照範囲４３と仮想クリッピング枠４１とを対応させて（有効参照範囲原点座標ｅｏと仮想クリッピング枠基準点座標ｆｏとを対応させて）図形本体（オフセット無し図形）をフレームバッファ１２に描画する。すなわち、その図形本体が占有する画素を特定色（図形本体の色）で塗り潰す。図７Ａに示したフレームバッファ１２には、その図形本体４５の描画例を示している。【００６１】
続いて、ステンシルバッファ有効参照範囲４３を、図形オフセットベクトルの逆ベクトル分ずらす（図６のＳ１７）。具体的には、クリッピング枠拡張モジュール３２が、有効参照範囲原点座標ｅｏと有効参照範囲オフセット量ｅｒを、次式により算出する。【００６２】
ｅｏ＝ｆｏ＋ｅｒ
ｅｒ＝−（ｄｘ，ｄｙ）
そして、ステンシルバッファ有効参照範囲レジスタ３４に格納されている有効参照範囲原点座標ｅｏと有効参照範囲オフセット量ｅｒを、ここで算出したｅｏ、ｅｒへ更新する。図７Ｂに示したステンシルバッファ有効参照範囲レジスタ３４には、その更新例を示している。なお、ステンシルバッファ有効参照範囲３４のサイズは、本来意図した描画範囲のサイズと同じであるので、ｅｏとｅｒが更新されても、有効参照範囲幅ｅｗおよび有効参照範囲高さｅｈに変更はない。これにより、ステンシルバッファ有効参照範囲レジスタ３４には、オフセット有りの図形を描画する時のステンシルバッファ有効参照範囲を定義するためのデータが格納される。【００６３】
続いて、フレームバッファ１２にステンシルバッファ１１を写像し、フレームバッファ１２にオフセット図形（図形の影）を描画する（図６のＳ１８）。具体的には、画素塗り潰しモジュール３５が、ステンシルバッファ有効参照範囲レジスタ３４に格納されているデータと、ステンシルバッファ１１と、仮想クリッピング枠レジスタ３１に格納されているデータとを参照して、ステンシルバッファ有効参照範囲４３内の図形形状を抽出し、ステンシルバッファ有効参照範囲４３と仮想クリッピング枠４１とを対応させて（有効参照範囲原点座標ｅｏと仮想クリッピング枠基準点座標ｆｏとを対応させて）図形の影（オフセット有り図形）をフレームバッファ１２に描画する。すなわち、その図形の影が占有する画素を特定色（図形の影の色）で塗り潰す。図７Ｂに示したフレームバッファ１２には、その図形の影４６の描画例を示している。なお、ここでの処理では、第１の実施形態と同様に、公知のＺバッファ技法を用いることにより図形の本体と影の重なり制御（陰面消去）を正しく処理することができる。【００６４】
このような動作により、フレームバッファ１２に、余計な部分を含む本体の図形や一部が欠けた影の図形が描画されることなく、図形の本体及び影を正しく描画することができる。【００６５】
このように、本実施形態によれば、ステンシルバッファとフレームバッファにそれぞれ独立のクリッピング枠を設定できない構成でも、クリッピング枠を図形オフセット量に応じて大きく確保しておくと共に、ステンシルバッファに有効参照範囲を設定して当該有効参照範囲から外れる領域についてはフレームバッファへの描画を省略するようにしておき、図形本体描画時には図形オフセット量に応じたオフセット前の有効参照範囲を参照し、図形の影描画時には図形オフセット量に応じたオフセット後の有効参照範囲を参照して、フレームバッファへの描画を行うことによって、余計な部分を含まない本体や欠けの無い影を描画することができる。【００６６】
なお、上述の実施形態１及び２においては、図３及び図６を用いて説明したように、先に図形の本体を描画し次に図形の影を描画するように処理していたが、例えば、先に図形の影を描画し次に図形の本体を描画するように処理することも可能である。このようにする処理は、半透明な図形の描画などの特殊な用途において、正しい混色結果を得るために、先に図形の影を描画する必要がある場合などに有効である。【００６７】
また、上述の実施形態１及び２においては、図３のＳ３及び図６のＳ１３の説明で述べたように、クリッピング枠を拡大する際にクリッピング枠の４隅を均等に外側へ広げるように処理していたが、クリッピング枠の広げ方はこれに限らず、例えば図８に示すような広げ方をすることも可能である。同図に示した広げ方は、最低限必要な方向へ最低限必要な量だけクリッピング枠を広げるようにした例である。この例では、図形オフセット量ｄｘ，ｄｙの値が正の値であるか負の値であるかに応じて、クリッピング枠の４隅の広げ方が異なる。例えば、図形オフセット量ｄｘ，ｄｙの値が共に正の値であれば（ｄｘ＞０，ｄｙ＞０）、クリッピング枠の拡大前に対する拡大後の座標値の変分は、クリッピング枠の左上の隅で（−ｄｘ，−ｄｙ）となり、左下の隅で（−ｄｘ，０）となり、右上の隅で（０，−ｄｙ）となり、右下の隅で（０，０）となる。また、この場合、クリッピング枠基準点座標ｆｏの拡大前に対する拡大後の変分は、（−ｄｘ，−ｄｙ）となる。なお、同図において、標準位置とは、拡大前のクリッピング枠の位置を示す。また、標準値とは、拡大前のクリッピング枠基準点座標ｆｏの座標値を示す。【００６８】
また、上述の実施形態１及び２においては、ステンシルバッファ１１及びフレームバッファ１２のバッファサイズとディスプレイ装置６の画面サイズとを同じとしたが、両者のサイズが異なっていてもよい。例えば、画面サイズよりもバッファサイズを大きく構成することも可能である。この場合は、画像をスクロールさせる用途において好適である。【００６９】
また、上述の実施形態１及び２においては、描画対象を図形として説明したが、例えば文字等、その他の描画対象であっても良い。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。【００７０】
以上、本発明によれば、2次元図形の影表現のように、同一描画対象を所定距離だけオフセットさせて多重描画を行う場合に、欠けた部分や余計な部分が描画されることなく、その多重描画を行うことができる。
【図１】
2008087700.tif 000003
【図２】
2008087700.tif 000004
【図３】
2008087700.tif 000005
【図４Ａ】
2008087700.tif 000006
【図４Ｂ】
2008087700.tif 000007
【図５】
2008087700.tif 000008
【図６】
2008087700.tif 000009
【図７Ａ】
2008087700.tif 000010
【図７Ｂ】
2008087700.tif 000011
【図８】
2008087700.tif 000012
【図９】
2008087700.tif 000013
【図１０】
2008087700.tif 000014
【図１１】
2008087700.tif 000015
【図１２】
2008087700.tif 000016
【図１３】
2008087700.tif 000017
【手続補正書】
【提出日】平成21年1月22日(2009.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
同一の描画対象を所定距離だけオフセットさせて多重描画するグラフィックスシステムであって、
フレームバッファのクリッピング枠を定めるフレームバッファクリッピング枠データが記憶されるフレームバッファクリッピング枠データ記憶手段と、
前記描画対象のオフセット方向とオフセット量を定めるオフセットデータが記憶されるオフセットデータ記憶手段と、
ステンシルバッファのクリッピング枠であって前記フレームバッファのクリッピング枠よりも大きなクリッピング枠を定めるステンシルバッファクリッピング枠データが記憶されるステンシルバッファクリッピング枠データ記憶手段と、
オフセット無し又はオフセット有りの前記描画対象が前記フレームバッファに描画される時の参照基点となる前記ステンシルバッファ上の位置の位置データが記憶される位置データ記憶手段と、
前記描画対象と前記ステンシルバッファクリッピング枠データとに基づいて、前記描画対象についての画素の被覆判定結果を前記ステンシルバッファに描画する第１の描画手段と、
前記第１の描画手段により描画された前記ステンシルバッファと、前記位置データと、前記フレームバッファクリッピング枠データとを参照して、オフセット無し又はオフセット有りの前記描画対象を前記フレームバッファに描画する第２の描画手段と、
を備えることを特徴とするグラフィックスシステム。
【請求項２】
前記ステンシルバッファクリッピング枠データは、前記フレームバッファクリッピング枠データと前記オフセットデータとに基づいて算出される、
ことを特徴とする請求項１記載のグラフィックスシステム。
【請求項３】
オフセット無しの前記描画対象を前記フレームバッファに描画する場合の参照基点となる前記ステンシルバッファ上の位置の位置データは、前記フレームバッファクリッピング枠データに応じて決定され、
オフセット有りの前記描画対象を前記フレームバッファに描画する場合の参照基点となる前記ステンシルバッファ上の位置の位置データは、前記フレームバッファクリッピング枠データと前記オフセットデータとに基づいて算出される、
ことを特徴とする請求項１記載のグラフィックスシステム。
【請求項４】
前記参照基点となるステンシルバッファ上の位置は、前記ステンシルバッファのクリッピング枠内の位置である、
ことを特徴とする請求項１記載のグラフィックスシステム。
【請求項５】
同一の描画対象を所定距離だけオフセットさせて多重描画するグラフィックスシステムであって、
フレームバッファの仮想的なクリッピング枠を定める仮想クリッピング枠データが記憶される仮想クリッピング枠データ記憶手段と、
前記描画対象のオフセット方向とオフセット量を定めるオフセットデータが記憶されるオフセットデータ記憶手段と、
前記フレームバッファとステンシルバッファに共通のクリッピング枠であって前記仮想的なクリッピング枠よりも大きなクリッピング枠を定める共通クリッピング枠データが記憶される共通クリッピング枠データ記憶手段と、
オフセット無し又はオフセット有りの前記描画対象が前記フレームバッファに描画される時の参照範囲となる前記ステンシルバッファ上の範囲の範囲データが記憶される範囲データ記憶手段と、
前記描画対象と前記共通クリッピング枠データとに基づいて、前記描画対象についての画素の被覆判定結果を前記ステンシルバッファに描画する第１の描画手段と、
前記第１の描画手段により描画された前記ステンシルバッファと、前記範囲データと、前記仮想クリッピング枠データとを参照して、オフセット無し又はオフセット有りの前記描画対象を前記フレームバッファに描画する第２の描画手段と、
を備えることを特徴とするグラフィックスシステム。
【請求項６】
前記共通クリッピング枠データは、前記仮想クリッピング枠データと前記オフセットデータとに基づいて算出される、
ことを特徴とする請求項５記載のグラフィックスシステム。
【請求項７】
オフセット無しの前記描画対象が前記フレームバッファに描画される時の参照範囲となる前記ステンシルバッファ上の範囲の範囲データは、前記仮想クリッピング枠データに応じて決定され、
オフセット有りの前記描画対象が前記フレームバッファに描画される時の参照範囲となる前記ステンシルバッファ上の範囲の範囲データは、前記仮想クリッピング枠データと前記オフセットデータとに基づいて算出される、
ことを特徴とする請求項５記載のグラフィックスシステム。
【請求項８】
前記参照範囲となるステンシルバッファ上の範囲は、前記ステンシルバッファのクリッピング枠内の範囲である、
ことを特徴とする請求項５記載のグラフィックスシステム。
【請求項９】
前記描画対象は図形であり、前記フレームバッファに描画されるオフセット有りの前記描画対象は前記図形の影として表現される図形である、
ことを特徴とする請求項１又は５記載のグラフィックスシステム。
【請求項１０】
同一の描画対象を所定距離だけオフセットさせて多重描画するグラフィックスシステムの描画方法であって、
フレームバッファのクリッピング枠を定めるフレームバッファクリッピング枠データと、前記描画対象のオフセット方向とオフセット量を定めるオフセットデータとを入力し、
前記フレームバッファクリッピング枠データと前記オフセットデータとに基づいて、ステンシルバッファのクリッピング枠であって前記フレームバッファのクリッピング枠よりも大きなクリッピング枠を定めるステンシルバッファクリッピング枠データを算出し、
前記描画対象と前記ステンシルバッファクリッピング枠データとに基づいて、前記描画対象についての画素の被覆判定結果を前記ステンシルバッファに描画し、
オフセット無しの前記描画対象を前記フレームバッファに描画する時の参照基点となる前記ステンシルバッファ上の位置の位置データと、前記ステンシルバッファと、前記フレームバッファクリッピング枠データとを参照して、オフセット無しの前記描画対象を前記フレームバッファに描画し、オフセット有りの前記描画対象を前記フレームバッファに描画する時の参照基点となる前記ステンシルバッファ上の位置の位置データと、前記ステンシルバッファと、前記フレームバッファクリッピング枠データとを参照して、オフセット有りの前記描画対象を前記フレームバッファに描画する、
ことを特徴とするグラフィックスシステムの描画方法。
【国際調査報告】
2008087700.tif 000018
2008087700.tif 000019