(57)【要約】【課題】  タイルに基づく経路レンダリングを行う方法及びその装置を提供する。【解決手段】  一側面による少なくとも１つの経路を含む客体をレンダリングする方法は、経路データに基づいて、フレームに含まれたタイルそれぞれの周回回数を演算し、タイルの周回回数に基づいて、シェーディングの遂行いかんを決定する。【選択図】      図１
2016038917.tif 000002
【特許請求の範囲】
【請求項１】
経路を含む客体をレンダリングする方法において、
前記経路に含まれた頂点についての情報と前記経路に対応するコマンドとを含む経路データを獲得する段階と、
前記経路データに基づいて、フレームに含まれたタイルそれぞれの周回回数を演算する段階と、
前記タイルの周回回数に基づいて、シェーディングの遂行の仕方を決定する段階と、を含む方法。
【請求項２】
前記演算する段階は、
前記経路データに基づいて、前記フレームに含まれたタイルそれぞれの第１周回回数を設定する段階と、
前記第１周回回数に基づいて、前記フレームに含まれたタイルのうち、前記経路が通過するタイルそれぞれの第２周回回数を演算する段階と、を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記フレームに含まれたタイルのうち、前記経路が通過しないタイルそれぞれの周回回数は、前記第１周回回数に対応し、前記フレームに含まれたタイルのうち、前記経路が通過するタイルそれぞれの周回回数は、前記第２周回回数に対応することを特徴とする請求項２に記載の方法。
【請求項４】
前記第１周回回数を設定する段階は、
前記フレームに含まれたタイルそれぞれに、初期周回回数を割り当てる段階と、
前記フレームに含まれたタイルのうち、前記経路が通過するタイルを選択する段階と、
前記選択されたタイルにおいて、前記経路が通過する形態によって前記選択されたタイルの一側面側に位置するタイルの前記初期周回回数を更新する段階と、を含むことを特徴とする請求項２に記載の方法。
【請求項５】
前記一側面は、前記タイルそれぞれの位置と、前記フレーム内での前記経路の位置とを考慮して決定されることを特徴とする請求項４に記載の方法。
【請求項６】
前記選択する段階は、
前記フレームに含まれたタイルの一側面と交わる前記経路上の少なくとも１つの地点を決定する段階と、
前記決定された少なくとも１つの地点を基準に前記経路を分割する段階と、
前記フレームに含まれたタイルのうち、前記分割された経路を対角線にする四角形を含むタイルを選択する段階と、を含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記更新する段階は、
前記経路が前記選択されたタイルの対向する２つの境界線を、時計回り方向に通過する場合、前記初期周回回数に所定の値を加算し、前記経路が前記選択されたタイルの対向する２つの境界線を、反時計回り方向に通過する場合、前記初期周回回数から前記所定の値を減算することを特徴とする請求項４に記載の方法。
【請求項８】
前記更新する段階は、
前記経路が前記選択されたタイルの対向する２つの境界線を、時計回り方向に通過する場合、前記初期周回回数から所定の値を減算し、前記経路が前記選択されたタイルの対向する２つの境界線を、反時計回り方向に通過する場合、前記初期周回回数に前記所定の値を加算することにより、前記初期値を付与することを特徴とする請求項４に記載の方法。
【請求項９】
前記第２周回回数を演算する段階は、
前記経路の進行方向を考慮し、前記経路が通過するタイルに含まれたピクセルそれぞれの前記第２周回回数を演算することを特徴とする請求項２〜８のうち何れか１項に記載の方法。
【請求項１０】
前記一側面は、前記ピクセルそれぞれの位置と、前記経路の位置とを考慮して決定されることを特徴とする請求項９に記載の方法。
【請求項１１】
前記第２周回回数を演算する段階は、
前記経路が通過するタイルに含まれたピクセルそれぞれの一側面に、前記経路が位置するか否かということを確認する段階と、
前記経路の進行方向が時計回り方向である場合、前記第１周回回数に所定の値を加算し、前記決定された進行方向が反時計回り方向である場合、前記第１周回回数から前記所定の値を減算することにより、前記周回回数を演算する段階と、を含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記演算する段階は、
前記少なくとも１つの経路が通過するタイルに含まれたピクセルそれぞれの第３側面に、前記経路が位置するか否かということを確認する段階と、
前記経路の進行方向が時計回り方向である場合、前記第１周回回数から所定の値を減算し、前記決定された進行方向が反時計回り方向である場合、前記第１周回回数に前記所定の値を加算することにより、前記周回回数を演算する段階と、を含むことを特徴とする請求項９に記載の方法。
【請求項１３】
前記決定する段階は、既設定の規則に基づいて、前記シェーディングの遂行いかんを決定することを特徴とする請求項１〜１２のうち何れか１項に記載の方法。
【請求項１４】
前記経路データに、非単調曲線に対応する情報が含まれている場合、前記非単調曲線を複数の単調曲線に分割する段階をさらに含み、
前記演算する段階は、前記分割された単調曲線それぞれの位置及び進行方向に基づいて、前記周回回数を演算することを特徴とする請求項１〜１３のうち何れか１項に記載の方法。
【請求項１５】
前記分割する段階は、ド・カステリョのアルゴリズムに基づいて、前記非単調曲線を複数の単調曲線に分割することを特徴とする請求項１４に記載の方法。
【請求項１６】
グラフィック処理装置（ＧＰＵ）から、少なくとも１つの経路についての情報とフレームに含まれたタイルそれぞれに設定された第１周回回数についての情報とを受信する段階と、
前記受信された情報を利用して、前記フレームに含まれたピクセルそれぞれに対応する周回回数を演算する段階と、
前記演算された周回回数を、前記グラフィック処理装置に出力する段階と、を含むピクセルの周回回数を演算する方法。
【請求項１７】
請求項１ないし１６のうちいずれか１項に記載の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【請求項１８】
経路を含む客体をレンダリングする装置において、
前記経路に含まれた頂点についての情報と前記経路に対応するコマンドとを含む経路データを獲得し、前記経路データに基づいて、フレームに含まれたタイルそれぞれの周回回数を演算する演算部と、
前記タイルの周回回数に基づいて、シェーディングの遂行の仕方を決定する決定部と、を含む装置。
【請求項１９】
前記演算部は、
前記経路データに基づいて、前記フレームに含まれたタイルそれぞれの第１周回回数を設定し、
前記第１周回回数に基づいて、前記フレームに含まれたタイルのうち、前記経路が通過するタイルそれぞれの第２周回回数を演算することを特徴とする請求項１８に記載の装置。
【請求項２０】
前記フレームに含まれたタイルのうち、前記経路が通過しないタイルそれぞれの周回回数は、前記第１周回回数に対応し、前記フレームに含まれたタイルのうち、前記経路が通過するタイルそれぞれの周回回数は、前記第２周回回数に対応することを特徴とする請求項１９に記載の装置。
【請求項２１】
前記演算部は、
前記フレームに含まれたタイルそれぞれに初期周回回数を割り当て、
前記フレームに含まれたタイルのうち、前記経路が通過するタイルを選択し、
前記選択されたタイルにおいて、前記経路が通過する形態によって前記選択されたタイルの一側面側に位置するタイルの前記初期周回回数を更新することを特徴とする請求項１９に記載の装置。
【請求項２２】
前記一側面は、前記タイルそれぞれの位置と、前記フレーム内での前記経路の位置とを考慮して決定されることを特徴とする請求項２１に記載の装置。
【請求項２３】
前記演算部は、
前記フレームに含まれたタイルの一側面と交わる前記経路上の少なくとも１つの地点を決定し、
前記決定された少なくとも１つの地点を基準に前記経路を分割し、
前記フレームに含まれたタイルのうち、前記分割された経路を対角線にする四角形を含むタイルを選択することを特徴とする請求項２１に記載の装置。
【請求項２４】
前記演算部は、
前記経路が前記選択されたタイルの対向する２つの境界線を、時計回り方向に通過する場合、前記初期周回回数に所定の値を加算し、前記経路が前記選択されたタイルの対向する２つの境界線を、反時計回り方向に通過する場合、前記初期周回回数から前記所定の値を減算することを特徴とする請求項２１に記載の装置。
【請求項２５】
前記演算部は、
前記経路が前記選択されたタイルの対向する２つの境界線を、時計回り方向に通過する場合、前記初期周回回数から所定の値を減算し、前記経路が前記選択されたタイルの対向する２つの境界線を、反時計回り方向に通過する場合、前記初期周回回数に前記所定の値を加算することにより、前記初期値を付与することを特徴とする請求項２１に記載の装置。
【請求項２６】
前記演算部は、
前記経路の進行方向を考慮し、前記経路が通過するタイルに含まれたピクセルそれぞれの前記第２周回回数を演算することを特徴とする請求項１９〜２５のうち何れか１項に記載の装置。
【請求項２７】
前記一側面は、前記ピクセルそれぞれの位置と、前記経路の位置とを考慮して決定されることを特徴とする請求項２６に記載の装置。
【請求項２８】
前記演算部は、
前記経路が通過するタイルに含まれたピクセルそれぞれの一側面に、前記経路が位置するか否かということを確認し、
前記経路の進行方向が時計回り方向である場合、前記第１周回回数に所定の値を加算し、前記決定された進行方向が反時計回り方向である場合、前記第１周回回数から前記所定の値を減算することにより、前記周回回数を演算することを特徴とする請求項２６に記載の装置。
【請求項２９】
前記演算部は、
前記少なくとも１つの経路が通過するタイルに含まれたピクセルそれぞれの第３側面に、前記経路が位置するか否かということを確認し、
前記経路の進行方向が時計回り方向である場合、前記第１周回回数から所定の値を減算し、前記決定された進行方向が反時計回り方向である場合、前記第１周回回数に前記所定の値を加算することにより、前記周回回数を演算することを特徴とする請求項２６に記載の装置。
【請求項３０】
前記決定部は、既設定の規則に基づいて、前記シェーディングの遂行いかんを決定することを特徴とする請求項１８〜２９のうち何れか１項に記載の装置。
【請求項３１】
前記経路データに非単調曲線に対応する情報が含まれている場合、前記非単調曲線を複数の単調曲線に分割する分割部をさらに含み、
前記演算部は、前記分割された単調曲線それぞれの位置及び進行方向に基づいて、前記周回回数を演算することを特徴とする請求項１８〜３０のうち何れか１項に記載の装置。
【請求項３２】
前記分割部は、ド・カステリョのアルゴリズムに基づいて、前記非単調曲線を複数の単調曲線に分割することを特徴とする請求項３１に記載の装置。
【請求項３３】
客体を構成する少なくとも１つの経路をレンダリングするグラフィック処理装置（ＧＰＵ）に連結され、フレームに含まれたピクセルそれぞれの周回回数を生成する装置において、
前記グラフィック処理装置から、前記少なくとも１つの経路についての情報と前記フレームに含まれたタイルそれぞれに設定された第１周回回数についての情報とを受信し、
前記受信された情報を利用して、前記フレームに含まれたピクセルそれぞれに対応する周回回数を演算し、
前記演算された周回回数を、前記グラフィック処理装置に出力する装置。
【請求項３４】
経路を含む映像を、それぞれ複数のピクセルを含むタイルに分割する段階と、
前記複数のタイルにおいて、経路が存在しないタイルに属するピクセルと、経路が存在するタイルに属するピクセルとに、異なる方式で周回回数を割り当てる段階と、を含む客体をレンダリングする方法。
【請求項３５】
前記周回回数を割り当てる段階は、前記経路が存在しないタイルそれぞれに属する全てのピクセルに、同一周回回数を割り当てることを特徴とする請求項３４に記載の方法。
【請求項３６】
前記周回回数を割り当てる段階は、前記経路が存在するタイルそれぞれに属するピクセルに、各ピクセルの位置、並びに各タイルに存在する経路の位置及び進行方向により、周回回数を割り当てることを特徴とする請求項３４に記載の方法。
【請求項３７】
前記経路が非単調曲線である場合、前記非単調曲線を複数の単調曲線に分割する段階、をさらに含み、
前記周回回数を割り当てる段階は、前記単調曲線が存在しないタイルに属するピクセルと、前記単調曲線が存在するタイルに属するピクセルとに、異なる方式で周回回数を割り当てることを特徴とする請求項３４に記載の方法。
【請求項３８】
前記割り当てられた周回回数に基づいて、シェーディングの遂行いかんを決定する段階をさらに含むことを特徴とする請求項３４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイルに基づく経路レンダリングを行う方法及びその装置に関する。
【背景技術】
【０００２】
最近、ベクトルグラフィックス（vector  graphics）または経路レンダリング（path  rendering）を遂行する場合、グラフィック処理装置（ＧＰＵ：graphics  processing  unit）の加速性能を向上させるための方法が研究されている。三次元グラフィックを加速させるために、全ての入力データが、三角形（triangle）によって構成されるという仮定の下、ＧＰＵのハードウェア構造が設計されるが、経路レンダリングの場合、入力データが三角形によって構成されず、コマンド（command）と頂点（vertex）との組み合わせによって構成されている。従って、経路レンダリングを行うとき、ＧＰＵの加速性能を向上させ難い。
【０００３】
例えば、ＧＰＵを利用して、１本の曲線（curve）を描くためには、まずＣＰＵが曲線の開始点を中心にして、曲線を多数の三角形に分割し、OpenＧＬ  ＡＰＩを利用して、ＧＰＵで分割された三角形を曲線に再構成するように指示する。従って、ＣＰＵが曲線を多数の三角形に分割するのに多くの時間が必要となり、多数のOpenＧＬ  ＡＰＩを呼び出すたびに、ＧＰＵとの通信が必要であり、ＧＰＵ上で多くの状態変化が発生する。
【０００４】
従って、ＧＰＵ内に存在するステンシルバッファ（stencil  buffer）を利用するステンシルに基づく経路レンダリング（stencil-based  path  rendering）方法が提案されている。しかし、ステンシルに基づく経路レンダリング方法は、レンダリング遂行中に、メモリ入出力（memory  Ｉ／Ｏ）が過度に発生し、ステンシルバッファは、並列処理が不可能であり、ＧＰＵの加速性能を向上させるのに限界が存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、タイルに基づく経路レンダリングを行う方法及びその装置の提供にある。また、前記方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体の提供にある。
【０００６】
本実施形態が解決すべき技術的課題は、前述のような技術的課題に限定されるものではなく、以下の実施形態から他の技術的課題が類推されもする。
【課題を解決するための手段】
【０００７】
一側面による経路を含む客体をレンダリングする方法は、前記経路に含まれた頂点（vertex）についての情報、及び前記経路に対応するコマンドを含む経路データを獲得する段階と、前記経路データに基づいて、フレームに含まれたタイルそれぞれの周回回数を演算する段階と、前記タイルの周回回数に基づいて、シェーディング（shading）の遂行いかんを決定する段階と、を含む。
【０００８】
他の側面によるピクセルの周回回数を演算する方法は、グラフィック処理装置（ＧＰＵ）から、少なくとも１つの経路についての情報、及びフレームに含まれたタイルそれぞれに設定された第１周回回数についての情報を受信する段階と、前記受信された情報を利用して、前記フレームに含まれたピクセルそれぞれに対応する周回回数を演算する段階と、前記演算された周回回数を、前記グラフィック処理装置に出力する段階と、を含む。
【０００９】
さらに他の側面による客体をレンダリングする方法は、経路を含む映像を、それぞれ複数のピクセルを含むタイルに分割する段階と、前記複数のタイルにおいて、経路が存在しないタイルに属するピクセルと、経路が存在するタイルに属するピクセルとに、異なる方式で周回回数を割り当てする段階と、を含む。
【００１０】
さらに他の側面によるコンピュータで読み取り可能な記録媒体は、前述の方法をコンピュータで実行させるためのプログラムを記録した記録媒体を含む。
【００１１】
さらに他の側面による経路を含む客体をレンダリングする装置は、前記経路に含まれた頂点（vertex）についての情報、及び前記経路に対応するコマンドを含む経路データを獲得し、前記経路データに基づいて、フレームに含まれたタイルそれぞれの周回回数を演算する演算部と、前記タイルの周回回数に基づいて、シェーディング（shading）の遂行いかんを決定する決定部と、を含む。
【００１２】
さらに他の側面による客体を構成する少なくとも１つの経路をレンダリングするグラフィック処理装置（ＧＰＵ）に連結され、フレームに含まれたピクセルそれぞれの周回回数を生成する装置は、前記グラフィック処理装置から、前記少なくとも１つの経路についての情報、及び前記フレームに含まれたタイルそれぞれに設定された第１周回回数についての情報を受信し、前記受信された情報を利用して、前記フレームに含まれたピクセルそれぞれに対応する周回回数を演算し、前記演算された周回回数を、前記グラフィック処理装置に出力する。
【発明の効果】
【００１３】
本発明によれば、フレームに含まれたピクセルのうち、経路が通過するタイルに含まれたピクセルついてのみ周回回数（winding  number）を演算することにより、レンダリング装置の性能が向上する。
【００１４】
本発明によれば、また、ステンシルバッファの使用なしに、経路レンダリングが行われるが、ステンシルバッファを使用することにより、メモリ入出力が過度に発生する問題と、重複メモリ入出力が発生する問題とが解消される。
【００１５】
本発明によれば、また、フレームに含まれたピクセルそれぞれに対して並列に周回回数を生成することにより、高速で経路レンダリングが行われ、短時間内に高解像度のレンダリングが行われる。
【図面の簡単な説明】
【００１６】
【図１】一実施形態によるレンダリング装置の一例を図示した構成図である。
【図２】一実施形態による経路レンダリングを行う方法の一例を示すフローチャートである。
【図３】一実施形態による周回回数について説明するための図面である。
【図４】一実施形態による演算部が、タイルの周回回数を演算する一例について説明するための図面である。
【図５】一実施形態による演算部が、第１周回回数を設定するのに利用される経路の一例を図示した図面である。
【図６】一実施形態による演算部が、フレームに含まれたタイルのうち、第１経路が通過するタイルを選択する一例について説明するための図面である。
【図７】一実施形態による演算部が、フレームに含まれたタイルのうち、経路が通過するタイルを選択する一例について説明する図面である。
【図８】一実施形態による演算部が、タイルの第１初期値を獲得する一例について説明するための図面である。
【図９】一実施形態による演算部が、１つの経路に対して第１初期値を付与する規則の一例を示す図面である。
【図１０】一実施形態による演算部が、フレームに含まれたタイルのうち、第２経路が通過するタイルを選択し、タイルの第２初期値を獲得する一例について説明するための図面である。
【図１１】一実施形態による演算部が、２以上の経路の進行方向を考慮し、初期値を付与する規則の一例を示す図面である。
【図１２】一実施形態による経路が３つである場合、設定部がタイルの初期値を設定する一例について説明するための図面である。
【図１３】一実施形態による設定部が、フレームに含まれたタイルのうち、第３経路が通過するタイルを選択し、タイルの第３初期値を獲得する一例について説明するための図面である。
【図１４】一実施形態による演算部が、第１周回回数を設定するのに利用される経路の他の例を図示した図面である。
【図１５】一実施形態による演算部が、第１周回回数を設定する他の例について説明するための図面である。
【図１６】一実施形態による演算部が、経路が通過するタイルの第２周回回数を演算する一例について説明するための図面である。
【図１７】一実施形態による決定部がフレームに含まれたピクセルそれぞれの周回回数に基づいて、シェーディングの遂行いかんを決定する一例について説明するための図面である。
【図１８】一実施形態によるレンダリング装置の他の例を図示した構成図である。
【図１９】一実施形態による分割部が動作する一例について説明するための図面である。
【図２０】一実施形態による経路データに含まれた非単調曲線の一例を図示した図面である。
【図２１】一実施形態による演算部が、図２０に図示された第１単調曲線を利用して、所定のタイルの初期周回回数を、第１初期値に更新する一例について説明するための図面である。
【図２２】一実施形態による演算部が、図２０に図示された第２単調曲線を利用して、所定のタイルの第１初期値を第２初期値に更新する一例について説明するための図面である。
【図２３】一実施形態による演算部が、図２０に図示された頂点Ｐ２から頂点Ｐ０までの経路を利用して、所定のタイルの第２初期値を第３初期値に更新する一例について説明するための図面である。
【図２４】一実施形態による分割部が円形経路をキュービック（cubic）曲線に変換する一例について説明するための図面である。
【図２５】一実施形態によるレンダリング装置のさらに他の例を図示した構成図である。
【図２６】一実施形態による周回回数生成装置の一例について説明するための構成図である。
【図２７】一実施形態による経路をレンダリングする方法が、ＧＰＵで具現化される例について説明するための図面である。
【図２８】一実施形態によるバーテックスシェーダが動作する一例について説明するための図面である。
【図２９】一実施形態によるバーテックスシェーダがタイルビニングを行う一例について説明するための図面である。
【図３０】一実施形態によるバーテックスシェーダがピクセルの周回回数を演算し、ピクセルのシェーディングを行うか可否を決定する一例について説明するための図面である。
【図３１】一実施形態によるピクセルの周回回数を演算する方法の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照し、実施形態について詳細に説明する。
【００１８】
図１は、一実施形態によるレンダリング装置の一例を図示した構成図である。図１を参照すれば、レンダリング装置１００は、演算部１１０及び決定部１２０を含む。図１に図示されたレンダリング装置１００には、本実施形態と係わる構成要素が図示されている。従って、図１に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよい。
【００１９】
また、図１に図示されたレンダリング装置１００の演算部１１０及び決定部１２０は、１個または複数個のプロセッサにも該当する。該プロセッサは、多数の論理ゲートのアレイによっても具現化されてもよいし、汎用的なマイクロプロセッサと、該マイクロプロセッサで実行されるプログラムが保存されたメモリとの組み合わせによって具現化されてもよい。また、他の形態のハードウェアによっても具現化されてよいことを、本実施形態が属する技術分野で当業者であるならば、理解することができるであろう。
【００２０】
演算部１１０は、経路に含まれた頂点（vertex）についての情報、及び経路に対応するコマンドを含む経路データを獲得する。そして、演算部１１０は、経路データに基づいて、フレームに含まれたタイルそれぞれの周回回数（winding  number）を演算する。
【００２１】
例えば、演算部１１０は、レンダリング装置１００の外部装置から、経路データ（path  data）を受信し、経路データに含まれた経路の位置及び進行方向についての情報に基づいて、タイルそれぞれに、第１周回回数を設定することができる。ここで、外部装置は、レンダリング装置１００に含まれたメモリでもあり、レンダリング装置１００の外部に存在するメモリまたはＣＰＵ（central  processing  unit）でもある。そして、演算部１１０は、第１周回回数に基づいて、フレームに含まれたタイルのうち、経路が通過するタイルそれぞれの第２周回回数を演算することができる。
【００２２】
そして、決定部１２０は、タイルの周回回数に基づいて、シェーディング（shading）の遂行いかんを決定する（例えば、シェーディングするか否かのようなシェーディングの遂行の仕方を決定する）。
【００２３】
レンダリング装置１００は、タイル単位で周回回数を演算し、演算された周回回数に基づいて、シェーディングの遂行いかんを決定する。具体的には、演算部１１０は、フレームに含まれたタイルのうち経路が通過しないタイルについては、第１周回回数を周回回数に決定し、経路が通過するタイルについては、第２周回回数を周回回数に決定する。従って、フレームに含まれたタイルのうち、経路が通過するタイルついてのみ精密に周回回数が演算され、レンダリング装置１００の性能が向上するのである。
【００２４】
以下、図２を参照し、レンダリング装置１００が動作する一例について具体的に説明する。
【００２５】
図２は、一実施形態による経路レンダリングを行う方法の一例を示すフローチャートである。図２を参照すれば、経路レンダリングを行う方法は、図１に図示されたレンダリング装置１００において、時系列的に処理される段階によって構成される。
【００２６】
２１０段階において、演算部１１０は、経路に含まれた頂点についての情報、及び経路に対応するコマンドを含む経路データを獲得する。
【００２７】
該経路は、レンダリング装置１００がレンダリングを行う対象（例えば、客体）を構成する要素でもある。例えば、該経路は、一地点から他の地点まで続く直線または曲線でもあり、客体は、１以上の経路が連結されて形成された閉多角形（closed  polygon）または閉経路（closed  path）を含んでもよい。レンダリング装置１００は、映像または映像の一部分を、連続した小サイズのタイルに分け、レンダリングを行うことができる。例えば、レンダリング装置１００は、動画または静止映像を示すフレーム、画面全体あるいは一部分を、連続した小サイズのタイルに分けてレンダリングを行うことができる。例えば、１つのタイルには、３２＊３２個のピクセルが含まれてもよいが、前述の個数に限定されるものではない。
【００２８】
経路データには、経路に含まれた複数の頂点それぞれの座標についての情報、及び頂点を組み合わせて経路を構成するためのコマンド（command）が含まれる。ここで、該頂点は、経路の開始位置に対応する頂点、または経路の終了位置に対応する頂点を含んでもよい。
【００２９】
例えば、フレームに含まれたピクセルのうち、第１ピクセルから第２ピクセルまでの直線を経路と仮定すれば、該頂点は、第１ピクセル及び第２ピクセルそれぞれに対応する地点を意味する。従って、経路データは、第１ピクセルに対応する第１頂点の座標、第２ピクセルに対応する第２ピクセルの座標、及び第１頂点から第２頂点まで直線を構成せよというコマンドを含む。従って、経路データを参照すれば、経路を構成する頂点それぞれの座標についての情報だけではなく、経路の位置及び進行方向についての情報も把握される。また、経路データには、それぞれのピクセルに設定されるカラー値についての情報が含まれてもよい。
【００３０】
２２０段階において、演算部１１０は、経路データに基づいて、フレームに含まれたタイルそれぞれの周回回数を演算する。
【００３１】
演算部１１０は、経路データに含まれた経路の位置及び進行方向についての情報に基づいて、タイルそれぞれに、第１周回回数を設定する。そして、演算部１１０は、第１周回回数に基づいて、フレームに含まれたタイルのうち、経路が通過するタイルそれぞれの第２周回回数を演算する。
【００３２】
タイルの周回回数は、そのタイルに含まれたピクセルそれぞれの周回回数を意味し、経路の通過いかんによって、タイルの全てのピクセルは、同一周回回数を有することもでき、それぞれ異なる周回回数を有することもできる。
【００３３】
ここで、周回回数は、特定ピクセルの一側面に対して、経路が描かれる間、経路が何回回転するかということを示す既定値でもある。
【００３４】
周回回数は、経路が時計回り方向に回転する場合には、既定値を加算し、経路が反時計回り方向に回転する場合には、既定値を減算することによって演算されるが、反対の方式で演算されてもよい。言い換えれば、周回回数は、経路が時計回り方向に回転する場合には、既定値を減算し、経路が反時計回り方向に回転する場合には、既定値を加算することによっても演算される。
【００３５】
一例として、経路が時計回り方向に１回り回転するならば、ピクセルの周回回数は、＋１になり、経路が反時計回り方向に１回り回転するならば、ピクセルの周回回数は、−１にもなる。
【００３６】
他の例として、経路が時計回り方向に１回り回転するならば、ピクセルの周回回数は、−１になり、経路が反時計回り方向に１回り回転するならば、ピクセルの周回回数は、＋１にもなる。
【００３７】
また、既定値は、整数にもなるが、それに限定されるものではない。言い換えれば、周回回数は、特定ピクセルの位置から一側面を見るとき、経路が描かれる間の回転数にマッピングされた数であるならば、制限なしに該当する。
【００３８】
以下では、説明の便宜のために、経路が時計回り方向に１回り回転する場合の周回回数が＋１になり、経路が反時計回り方向に１回り回転する場合の周回回数が−１になると仮定して説明する。以下、図３を参照し、周回回数について詳細に説明する。
【００３９】
図３は、一実施形態による周回回数について説明するための図面である。図３には、フレーム３１０に含まれたピクセルのうち、いずれか１つのピクセルＰに対応する周回回数について説明するための一例が図示されている。図３では、説明の便宜のために、ピクセルＰを、一方向を注視している人の形状で図示している。
【００４０】
図３を参照すれば、ピクセルＰの周辺に沿って、経路３３０が図示されており、経路３３０は、閉経路であるように図示されている。ピクセルＰから右側水平方向に、仮想の線３２０を図示すれば、仮想の半直線３２０と経路３３０は、全部で４個の頂点３３１，３３２，３３３，３３４で交差する。従って、ピクセルＰの周回回数は、４個の点３３１，３３２，３３３，３３４それぞれでの経路が描かれる方向に基づいて決定される。
【００４１】
具体的には、第１点３３１で経路３３０が描かれる方向は、反時計回り方向（下から上で描かれる）に該当する。従って、一次的にピクセルＰの周回回数は、−１になる。そして、第２点３３２で経路３３０が描かれる方向は、時計回り方向（上から下に描かれる）に該当する。従って、二次的にピクセルＰの周回回数は、−１＋１＝０と演算される。そして、第３点３３３で経路３３０が描かれる方向は、反時計回り方向に該当する。従って、３次的にピクセルＰの周回回数は、−１＋１−１＝−１と演算される。そして、第４点３３４で経路３３０が描かれる方向は、反時計回り方向に該当する。従って、最終的にピクセルＰの周回回数は、−１＋１−１−１＝−２と演算される。
【００４２】
図３を参照して説明したところによれば、ピクセルＰの周回回数は、ピクセルＰの右側に位置した経路を考慮して演算されるように記載されているたが、それに限定されるものではない。言い換えれば、演算部１１０は、ピクセルＰの位置を中心に、左側、右側、上側及び下側のうちいずれか一つに位置した経路を考慮し、ピクセルＰの周回回数を演算することができる。
【００４３】
演算部１１０は、ステンシルバッファを利用せず、タイルそれぞれの周回回数を演算することができる。言い換えれば、演算部１１０は、客体を含む三角形をステンシルバッファに描かず、タイルそれぞれの周回回数を並列に演算することができる。従って、ステンシルバッファに基づいたレンダリングで示されるデータ入出力回数が増える問題、及びレンダリングに必要となる時間が延長される問題を解消することができる。
【００４４】
また、演算部１１０は、複数のスレッド（thread）を利用して、周回回数を演算することができる。単一スレッドは、単一ピクセルの周回回数の演算にも利用される。そのとき、複数のスレッドは、並列に処理が可能であるので、演算部１１０は、複数のスレッドを利用して、複数のピクセルそれぞれに対する周回回数を同時に演算することができる。従って、レンダリング装置１００は、高速で経路レンダリングを行うことができる。
【００４５】
さらに図３を参照すれば、演算部１１０は、経路が通過するタイルついてのみ細部的に周回回数を演算する。言い換えれば、演算部１１０は、フレームに含まれた全てのタイルに対して第１周回回数を設定し、演算部１１０は、フレームに含まれた全てのタイルのうち、経路が通過するタイルついてのみ第１周回回数に基づいて、第２周回回数を演算する。経路が通過しないタイルに含まれたピクセルの周回回数が第１周回回数に決定されるから、経路が通過しないタイルに含まれた全てのピクセルは、同一周回回数を有する。従って、レンダリング装置１００は、迅速に経路に対するレンダリングを行うことができる。
【００４６】
以下、図４を参照し、演算部１１０が、経路が通過するタイルついてのみ、第２周回回数を演算する一例について説明する。
【００４７】
図４は、一実施形態による演算部が、タイルの周回回数を演算する一例について説明するための図面である。図４には、複数のタイルで構成されたフレーム４１０と、星状の客体４２０を構成する複数の経路ｅ０，ｅ１，ｅ２，ｅ３，ｅ４とが図示されている。図４を参照すれば、タイルＡは、客体４２０を構成する経路ｅ０，ｅ１，ｅ２，ｅ３，ｅ４が通過しない。しかし、タイルＢは、客体４２０を構成する経路のうち、経路ｅ０及び経路ｅ２が通過する。
【００４８】
一般的な周回回数演算の場合、フレーム４１０に含まれたそれぞれのピクセルの周回回数が独立して演算される。例えば、ピクセルＰ１の周回回数は、ピクセルＰ１の一側面に存在する全ての経路ｅ０，ｅ１の位置及び進行方向を考慮して演算される。また、ピクセルＰ２の周回回数は、ピクセルＰ２の一側面に存在する全ての経路ｅ０，ｅ２，ｅ４，ｅ１の位置及び進行方向を考慮して演算される。
【００４９】
もしピクセルＰ１，Ｐ２の右側に位置した経路に基づいて、周回回数が演算されると仮定するならば、タイルＡには、経路が通過しないにもかかわらず、ピクセルＰ１の周回回数は、タイルを通過しない経路ｅ０，ｅ１に基づいて演算される。また、ピクセルＰ２の周回回数も、タイルを通過する経路ｅ０，ｅ２だけではなく、タイルを通過しない経路ｅ４，ｅ１も考慮して演算される。従って、一般的なレンダリング装置が、ピクセルＰ１，Ｐ２の周回回数を演算するためには、タイルＡ，Ｂを通過しない経路まで考慮しなければならないので、多くの演算を行わなければならない。
【００５０】
しかし、レンダリング装置１００は、経路が通過しないタイルを考慮せず、ピクセルの周回回数を演算することができる。具体的には、演算部１１０は、経路の位置及び進行方向に基づいて、フレーム４１０に含まれたタイルそれぞれに、第１周回回数を設定し、演算部１１０は、フレーム４１０に含まれたタイルのうち、経路が通過するタイルのみの第２周回回数を演算する。従って、レンダリング装置１００は、経路が通過しないタイルの場合は、ピクセルの周回回数を独立して演算しなくても、全てのピクセルの周回回数を決定することができる。これにより、レンダリング装置１００は、高速で経路レンダリングを行うことができる。
【００５１】
再び図２を参照すれば、２３０段階において、決定部１２０は、タイルの周回回数に基づいて、シェーディングの遂行いかんを決定する。
【００５２】
そのとき、シェーディングは、フラグメントシェーダ（fragment  shader）２７３１によって行われる。従って、決定部１２０は、フラグメントシェーダ２７３１に、ピクセルのシェーディングを遂行せよという指示を下すか否かということを決定することができる。ここで、該シェーディングは、ピクセルそれぞれにカラーを設定する過程でもあるが、それに限定されるものではない。例えば、シェーディングは、ピクセルそれぞれに明暗を設定する過程にもなり、ピクセルそれぞれに質感を示す過程にもなる。また、フラグメントシェーダ２７３１は、テクスチャ（texture）に基づいて、ピクセルのシェーディングを行うことができる。
【００５３】
例えば、決定部１２０は、経路が通過しないタイルに属したピクセルについては、演算部１１０が設定した第１周回回数に基づいて、シェーディングの遂行いかんを決定し、経路が通過するタイルに属したピクセルについては、演算部１１０が演算した第２周回回数に基づいて、シェーディングの遂行いかんを決定することができる。そのとき、決定部１２０は、既設定の規則に基づいて、シェーディングの遂行いかんを決定することができる。
【００５４】
以下、図５ないし図１５を参照し、演算部１１０がタイルそれぞれに第１周回回数を設定する一例について説明する。
【００５５】
図５は、一実施形態による演算部が、第１周回回数を設定するのに利用される経路の一例を図示した図面である。図５を参照すれば、フレーム５１０は、６＊６個のタイルを含み、三角形の客体５２０は、３個の経路ｅ０，ｅ１，ｅ２を含むように図示されている。そのとき、経路ｅ０は、頂点Ｐ０から頂点Ｐ１までの直線経路であり、経路ｅ１は、頂点Ｐ１から頂点Ｐ２までの直線経路であり、経路ｅ２は、頂点Ｐ２から頂点Ｐ０までの直線経路であるように図示されている。
【００５６】
図６ないし図１３を参照して説明する演算部１１０の動作は、図５に図示された経路ｅ０，ｅ１，ｅ２に基づいて遂行されると仮定する。言い換えれば、演算部１１０が受信する経路データには、経路ｅ０，ｅ１，ｅ２それぞれの位置及び進行方向についての情報が含まれていると仮定する。
【００５７】
具体的には、経路データには、複数の頂点Ｐ０，Ｐ１，Ｐ２それぞれの座標についての情報、及び頂点を組み合わせて経路ｅ０，ｅ１，ｅ２を形成するためのコマンド（例えば、頂点Ｐ０から頂点Ｐ１までの直線経路を描けというコマンド、頂点Ｐ１から頂点Ｐ２までの直線経路を描けというコマンド、及び頂点Ｐ２から頂点Ｐ０までの直線経路を描けというコマンド）が含まれていると仮定する。
【００５８】
演算部１１０は、フレームに含まれたタイルそれぞれに、第１周回回数を設定する。具体的には、演算部１１０は、フレームに含まれたタイルそれぞれに、初期周回回数を割り当てる。例えば、初期周回回数は、０であってもよい。言い換えれば、フレームに含まれたタイルそれぞれには、０がデフォルト（default）値に割り当てられる。
【００５９】
そして、演算部１１０は、フレームに含まれたタイルのうち、少なくとも１つの経路が通過するタイルを選択する。そして、演算部１１０は、選択されたタイルそれぞれにおいて経路が通過する形態により、選択されたタイルの一側面に位置するタイルそれぞれの初期周回回数を更新する。ここで、タイルの一側面は、タイルの左側、右側、上側及び下側のうち、いずれか一つを意味する。具体的には、演算部１１０がフレームに含まれたタイルのうち、少なくとも１つの経路が通過するタイルを選択し、選択されたタイルの一側面に位置するタイルそれぞれの初期周回回数を更新する一例は、以下の通りである。
【００６０】
まず、演算部１１０は、外部装置から経路データを受信する。そのとき、経路データには、図５に図示された客体の総３個の経路ｅ０，ｅ１，ｅ２についての情報が含まれている。演算部１１０は、フレームに含まれた全てのタイルに、０を初期周回回数として割り当て、複数の経路ｅ０，ｅ１，ｅ２を順次に考慮し、タイルに割り当てられた０を更新することにより、第１周回回数を設定する。
【００６１】
具体的には、演算部１１０は、第１経路ｅ０の位置及び進行方向に基づいて、タイルに割り当てられた初期周回回数（例えば、０）に、所定の値を加算したり減算したりすることにより、第１初期値ＷＮｉｎｉｔ＿１を獲得する。そのとき、フレームに含まれたタイルのうち一部は、初期周回回数がそのまま第１初期値ＷＮｉｎｉｔ＿１に決定される。
【００６２】
その後、演算部１１０は、第２経路ｅ１の位置及び進行方向に基づいて、第１初期値ＷＮｉｎｉｔ＿１に所定の値を加算したり減算したりすることにより、第２初期値ＷＮｉｎｉｔ＿２を獲得する。そのとき、フレームに含まれたタイルのうち一部は、第１初期値ＷＮｉｎｉｔ＿１がそのまま第２初期値ＷＮｉｎｉｔ＿２に決定される。
【００６３】
その後、演算部１１０は、第３経路ｅ２の位置及び進行方向に基づいて、第２初期値ＷＮｉｎｉｔ＿２に所定の値を加算したり減算したりすることにより、第３初期値ＷＮｉｎｉｔ＿３を獲得する。そのとき、フレームに含まれたタイルのうち一部は、第２初期値ＷＮｉｎｉｔ＿２がそのまま第３初期値ＷＮｉｎｉｔ＿３に決定される。
【００６４】
最終的に、演算部１１０は、第３初期値ＷＮｉｎｉｔ＿３を第１周回回数ＷＮｉｎｉｔに決定する。
【００６５】
以下では、図６（ａ）ないし図９（ｃ）を参照し、演算部１１０が第１経路ｅ０の位置及び進行方向に基づいて、第１初期値ＷＮｉｎｉｔ＿１を獲得する一例について説明する。そして、図１０（ａ）ないし図１１（ｃ）を参照し、演算部１１０が第２経路ｅ１の位置及び進行方向に基づいて、第２初期値ＷＮｉｎｉｔ＿２を獲得する一例について説明する。そして、図１２ないし図１３（ｂ）を参照し、演算部１１０が第３経路ｅ２の位置及び進行方向に基づいて、第３初期値ＷＮｉｎｉｔ＿３を獲得し、最終的に、第３初期値ＷＮｉｎｉｔ＿３を第１周回回数ＷＮｉｎｉｔに決定する一例について説明する。
【００６６】
図６（ａ）及び図６（ｂ）は、一実施形態による演算部が、フレームに含まれたタイルのうち、第１経路が通過するタイルを選択する一例について説明するための図面である。
【００６７】
図６（ａ）には、第１経路ｅ０が図示されている。ここで、第１経路ｅ０は、頂点Ｐ０から頂点Ｐ１まで連結された直線経路である。第１経路ｅ０の左側から第１経路ｅ０を見ると仮定すれば、第１経路ｅ０は、反時計回り方向に回転する経路であるということが分かる。
【００６８】
図６（ｂ）には、フレームに含まれたタイルのうち、第１経路ｅ０が通過するタイル６２０が図示されている。演算部１１０は、フレームに含まれたタイルのうち、第１経路ｅ０が通過するタイル６２０を選択する。そして、演算部１１０は、選択されたタイル６２０別に、タイルに第１経路ｅ０が通過するという情報を「Edge＿List」として生成し、それをローカルメモリ１５０（図２５）に保存する。例えば、「Edge＿List」は、ローカルメモリ１５０に、それぞれのタイル別にビートストリーム（bitstream）の形態で保存されもする。図６（ｂ）に図示されたタイル６２０ごとに表示された「ｅ０」は、タイル６２０それぞれの「Edge＿List」に含まれた情報（タイルに第１経路ｅ０が通過するという情報）を意味する。
【００６９】
演算部１１０が、フレームに含まれたタイルのうち、第１経路ｅ０が通過するタイル６２０を選択する一例は、図７（ａ）ないし図７（ｅ）を参照して説明する。
【００７０】
図７（ａ）ないし図７（ｅ）は、一実施形態による演算部が、フレームに含まれたタイルのうち、経路が通過するタイルを選択する一例について説明する図面である。
【００７１】
演算部１１０は、フレームに含まれたタイルの一側外郭線（何れかの側の輪郭線）と経路とが出合う地点（すなわち、交点）を決定する。ここで、タイルの一側外郭線は、タイルの左側、右側、上側及び下側のうち、いずれか１つの外郭線でもある。図７（ａ）を参照すれば、頂点Ｐ０から頂点Ｐ１まで連結された第１経路ｅ０が図示されており、演算部１１０は、第１経路ｅ０がタイルの右側外郭線７１０と出合う地点７２１を決定する。
【００７２】
そして、演算部１１０は、決定された地点７２１を基準に経路を仮想的に分割する。ここで、演算部１１０が経路を仮想的に分割するということは、経路を実際に分割するのではなく、演算部１１０がフレームに含まれたタイルのうち、経路が通過するタイルを正確に選択するために、経路の中間地点を計算する過程を意味する。
【００７３】
図７（ｂ）を参照すれば、演算部１１０は、第１経路ｅ０を、第１経路ｅ０の開始頂点Ｐ０から、決定された地点７２１までの第１サブ経路ｅ０１と、決定された地点７２１から、第１経路ｅ０の終了頂点Ｐ１までの第２サブ経路ｅ０２とに仮想分割する。
【００７４】
そして、演算部１１０は、分割された経路を対角線にする四角形を構成する。そして、演算部１１０は、構成された四角形を含むタイルを選択する。図７（ｂ）を参照すれば、演算部１１０は、第１サブ経路ｅ０１を対角線にする四角形を構成する。そして、演算部１１０は、構成された四角形を含むタイル７３１を選択する。
【００７５】
もしフレームに含まれたタイルの一側面と経路とが複数の地点で出合う場合、演算部１１０は、図７（ａ）及び図７（ｂ）を参照して説明した過程を反復する。図７（ｃ）を参照すれば、演算部１１０は、第１経路ｅ０が右側外郭線７１０と出合う地点７２２を決定する。
【００７６】
そして、演算部１１０は、決定された地点７２２を基準に、経路を仮想分割する。図７（ｄ）を参照すれば、演算部１１０は、第２サブ経路ｅ０２を、地点７２１から決定された地点７２２までの第３サブ経路ｅ０３と、決定された地点７２２から第２サブ経路ｅ０２の終了頂点Ｐ１までの第４サブ経路ｅ０４とに分割する。
【００７７】
そして、演算部１１０は、分割された経路を対角線にする四角形を構成する。そして、演算部１１０は、構成された四角形を含むタイルを選択する。図７（ｄ）を参照すれば、演算部１１０は、第３サブ経路ｅ０３を対角線にする四角形を構成する。そして、演算部１１０は、構成された四角形を含むタイル７３２を選択する。
【００７８】
フレームに含まれたタイルの一側面と経路とか出合う地点がそれ以上ない場合、演算部１１０は、第１経路ｅ０が分割された残りのサブ経路を対角線にする四角形を構成し、四角形に含まれたタイルを選択する。図７（ｅ）を参照すれば、演算部１１０は、第４サブ経路ｅ０４を対角線にする四角形を構成する。そして、演算部１１０は、構成された四角形を含むタイル７３３を選択する。
【００７９】
最終的に、演算部１１０は、選択したタイル７３１，７３２，７３３を組み合わせることにより、フレームに含まれたタイルのうち、第１経路ｅ０が通過するタイル７３１，７３２，７３３を決定することができる。
【００８０】
図７（ａ）ないし図７（ｅ）を参照して説明したように、演算部１１０は、経路をサブ経路に分割し、サブ経路を対角線にする四角形を含むタイルを選択することにより、フレームに含まれたタイルのうち、第１経路ｅ０が通過するタイル７３１，７３２，７３３を選択することができる。
【００８１】
第１経路ｅ０が通過するタイル７３１，７３２，７３３が選択されれば、演算部１１０は、選択されたタイル７３１，７３２，７３３それぞれにおいて、第１経路ｅ０が通過する形態によって選択されたタイル７３１，７３２，７３３の一側面に位置するタイルの初期周回回数を更新することにより、第１初期値ＷＮｉｎｉｔ＿１を獲得する。ここで、一側面は、タイルの左側、右側、上側及び下側のうち、いずれか一つを意味する。以下、図８及び図９を参照し、演算部１１０がタイルの第１初期値ＷＮｉｎｉｔ＿１を獲得する一例について説明する。
【００８２】
図８は、一実施形態による演算部が、タイルの第１初期値を獲得する一例について説明するための図面である。
【００８３】
説明の便宜のために、図８には、選択されたタイル８１０の一側面に位置するタイルを、選択されたタイル８１０の左側方向に位置したタイル８２１，８２２，８２３として図示したが、それに限定されるものではない。言い換えれば、第１経路ｅ０が通過するタイル８１０の右側方向、上側方向及び下側方向のうちある一方向に位置するタイルの第１初期値ＷＮｉｎｉｔ＿１が獲得されてもよい。ここで、選択されたタイル８１０は、図７（ａ）ないし図７（ｅ）を参照して説明したように、第１経路ｅ０が通過するタイル７３１，７３２，７３３を意味する。
【００８４】
また、図８には図示されていないが、フレームに含まれた全てのタイルそれぞれには、初期周回回数が割り当てられている。例えば、フレームに含まれた全てのタイルには、０がデフォルト値として割り当てられる。
【００８５】
図８を参照すれば、演算部１１０が選択されたタイル８１０の左側方向に位置するタイル８２１，８２２，８２３のうち一部タイル８２１について、第１初期値ＷＮｉｎｉｔ＿１を獲得した結果が図示されている。言い換えれば、演算部１１０は、第１経路ｅ０の開始頂点Ｐ０を含むタイルの左側方向タイル８２３、及び終了頂点Ｐ１を含むタイルの左側方向タイル８２２について、第１初期値ＷＮｉｎｉｔ＿１の演算を保留する。
【００８６】
図５を参照して説明したように、頂点Ｐ０は、第１経路ｅ０及び第３経路ｅ２が出合う地点であり、頂点Ｐ１は、第１経路ｅ０及び第２経路ｅ１が出合う地点である。頂点Ｐ０及び頂点Ｐ１のように、２以上の経路が出合うタイルの左側方向タイル８２２，８２３について、演算部１１０は、第１初期値ＷＮｉｎｉｔ＿１の演算を保留する。そして、演算部１１０は、２以上の経路がタイルを通過する形態を考慮し、タイル８２２，８２３について、第２初期値ＷＮｉｎｉｔ＿２を獲得する。それに係わる具体的な説明は、図１１を参照して説明する。
【００８７】
演算部１１０は、あらかじめ決定された規則により、タイル８２１に割り当てられた初期周回回数に所定の値を加算したり減算したりすることにより、第１初期値ＷＮｉｎｉｔ＿１を獲得することができる。一例として、演算部１１０は、第１経路ｅ０がタイル８１０の対向する２つの境界線を、時計回り方向に通過する場合には、初期周回回数に所定の値を加算し、第１経路ｅ０がタイル８１０の対向する２つの境界線を、反時計回り方向に通過する場合には、初期周回回数から所定の値を減算することにより、タイル８２１の第１初期値ＷＮｉｎｉｔ＿１を獲得することができる。他の例として、第１経路ｅ０がタイル８１０の対向する２つの境界線を、時計回り方向に通過する場合には、初期周回回数に、所定の値を減算し、第１経路ｅ０がタイル８１０の対向する２つの境界線を、反時計回り方向に通過する場合には、初期周回回数に、所定の値を加算することにより、タイル８２１の第１初期値ＷＮｉｎｉｔ＿１を獲得することができる。ここで、所定の値は、１にもなるが、それに制限されるものではない。言い換えれば、所定の値は、経路の進行方向によって、あらかじめ決定された数であるならば、制限なしに該当する。
【００８８】
以下、図９（ａ）ないし図９（ｃ）を参照し、演算部１１０が第１初期値ＷＮｉｎｉｔ＿１を獲得する規則の一例について説明する。
【００８９】
図９（ａ）ないし図９（ｃ）は、一実施形態による演算部が、１つの経路に対して第１初期値  ＷＮｉｎｉｔ＿１を付与する規則の一例を示す図面である。
【００９０】
図９（ａ）は、経路９１１がタイル９２１の対向する２つの境界線を、時計回り方向に（すなわち、上から下に）通過する場合を示し、図９（ｂ）は、経路９１２がタイル９２２の対向する２つの境界線を、反時計回り方向に（すなわち、下から上に）通過する場合を示す。図９（ｃ）は、経路９１３がタイル９２３の１つの境界線に入場してから退場する場合を示す。
【００９１】
図９（ａ）ないし図９（ｃ）に図示されたタイル９２１、９２２、９２３は、２以上のタイルが結合されたタイルにもなる。例えば、経路が通過するタイルが、水平方向に２以上連続する場合、図９（ａ）ないし図９（ｃ）に図示された１つのタイル９２１，９２２，９２３と考えられてよい。図８を参照すれば、フレームの２行目及び５行目には、２個の隣接したタイル８１１，８１２を第１経路ｅ０が通過する。その場合、第１経路ｅ０が通過する隣接した２個のタイル８１１，８１２は、図９（ａ）ないし図９（ｃ）に図示された１つのタイル９２１，９２２，９２３と考えられてよい。
【００９２】
図９（ａ）を参照すれば、経路９１１がタイル９２１の対向する２つの境界線を、時計回り方向に（上から下に）通過する場合、演算部１１０は、タイル９２１の左側に位置する全てのタイル９３１の初期周回回数に１を加算することにより、第１初期値ＷＮｉｎｉｔ＿１を獲得する。
【００９３】
図９（ｂ）を参照すれば、経路９１２がタイル９２２の対向する２つの境界線を、反時計回り方向に（下から上に）通過する場合、演算部１１０は、タイル９２２の左側に位置する全てのタイル９３２の初期周回回数から１を減算することにより、第１初期値ＷＮｉｎｉｔ＿１を獲得する。
【００９４】
図９（ｃ）を参照すれば、経路９１３がタイル９２３の一境界線に入場してから退場する場合、演算部１１０は、タイル９２３の左側に位置する全てのタイル９３３の初期周回回数に０を加えるか、あるいは初期周回回数をそのまま考慮することにより、第１初期値ＷＮｉｎｉｔ＿１を獲得する。
【００９５】
図９（ａ）ないし図９（ｃ）は、経路がタイルを時計回り方向に通過する場合、演算部１１０が初期周回回数に１を加算し、反時計回り方向に通過する場合、演算部１１０が初期周回回数から１を減算すると説明したが、それに限定されるものではない。一例として、経路がタイルを時計回り方向に通過する場合、演算部１１０が１を減算し、反時計回り方向に通過する場合、演算部１１０が１を加算することもできる。
【００９６】
再び図８を参照すれば、第１経路ｅ０は、頂点Ｐ０から頂点Ｐ１まで連結される直線経路であるので、タイル８１０の対向する２つの境界線を、反時計回り方向に通過する。従って、演算部１１０は、タイル８２１それぞれの初期周回回数から１を減算することにより、第１初期値ＷＮｉｎｉｔ＿１を獲得する。一方、フレームに含まれたタイルのうちタイル８２１を除いたタイルは、初期周回回数がそのまま第１初期値ＷＮｉｎｉｔ＿１に決定される。そして、演算部１１０は、第１初期値ＷＮｉｎｉｔ＿１をそれぞれのタイル別に、ローカルメモリ１５０に保存することができる。
【００９７】
図５を参照して説明したように、経路データに複数の経路についての情報が含まれている場合、演算部１１０は、複数の経路を順次に考慮し、タイルの初期値を設定する。図８ないし図９（ｃ）を参照して説明したように、演算部１１０が、第１経路ｅ０の位置及び進行方向に基づいて、第１初期値ＷＮｉｎｉｔ＿１を獲得したので、その後、演算部１１０は、第２経路ｅ１の位置及び進行方向に基づいて、第１初期値ＷＮｉｎｉｔ＿１を更新することにより、第２初期値ＷＮｉｎｉｔ＿２を獲得する。
【００９８】
以下、図１０（ａ）ないし図１１（ｃ）を参照し、演算部１１０がフレームに含まれたタイルのうち、第２経路が通過するタイルを選択し、タイルの第２初期値ＷＮｉｎｉｔ＿２を獲得する一例について説明する。
【００９９】
図１０（ａ）及び図１０（ｂ）は、一実施形態による演算部が、フレームに含まれたタイルのうち、第２経路ｅ１が通過するタイルを選択し、タイルの第２初期値ＷＮｉｎｉｔ＿２を獲得する一例について説明するための図面である。
【０１００】
図１０（ａ）には、第２経路ｅ１が図示されている。ここで、第２経路ｅ１は、頂点Ｐ１から頂点Ｐ２まで連結された直線経路である。従って、第２経路ｅ１は、時計回り方向に進む経路であるということが分かる。
【０１０１】
演算部１１０は、フレームに含まれたタイルのうち、第２経路ｅ１が通過するタイル１０２０を選択する。そのとき、演算部１１０がタイル１０２０を選択する方法は、図７（ａ）ないし図７（ｅ）を参照して説明した通りである。そして、演算部１１０は、選択されたタイル１０２０別に、タイルを第２経路ｅ１が通過するという情報を、「Edge＿List」として生成し、それをローカルメモリ１５０に保存する。もし図６を参照して説明したように、「Edge＿List」がすでに生成されたタイルの場合には、既生成の「Edge＿List」に、第２経路ｅ１が通過するという情報を追加して保存する。図１０（ｂ）に図示されたタイル１０２０に表示された「ｅ０，ｅ１」または「ｅ１」は、タイル１０２０それぞれの「Edge＿List」に含まれた情報を意味する。言い換えれば、「ｅ０，ｅ１」が表示されたタイルは、第１経路ｅ０が通過するタイルでありながら、第２経路ｅ１が通過するタイルであるということを意味する。また、「ｅ１」が表示されたタイルは、第２経路ｅ１が通過するタイルであるということを意味する。
【０１０２】
そして、演算部１１０は、選択されたタイル１０２０の一側面に位置するタイル１０３１それぞれの第２初期値ＷＮｉｎｉｔ＿２を獲得する。そのとき、演算部１１０が、タイル１０３１それぞれに対して、第２初期値ＷＮｉｎｉｔ＿２を獲得する方法は、図８ないし図９（ｃ）を参照して説明した通りである。第２経路ｅ１が、時計回り方向にタイル１０２０を通過するので、演算部１１０は、タイル１０３１それぞれの第１初期値ＷＮｉｎｉｔ＿１に１を加算することにより、第２初期値ＷＮｉｎｉｔ＿２を獲得する。第２経路ｅ１の開始頂点Ｐ１を含むタイルの左側方向に位置したタイル１０３３の場合、演算部１１０は、第１経路ｅ０及び第２経路ｅ１がタイルを通過する形態を考慮し、第２初期値ＷＮｉｎｉｔ＿２を獲得する。以下、図１１（ａ）ないし図１２を参照し、演算部１１０がタイル１０３３それぞれの第２初期値ＷＮｉｎｉｔ＿２を獲得する一例について説明する。一方、フレームに含まれたタイルのうちタイル１０３１を除いたタイルは、第１初期値ＷＮｉｎｉｔ＿１がそのまま第２初期値ＷＮｉｎｉｔ＿２に決定される。そして、演算部１１０は、第２初期値ＷＮｉｎｉｔ＿２をそれぞれのタイル別に、ローカルメモリ１５０に保存することができる。
【０１０３】
また、図８を参照して説明したように、演算部１１０は、第２経路ｅ１の終了頂点Ｐ２を含むタイルの左側方向に位置したタイル１０３２については、第２初期値ＷＮｉｎｉｔ＿２の演算を保留する。演算部１１０は、第２経路ｅ１及び第３経路ｅ２がタイルを通過する形態を考慮し、タイル１０３２の第３初期値ＷＮｉｎｉｔ＿３を獲得する。
【０１０４】
図１１（ａ）ないし図１１（ｃ）は、一実施形態による演算部が、２以上の経路の進行方向を考慮し、初期値を付与する規則の一例を示す図面である。
【０１０５】
図１１（ａ）は、２以上の経路１１１１がタイル１１２１の対向する２つの境界線を、時計回り方向に（上から下に）通過する場合を示す。図１１（ｂ）は、２以上の経路１１１２がタイル１１２２の対向する２つの境界線を、反時計回り方向に（下から上に）通過する場合を示す。図１１（ｃ）は、２以上の経路１１１３が、タイル１１２３の一境界線に入場してから退場する場合を示す。例えば、図８及び図１０を参照すれば、第１経路ｅ０の終了頂点と、第２経路ｅ１の開始頂点とがいずれも頂点Ｐ１である場合は、図１１（ｃ）に該当する。
【０１０６】
また、図１１（ａ）ないし図１１（ｃ）に図示されたタイル１１２１，１１２２，１１２３は、２以上のタイルが結合されたタイルにもなる。例えば、経路が通過するタイルが、水平方向に２以上連続する場合、図１１（ａ）ないし図１１（ｃ）に図示された１つのタイル１１２１，１１２２，１１２３と考えられてよい。
【０１０７】
以下、図１２を参照し、３つの経路が通過するタイルの例について説明する。図１２は、一実施形態による経路が３つである場合、演算部がタイルの初期値を設定する一例について説明するための図面である。
【０１０８】
図１２を参照すれば、８＊８個のタイルで構成されたフレーム１２１０、及び星状の客体１２２０が図示されている。そして、客体１２２０は、５個の経路ｅ０，ｅ１，ｅ２，ｅ３，ｅ４，ｅ５で構成されている。そのとき、経路ｅ２と経路ｅ３は、フレームに含まれた一部タイル１２３０に進入し、水平方向に通過する。経路ｅ２及び経路ｅ３がタイル１２３０の対向する境界線を貫通するか、あるいは１つの境界線に入場してから退場しないために、図１１（ａ）ないし図１１（ｃ）の規則に該当しない。従って、タイル１２３０の一側面（例えば、左側面）に位置したタイル１２４０の初期値ＷＮｉｎｉｔは、設定されずに保留される。
【０１０９】
演算部１１０は、客体１２２０に含まれた一経路がタイル１２３０に進入すれば、客体１２２０に含まれた他の経路がタイル１２３０から退場するまで、タイル１２３０の一側面に位置したタイルの初期値ＷＮｉｎｉｔ設定を保留する。例えば、経路ｅ２がタイル１２３０に進入すれば、次の経路ｅ３がフレームに含まれた一部タイル１２３０を水平方向に通過しても、演算部１１０は、タイル１２３０の一側面に位置したタイルの初期値ＷＮｉｎｉｔ設定を保留する。そして、経路ｅ４がタイル１２３０から退場すれば、演算部１１０は、タイル１２３０の一側面に位置したタイルの初期値ＷＮｉｎｉｔを設定する。
【０１１０】
言い換えれば、演算部１１０は、経路ｅ２、経路ｅ３及び経路ｅ４の３つの経路がタイル１２３０を通過する形態によって、タイル１２３０の一側面に位置したタイルの初期値ＷＮｉｎｉｔを設定する。そのとき、演算部１１０は、図１１（ａ）ないし図１１（ｃ）に図示された規則により、タイルの初期値ＷＮｉｎｉｔを設定することができる。
【０１１１】
図１１（ａ）を参照すれば、２個以上の経路１１１１が、タイル１１２１の対向する２つの境界線を、時計回り方向に（上から下に）通過する場合、演算部１１０は、タイル１１２１の左側に位置する全てのタイル１１３１の初期値（または、初期周回回数）に１を加算する。
【０１１２】
図１１（ｂ）を参照すれば、２個以上の経路１１１２が、タイル１１２２の対向する２つの境界線を、反時計回り方向に（下から上に）通過する場合、演算部１１０は、タイル１１２２の左側に位置する全てのタイル１１３２の初期値（または、初期周回回数）から１を減算する。
【０１１３】
図１１（ｃ）を参照すれば、２個以上の経路１１１３が、タイル１１２３の一境界線に入場してから同じ方向に退場する場合、演算部１１０は、タイル１１２３の左側に位置する全てのタイル１１３３の初期値（または、初期周回回数）に０を加えるか、あるいはそのまま維持する。
【０１１４】
図１１（ａ）ないし図１１（ｃ）は、経路がタイルを時計回り方向に通過する場合、演算部１１０が初期値（または、初期周回回数）に１を加算し、反時計回り方向に通過する場合、演算部１１０が初期値（または、初期周回回数）から１を減算すると説明したが、それに限定されるものではない。一例として、経路がタイルを時計回り方向に通過する場合、演算部１１０が初期値（または、初期周回回数）から１を減算し、反時計回り方向に通過する場合、演算部１１０が初期値（または、初期周回回数）に１を加算することもできる。
【０１１５】
また、図８及び図１０（ａ）を参照すれば、第１経路ｅ０と第２経路ｅ１とが連結された経路は、頂点Ｐ１を含むタイルの下側面に入場し、下側面から退場する。従って、演算部１１０は、タイル１０３３それぞれの第２初期値ＷＮｉｎｉｔ＿２を、第１初期値ＷＮｉｎｉｔ＿１と同一である０に維持する。
【０１１６】
図１０（ｂ）には、第１経路ｅ０と第２経路ｅ１とに基づいて獲得された第２初期値ＷＮｉｎｉｔ＿２が図示されている。図１０（ｂ）に図示されたタイル１０４１，１０４２，１０４３ごとに表示された「０」、「−１」または「１」は、タイル１０４１，１０４２，１０４３それぞれの第２初期値ＷＮｉｎｉｔ＿２を意味する。また、図１０（ｂ）には図示されていないが、フレームに含まれたタイルのうち、タイル１０４１，１０４２，１０４３を除いたタイルの第２初期値ＷＮｉｎｉｔ＿２は、初期周回回数と同一である「０」である。
【０１１７】
図１０（ａ）ないし図１１（ｃ）を参照して説明したように、演算部１１０が、第２経路ｅ１の位置及び進行方向に基づいて、第２初期値ＷＮｉｎｉｔ＿２を獲得したので、その後、演算部１１０は、第３経路ｅ２の位置及び進行方向に基づいて、第２初期値ＷＮｉｎｉｔ＿２を更新することにより、第３初期値ＷＮｉｎｉｔ＿３を設定する。
【０１１８】
以下、図１３（ａ）及び図１３（ｂ）を参照し、演算部１１０がフレームに含まれたタイルのうち、第３経路ｅ２が通過するタイルを選択し、選択されたタイルの一側面方向に位置したタイルの第３初期値ＷＮｉｎｉｔ＿３を獲得する一例について説明する。
【０１１９】
図１３（ａ）及び図１３（ｂ）は、一実施形態による演算部が、フレームに含まれたタイルのうち、第３経路ｅ２が通過するタイルを選択し、タイルの第３初期値を獲得する一例について説明するための図面である。
【０１２０】
図１３（ａ）には、第３経路ｅ２が図示されている。ここで、第３経路ｅ２は、頂点Ｐ２から頂点Ｐ０まで連結された直線経路である。従って、第３経路ｅ２は、時計回り方向に回転する経路であるということが分かる。
【０１２１】
演算部１１０は、フレームに含まれたタイルのうち、第２経路ｅ１が通過するタイル１３２０を選択する。そのとき、演算部１１０がタイル１３２０を選択する方法は、図７を参照して説明した通りである。そして、演算部１１０は、選択されたタイル１３２０別に、タイルを第３経路ｅ２が通過するという情報を「Edge＿List」として生成し、それをローカルメモリ１５０に保存する。もし図６を参照して説明したように「Edge＿List」がすでに生成されたタイルの場合には、既生成の「Edge＿List」に、第３経路ｅ２が通過するという情報を追加して保存する。図１３（ｂ）に図示されたタイルに表示された「ｅ０，ｅ２」、「ｅ１，ｅ２」または「ｅ２」は、タイルそれぞれの「Edge＿List」に含まれた情報を意味する。「ｅ０，ｅ２」が表示されたタイルは、第１経路ｅ０が通過するタイルでありながら、第３経路ｅ２が通過するタイルであるということを意味する。また、「ｅ１，ｅ２」が表示されたタイルは、第２経路ｅ１が通過するタイルでありながら、第３経路ｅ２が通過するタイルであるということを意味する。また、「ｅ２」が表示されたタイルは、第３経路ｅ２が通過するタイルであるということを意味する。
【０１２２】
そして、演算部１１０は、選択されたタイル１３２０の一側面に位置するタイル１３３１それぞれの第２初期値ＷＮｉｎｉｔ＿２を更新することにより、第３初期値ＷＮｉｎｉｔ＿３を獲得する。例えば、演算部１１０は、選択されたタイル１３２０の左側方向のタイル１３３１それぞれの第３初期値ＷＮｉｎｉｔ＿３を獲得することができる。そのとき、演算部１１０が、タイル１３３１それぞれの第３初期値ＷＮｉｎｉｔ＿３を獲得する方法は、図８、及び図９（ａ）ないし図９（ｃ）を参照して説明した通りである。具体的には、第３経路ｅ２が時計回り方向にタイル１３２０を通過するので、演算部１１０は、図９（ａ）の規則により、左側に位置するタイル１３３１それぞれの第２初期値ＷＮｉｎｉｔ＿２に１を加算することにより、第３初期値ＷＮｉｎｉｔ＿３を獲得する。
【０１２３】
一方、第３経路ｅ２の開始頂点Ｐ２を含むタイルの左側方向に位置したタイル１３３２の場合、演算部１１０は、第２経路ｅ１及び第３経路ｅ２がタイルを通過する形態を考慮し、第３初期値ＷＮｉｎｉｔ＿３を決定する。そのとき、演算部１１０が、タイル１１３２それぞれに対して第３初期値ＷＮｉｎｉｔ＿３を決定する方法は、図１１（ａ）ないし図１１（ｃ）を参照して説明した通りである。具体的には、第２経路ｅ１と第３経路ｅ２は、タイル１３２１の対向する２つの境界線を、時計回り方向に（上から下に）通過するので、図１１（ａ）の場合に該当する。従って、演算部１１０は、タイル１３３２それぞれの第２初期値ＷＮｉｎｉｔ＿２に１を加算することにより、第３初期値ＷＮｉｎｉｔ＿３を獲得する。
【０１２４】
また、第３経路ｅ２の終了頂点Ｐ０を含むタイルの左側方向に位置したタイル１３３３の場合、演算部１１０は、第３経路ｅ２及び第１経路ｅ０がタイルを通過する形態を考慮し、第３初期値ＷＮｉｎｉｔ＿３を決定する。具体的には、第３経路ｅ２と第１経路ｅ０は、タイル１３２２の単一面（上側面）に入場し、同じ方向に退場するので、図１１（ｃ）の場合に該当する。従って、演算部１１０は、タイル１３３３の第２初期値ＷＮｉｎｉｔ＿２をそのまま第３初期値ＷＮｉｎｉｔ＿３に決定する。
【０１２５】
一方、フレームに含まれたタイルのうち、タイル１３３１，１３３２，１３３３を除いたタイルは、第２初期値ＷＮｉｎｉｔ＿２がそのまま第３初期値ＷＮｉｎｉｔ＿３に決定される。そして、演算部１１０は、第３初期値ＷＮｉｎｉｔ＿３をそれぞれのタイル別に、ローカルメモリ１５０に保存することができる。
【０１２６】
図１３（ｂ）には、第１経路ｅ０、第２経路ｅ１及び第３経路ｅ２に基づいて獲得された第３初期値ＷＮｉｎｉｔ＿３が図示されている。図１３（ｂ）に図示されたタイル１３４１，１３４２，１３４３，１３４４ごとに表示された「０」または「１」は、タイル１３４１，１３４２，１３４３，１３４４それぞれの第３初期値ＷＮｉｎｉｔ＿３を意味する。また、図１３（ｂ）には、図示されていないが、フレームに含まれたタイルのうち、タイル１３４１，１３４２，１３４３，１３４４を除いたタイルの第３初期値ＷＮｉｎｉｔ＿３は、初期周回回数と同一である「０」である。
【０１２７】
演算部１１０は、第３初期値ＷＮｉｎｉｔ＿３を第１周回回数ＷＮｉｎｉｔに決定する。図６（ａ）ないし図１３（ｂ）を参照して説明したように、演算部１１０は、初期周回回数（例えば、０）が更新された第３初期値ＷＮｉｎｉｔ＿３を第１周回回数ＷＮｉｎｉｔに決定する。
【０１２８】
図５ないし図１３（ｂ）を参照して説明したところによれば、演算部１１０は、フレームに含まれた全てのタイルについて、同一側面を考慮し、第１周回回数ＷＮｉｎｉｔを設定した。例えば、演算部１１０は、１つのタイルにおいて、経路がどの方向に通過するかということにより、そのタイルの左側に存在するタイルの初期回数に、所定の値を加算したり減算したりすることにより、第１周回回数ＷＮｉｎｉｔを設定することができる。
【０１２９】
一方、客体が、フレームの一方に偏重している場合、演算部１１０は、フレームに含まれたタイル別に、他の側面を考慮し、第１周回回数ＷＮｉｎｉｔを設定することができる。言い換えれば、演算部１１０は、フレームに含まれたタイルそれぞれの位置と、フレーム内での経路の位置とを考慮し、第１周回回数ＷＮｉｎｉｔを設定することができる。以下、図１４及び図１５を参照して詳細に説明する。
【０１３０】
図１４は、一実施形態による演算部が、第１周回回数を設定するのに利用される経路の他の例を図示した図面である。
【０１３１】
図１４を参照すれば、フレーム１４１０は、６＊６個のタイルを含み、三角形の客体１４２０は、３個の経路ｅ０，ｅ１，ｅ２を含むように図示されている。そのとき、客体１４２０は、フレーム１４１０の右側に偏重して位置する。
【０１３２】
図１５は、一実施形態による演算部が、第１周回回数を設定する他の例について説明するための図面である。
【０１３３】
図１５には、図１４の経路が、演算部１１０によって処理される例が図示されている。図１５を参照すれば、フレームには、経路ｅ０、経路ｅ１及び経路ｅ２が順次に描かれる。ただし、経路ｅ０、経路ｅ１及び経路ｅ２によって構成された客体は、フレームの右側に偏重して位置する。
【０１３４】
演算部１１０は、フレームに含まれたタイルそれぞれの位置と、フレーム内での経路の位置とを考慮し、第１周回回数ＷＮｉｎｉｔを設定することができる。具体的には、経路データに含まれた経路ｅ０，ｅ１，ｅ２についての情報を利用して、客体がフレームの一側面に偏重して位置するか否かということを把握する。もし客体がフレームの一側面に偏重している場合、演算部１１０は、フレームにおいて客体が含まれていない第１領域１５１１と、客体が含まれた第２領域１５１２とを分ける。そして、演算部１１０は、領域１５１１，１５１２別に、経路をチェックする方向を異にし、第１周回回数ＷＮｉｎｉｔを設定する。図１５には、演算部１１０がフレームを２個の領域１５１１，１５１２に分けるように図示されているが、演算部１１０がフレームを分ける領域の個数は、２個に限定されるものではない。
【０１３５】
まず、演算部１１０は、フレームに含まれた全てのタイルに、初期周回回数を割り当てる。例えば、演算部１１０は、フレーム１５１０に含まれた全てのタイルそれぞれの初期周回回数を、０に割り当てることができる。次に、演算部１１０は、第１領域１５１１と第２領域１５１２とのタイルの第１周回回数ＷＮｉｎｉｔを獲得するのにあたり、互いに異なる側面を利用することができる。具体的には、第１領域１５１１のタイルに対して、図３ないし図１３の説明とは反対に、左側方向から見る第１周回回数ＷＮｉｎｉｔを獲得することができる。その場合、第１領域１５１１には、経路が存在しないために、演算部１１０は、第１領域１５１１に含まれたいずれのタイルに対しても、初期周回回数に所定の値（例えば、１）を加算したり減算したりしない。言い換えれば、演算部１１０は、第１領域１５１１に含まれたタイルの第１周回回数ＷＮｉｎｉｔを初期周回回数（例えば、０）と確定する。
【０１３６】
第２領域１５１２のタイルは、第１領域１５１１のタイルとは反対に、右側方向から見る第１周回回数ＷＮｉｎｉｔが獲得される。従って、図３ないし図１３の説明が同一に適用される。具体的には、経路ｅ０が通過するタイル１５２０の左側に存在するタイルは、第２領域１５１２にないために、第１初期値ＷＮｉｎｉｔ＿１は、初期周回回数と同一である。
【０１３７】
経路ｅ１がタイル１５３０の左側に存在する第２領域１５１２に含まれたタイル１５５０は、頂点として経路ｅ２が考慮されるまで、タイルの第２初期値ＷＮｉｎｉｔ＿２の獲得が保留される。従って、第２領域１５１２のタイルの第２初期値ＷＮｉｎｉｔ＿２は、第１初期値ＷＮｉｎｉｔ＿１と同一である。
【０１３８】
経路ｅ２が通過するタイル１５３０の左側に存在する第２領域１５１２に含まれたタイルは、タイル１５５０が唯一である。その場合、図１１（ａ）の規則により、第３初期値ＷＮｉｎｉｔ＿３が獲得される。言い換えれば、演算部１１０は、第２初期値ＷＮｉｎｉｔ＿２に＋１を合算することにより、タイル１５５０の第３初期値ＷＮｉｎｉｔ＿３を獲得する。
【０１３９】
最終的に、演算部１１０は、第３初期値ＷＮｉｎｉｔ＿３を、第２領域１５１２タイルの第１周回回数ＷＮｉｎｉｔに決定する。
【０１４０】
以上の説明を要約すれば、全体映像または部分映像は、タイルに分割され、各タイルに含まれる全てのピクセルの第１周回回数が決定される。経路が存在しないタイルの場合には、そのように決定された第１周回回数が、ピクセルの最終周回回数になり、経路が存在するタイルの場合には、後述する方式により、ピクセルの最終周回回数が決定される。具体的には、経路が存在するタイルのピクセルは、第１周回回数ＷＮｉｎｉｔに基づいて、第２周回回数ＷＮが演算され、第２周回回数ＷＮが、ピクセルの最終周回回数に決定される。第２周回回数ＷＮの演算にあたり、各タイル別に存在する経路の位置、進行方向、及びピクセルの位置が考慮される。
【０１４１】
以下、図１６を参照し、演算部１１０が経路が通過するタイルの第２周回回数ＷＮを演算する一例について説明する。
【０１４２】
図１６（ａ）ないし図１６（ｃ）は、一実施形態による演算部が、経路が通過するタイルの第２周回回数を演算する一例について説明するための図面である。
【０１４３】
図１６（ａ）には、６＊６個のタイルから構成されたフレーム、及び図５に図示された客体５２０と同一である三角形の客体１６２０が図示されている。従って、図１６（ａ）ないし図１６（ｃ）では、図６（ａ）ないし図１３（ｂ）を参照して説明したところによって、演算部１１０が、経路ｅ０，ｅ１，ｅ２が通過するタイル１６３０を選択し、フレームに含まれたタイルそれぞれに、第１周回回数ＷＮｉｎｉｔを設定した結果に基づいて説明する。
【０１４４】
１つのタイルには、複数個のピクセルが含まれている。従って、演算部１１０が設定するピクセルの周回回数は、１つのタイルに含まれたピクセル間でも、互いに異なる。特に、経路ｅ０，ｅ１，ｅ２が通過するタイル１６３０の場合には、タイル１６３０に含まれたピクセルの周回回数が互いに異なる。従って、演算部１１０は、経路を含むタイル１６３０それぞれのピクセルについて、第１周回回数ＷＮｉｎｉｔに基づいて、第２周回回数ＷＮを演算する。一方、タイル１６３０を除いた経路を含まないタイルに含まれた全てのピクセルの周回回数は、そのタイルの第１周回回数ＷＮｉｎｉｔに決定される。以下、図１６（ｂ）及び図１６（ｃ）を参照し、第２周回回数ＷＮが演算される一例について具体的に説明する。
【０１４５】
図１６（ｂ）には、図１６（ａ）に図示された経路ｅ０，ｅ１，ｅ２が通過するタイル１６３０のうち１つのタイル１６３１が図示されている。タイル１６３１の内部領域は、第１経路ｅ０及び第２経路ｅ１によって、２個の領域に区分される。以下では、第１経路ｅ０及び第２経路ｅ１によって取り囲まれている領域を第１領域１６４１とし、第１領域１６４１を除いた領域を第２領域１６４２とする。
【０１４６】
演算部１１０は、タイル１６３１の第１周回回数ＷＮｉｎｉｔに基づいて、第２周回回数ＷＮを演算する。具体的には、演算部１１０は、ローカルメモリ１５０に保存されたタイル１６３１の「Edge＿List」を利用して、タイル１６３１の第２周回回数ＷＮを演算することができる。タイル１６３１の「Edge＿List」には、タイル１６３１を通過する経路ｅ０，ｅ１の情報が含まれている。従って、演算部１１０は、タイル１６３１を通過する経路ｅ０，ｅ１の位置及び進行方向に基づいて、第２周回回数ＷＮを演算することができる。
【０１４７】
例えば、演算部１１０は、下記数式１によって、タイル１６３１の第２周回回数ＷＮ（タイル１６３１に含まれたピクセルの周回回数ＷＮ）を演算することができる。
【０１４８】
ＷＮ＝ＷＮｉｎｉｔ＋（ＮＣＷ−ＮＣＣＷ）・・・（数式１）
数式１で、ＷＮは、ピクセルの周回回数を意味し、ＷＮｉｎｉｔは、ピクセルを含むタイルの第１周回回数を意味する。そして、ＮＣＷは、ピクセルの一側面に位置し、時計回り方向に進む（上から下に進む）経路に基づいて決定された値を意味する。そして、ＮＣＣＷは、ピクセルの一側面に位置し、反時計回り方向に進む（下から上に進む）経路に基づいて決定された値を意味する。ここで、ピクセルの一側面は、ピクセルの位置を中心に、左側、右側、上側及び下側のうち、いずれか一つを意味し、第１周回回数の計算に利用された方向と同一方向を意味する。例えば、図６ないし図１３（ｂ）において、右側方向を利用して第１周回回数が計算されるのであるならば、ピクセルの周回回数ＷＮの計算にあたっても、同一の右側方向が利用される。
【０１４９】
演算部１１０は、第１領域１６４１に含まれたピクセル１６５１の周回回数ＷＮを、＋１と演算することができる。具体的には、タイル１６３１の第１周回回数ＷＮｉｎｉｔは、０であり、ピクセル１６５１の右側に位置した第２経路ｅ１が時計回り方向に進むので、ＮＣＷは、１である。また、ピクセル１６５１の右側に、反時計回り方向に進む経路がないので、ＮＣＣＷは、０である。従って、演算部１１０は、数式１によって、ピクセル１６５１の周回回数ＷＮを＋１と演算することができる。
【０１５０】
また、演算部１１０は、第２領域１６４２に含まれたピクセル１６５２の周回回数ＷＮを０に演算することができる。具体的には、タイル１６３１の第１周回回数ＷＮｉｎｉｔは、０であり、ピクセル１６５２の右側に位置した第１経路ｅ０が反時計回り方向に進むので、ＮＣＣＷは、１である。また、ピクセル１６５２の右側に位置した第２経路ｅ１が時計回り方向に進むので、ＮＣＷは、１である。従って、演算部１１０は、数式１によって、ピクセル１６５２の周回回数ＷＮを０に演算することができる。
【０１５１】
また、演算部１１０は、第２領域１６４２に含まれたピクセル１６５３の周回回数ＷＮを０に演算することができる。具体的には、タイル１６３１の第１周回回数ＷＮｉｎｉｔは、０であり、ピクセル１６５３の右側に位置した経路がないので、ＮＣＷ及びＮＣＣＷは、０である。従って、演算部１１０は、数式１によって、ピクセル１６５３の周回回数ＷＮを０に演算することができる。
【０１５２】
総合すれば、図１６（ｂ）に図示された第１領域１６４１に含まれたピクセルそれぞれの周回回数ＷＮは、いずれも１に演算され、第２領域１６４２に含まれたピクセルそれぞれの周回回数ＷＮは、いずれも０に演算される。従って、同一タイル１６３１に含まれたピクセルでも、経路によって区分された領域によって、ピクセルの周回回数ＷＮが互いに異なる。
【０１５３】
図１６（ｃ）には、図１６（ａ）に図示された経路ｅ０，ｅ１，ｅ２が通過するタイル１６３０のうち他の１つのタイル１６３２が図示されている。タイル１６３２の内部領域は、第１経路ｅ０によって、２個の領域に区分される。第１経路ｅ０、及びタイル１６３２の右側及び下側境界線によって取り囲まれている領域を、第３領域１６４３とすれば、第３領域１６４３のピクセル１６５４の周回回数は、０になる。具体的には、タイル１６３２の第１周回回数は、１であり、ピクセル１６５４の右側に経路がないので、ＮＣＷ及びＮＣＣＷは、０である。従って、演算部１１０は、数式１によって、ピクセル１６５４の周回回数ＷＮを１に演算することができる。
【０１５４】
また、タイル１６３２において第３領域１６４３を除いた領域を、第４領域１６４４とすれば、第４領域１６４４のピクセル１６５５，１６５６の周回回数は、１になる。具体的には、ピクセル１６５５の右側に、第１経路ｅ０が位置するので、ＮＣＷは、０であり、ＮＣＣＷは、１である。従って、演算部１１０は、数式１によって、ピクセル１６５５の周回回数ＷＮを０に演算することができる。一方、ピクセル１６５６の場合にも、ピクセル１６５５と同一に、ＮＣＷは、０であり、ＮＣＣＷは、１である。タイル１６３２の「Edge＿List」には、タイル１６３２を通過する経路ｅ０の位置及び進行方向についての情報が含まれる。図１６（ｃ）には、タイル１６３２内部において、ピクセル１６５６の右側に経路がないように図示されているが、演算部１１０は、「Edge＿List」を利用して、ピクセルの周回回数を演算するために、演算部１１０は、ピクセル１６５６の右側に、第１経路ｅ０が位置すると考えてよい。従って、ピクセル１６５６のＮＣＷは、０であり、ＮＣＣＷは、１であるので、演算部１１０は、数式１によって、ピクセル１６５５の周回回数ＷＮを０に演算することができる。
【０１５５】
結論として、演算部１１０は、図１６（ｃ）に図示された第３領域１６４３に含まれたピクセルそれぞれの周回回数ＷＮを、いずれも１に演算することができ、第４領域１６４４に含まれたピクセルそれぞれの周回回数ＷＮを、いずれも０に演算することができる。
【０１５６】
前述のところによれば、経路が存在しないタイルとは異なり、経路が存在するタイルそれぞれに含まれるピクセルの周回回数は、タイルでのピクセルの位置、並びにタイルを通過する経路の位置及び進行方向が考慮されて決定される。
【０１５７】
図１及び図２を参照して説明したように、決定部１２０は、タイルの周回回数に基づいて、シェーディングの遂行いかんを決定することができる。言い換えれば、決定部１２０は、第１周回回数ＷＮｉｎｉｔまたは第２周回回数ＷＮに基づいて、フラグメントシェーダ２７３１に、ピクセルのシェーディングを行えという指示を下すか否かということを決定することができる。
【０１５８】
図５ないし図１６（ｃ）を参照して説明したところによれば、演算部１１０は、フレームに含まれたタイルそれぞれに、第１周回回数を設定し、第１周回回数に基づいて、少なくとも１つの経路が通過するタイルそれぞれの第２周回回数を演算する。結論として、演算部１１０がフレームに含まれた全てのピクセルに対して周回回数を演算するのと同一の結果が導出される。従って、決定部１２０は、フレームに含まれたピクセルそれぞれの周回回数に基づいて、シェーディングの遂行いかんを決定することができる。ここで、該シェーディングは、ピクセルそれぞれにカラーを設定する過程を意味するが、それに限定されるものではない。
【０１５９】
例えば、決定部１２０は、フレームに含まれたピクセルそれぞれの周回回数を利用して、ピクセルそれぞれに、カラーを設定するか否かということを決定することができる。そのとき、決定部１２０は、既設定の規則に基づいて、ピクセルそれぞれにカラーを設定するか否かということを決定することができる。ここで、既設定の規則は、周回回数が０ではない値を有するピクセルに、カラー値を割り当てる第１規則、または周回回数が奇数である値を有するピクセルに、カラー値を割り当てる第２規則のうち、いずれか一つを意味する。以下、図１７（ａ）ないし図１７（ｃ）を参照し、決定部１２０がシェーディングの遂行いかんを決定する一例について説明する。
【０１６０】
図１７（ａ）ないし図１７（ｃ）は、一実施形態による決定部がフレームに含まれたピクセルそれぞれの周回回数に基づいて、シェーディングの遂行いかんを決定する一例について説明するための図面である。
【０１６１】
図１７（ａ）は、フレーム１７１０に含まれたピクセルそれぞれの周回回数を図示した図面であり、図１７（ｂ）は、第１規則により、ピクセルそれぞれに、カラー値が割り当てられた結果を図示した図面である。また、図１７（ｃ）は、第２規則により、ピクセルそれぞれに、カラー値が割り当てられた結果を図示した図面である。
【０１６２】
図１７（ａ）を参照すれば、領域１７１１に含まれたピクセルは、それぞれ周回回数が０に演算されているし、領域１７１２に含まれたピクセルは、それぞれ周回回数が＋１に演算されており、領域１７１３に含まれたピクセルは、それぞれ周回回数が＋２に演算されている。
【０１６３】
一例として、決定部１２０は、第１規則に基づいて、ピクセルそれぞれに、カラーを設定するか否かということを決定することができる。ここで、第１規則は、周回回数が０ではない値を有するピクセルにカラー値を割り当てることを意味する。図１７（ｂ）を参照すれば、決定部１２０は、第１規則により、図１７（ａ）に図示された領域１７１２及び領域１７１３に含まれたピクセルには、カラーを設定し、領域１７１１に含まれたピクセルには、カラーを設定しないように決定する。
【０１６４】
他の例として、決定部１２０は、第２規則に基づいて、ピクセルそれぞれに、カラーを設定するか否かということを決定することができる。ここで、第２規則は、周回回数が奇数である値を有するピクセルにカラー値を割り当てることを意味する。ここで、奇数は、ピクセルの周回回数の絶対値が奇数である場合を意味する。例えば、周回回数が＋３である場合も奇数と判断され、周回回数が−３である場合も、奇数と判断される。また、周回回数が０である場合は、偶数と判断される。図１７（ｃ）を参照すれば、決定部１２０は、第２規則により、図１７（ａ）に図示された領域１７１２に含まれたピクセルには、カラーを設定し、領域１７１１及び領域１７１３に含まれたピクセルには、カラーを設定しないように決定する。
【０１６５】
決定部１２０は、カラーを設定するように決定したピクセルについての情報を、フラグメントシェーダ２７３１に伝送し、フラグメントシェーダ２７３１は、決定部１２０がカラーを設定するように決定したピクセルに、カラー値を割り当てる。
【０１６６】
前述のところによれば、レンダリング装置１００は、フレームに含まれたピクセルのうち経路が通過するタイルついてのみ、第２周回回数を演算することにより、レンダリング装置１００の演算速度が向上するのである。
【０１６７】
また、レンダリング装置１００は、ステンシルバッファの使用なしに、ピクセルそれぞれの周回回数を演算することができるが、ステンシルバッファを使用することにより、メモリ入出力が過度に発生する問題と、重複メモリ入出力が発生する問題とが解消される。
【０１６８】
また、レンダリング装置１００は、フレームに含まれたピクセルそれぞれに対して、並列に周回回数を生成することにより、高速で経路レンダリングを行うことができ、短時間内に、高解像度のレンダリングを行うことができる。
【０１６９】
図１８は、一実施形態によるレンダリング装置の他の例を図示した構成図である。図１８を参照すれば、レンダリング装置１００は、演算部１１０及び決定部１２０だけではなく、分割部１３０をさらに含む。
【０１７０】
演算部１１０及び決定部１２０の動作する一例は、図１ないし図１７を参照して説明した通りである。従って、以下では、具体的な説明を省略する。
【０１７１】
分割部１３０は、経路が非単調曲線（non-monotonic  curve）である場合、非単調曲線を複数の単調曲線（monotonic  curves）に分割する。例えば、分割部１３０は、ド・カステリョ（de  Casteljau）のアルゴリズムに基づいて、非単調曲線を単調曲線に分割することができる。経路データに、非単調曲線についての情報が含まれている場合、分割部１３０は、非単調曲線についての情報を、複数の単調曲線についての情報に変更する。そして、分割部１３０は、複数の単調曲線についての情報を、演算部１１０に伝送し、演算部１１０は、フレームに含まれたタイルのうち、単調曲線が通過するタイルを選択し、フレームに含まれたタイルそれぞれの第１周回回数ＷＮｉｎｉｔを設定する。
【０１７２】
以下、図１９（ａ）及び図１９（ｂ）を参照し、分割部１３０が非単調曲線を複数の単調曲線に分割する一例について説明する。
【０１７３】
図１９（ａ）及び図１９（ｂ）は、一実施形態による分割部が動作する一例について説明するための図面である。
【０１７４】
図１９（ａ）には、非単調曲線１９１０が図示されている。図５ないし図１７（ｃ）を参照して説明した直線経路は、正の勾配値または負の勾配値を有する。もし図５ないし図１７（ｃ）を参照して説明した経路が、二次元座標平面上に存在すると仮定すれば、経路のｘ座標成分が増加するとき、経路のｙ座標成分が常に増加するか、あるいは常に減少する。しかし、図１９（ａ）に図示された非単調曲線１９１０は、非単調曲線１９１０のｘ座標成分が増加するとき、非単調曲線１９１０のｙ座標成分が常に増加するか、あるいは常に減少するということではない。従って、経路データに、非単調曲線１９１０についての情報が含まれている場合、演算部１１０は、フレームに含まれたタイルそれぞれの第１周回回数ＷＮｉｎｉｔまたは第２周回回数ＷＮを正確に演算することができない。
【０１７５】
図１９（ｂ）には、２本の単調曲線１９１１，１９１２が図示されている。図１９（ｂ）に図示された単調曲線１９１１，１９１２は、図１９（ａ）に図示された非単調曲線１９１０が分割された曲線である。単調曲線１９１１，１９１２が、二次元座標平面上に存在すると仮定すれば、単調曲線１９１１のｘ座標成分が増加するとき、単調曲線１９１１のｙ座標成分が常に増加する。また、単調曲線１９１２のｘ座標成分が増加するとき、単調曲線１９１２のｙ座標成分は、常に減少する。言い換えれば、単調曲線１９１１または１９１２は、ｘ座標成分が増加するとき、ｙ座標成分が常に増加するか、あるいは常に減少する。従って、経路データに、単調曲線１９１１または１９１２についての情報が含まれている場合、演算部１１０は、フレームに含まれたタイルそれぞれの第１周回回数ＷＮｉｎｉｔまたは第２周回回数ＷＮを正確に演算することができる。
【０１７６】
分割部１３０は、経路データに、非単調曲線１９１０についての情報が含まれている場合、非単調曲線１９１０を２以上の単調曲線１９１１，１９１２に分割する。言い換えれば、分割部１３０は、経路データに含まれた非単調曲線１９１０についての情報を２以上の単調曲線１９１１，１９１２についての情報に変換する。従って、演算部１１０及び決定部１２０は、経路データに、非単調曲線１９１０についての情報が含まれている場合にも、図５ないし図１７（ｃ）を参照して説明した動作を遂行することができる。
【０１７７】
例えば、分割部１３０は、ド・カステリョのアルゴリズムに基づいて、非単調曲線１９１０を単調曲線１９１１，１９１２に分割することができる。ここで、ド・カステリョのアルゴリズムは、１本のベジェ曲線（Bezier  curve）を２以上のベジェ曲線に分割するのに利用されるアルゴリズムを意味する。ド・カステリョのアルゴリズムは、当該技術分野での当業者に自明であるので、それに係わる具体的な説明は省略する。
【０１７８】
以下、図２０ないし図２３（ｂ）を参照し、経路データに非単調曲線についての情報が含まれている場合、レンダリング装置１００が動作する一例について説明する。
【０１７９】
図２０は、一実施形態による経路データに含まれた非単調曲線の一例を図示した図面である。
【０１８０】
図２０を参照すれば、フレーム２０１０は、６＊６個のタイルを含み、非単調曲線２０２０は、３個の頂点Ｐ０，Ｐｅｘ，Ｐ２を含むように図示されている。そのとき、非単調曲線２０２０は、頂点Ｐ０を開始頂点にし、頂点Ｐｅｘを通過して、点Ｐ２を終了頂点にする曲線であると仮定する。分割部１３０は、非単調曲線２０２０を、複数の単調曲線に分割する。例えば、分割部１３０は、非単調曲線２０２０を、頂点Ｐ０から頂点Ｐｅｘまでの第１単調曲線２０３１と、頂点Ｐｅｘから頂点Ｐ２までの第２単調曲線２０３２とに分割することができる。そのとき、頂点Ｐｅｘは、非単調曲線２０２０の傾きが正（＋）から負（−）に変わる地点を意味する。
【０１８１】
分割部１３０は、非単調曲線に含まれた頂点のうち、非単調曲線の傾きが正（＋）から負（−）に、あるいは負（−）から正（＋）に変更される頂点を選択し、選択された頂点を基準に、非単調曲線を分割することができる。それにより、非単調曲線は、２以上の単調曲線に分割される。
【０１８２】
一方、経路データには、非単調曲線２０２０の開始頂点Ｐ０及び終了頂点Ｐ２についての情報、並びに開始頂点Ｐ０から終了頂点Ｐ２まで曲線を描くことを意味するコマンドが含まれてもよい。しかし、経路データに頂点Ｐ２から頂点Ｐ０までの経路（例えば、直線）２０４０を描くことを意味するコマンドが明示的に含まれていないとしても、頂点Ｐ２から頂点Ｐ０までの経路２０４０が自動的に追加される。従って、経路データに、非単調曲線２０２０を示す情報が含まれた場合、フレーム２０１０には、非単調曲線２０２０と、頂点Ｐ２から頂点Ｐ０までの経路２０４０とから構成される客体が描かれる。
【０１８３】
従って、演算部１１０は、図６（ａ）ないし図１３を参照して説明した方法により、フレーム２０１０に含まれたタイルそれぞれに、第１周回回数ＷＮｉｎｉｔを設定することができる。そして、演算部１１０は、図１６（ａ）ないし図１６（ｃ）を参照して説明した方法により、単調曲線２０３１，２０３２及び経路２０４０のうち少なくとも一つが通過するタイルそれぞれの第２周回回数ＷＮを演算することができる。そして、決定部１２０は、図１７（ａ）ないし図１７（ｃ）を参照して説明した方法により、フレームに含まれたピクセルそれぞれに対してシェーディングの遂行いかんを決定することができる。
【０１８４】
以下、図２１ａないし図２３（ｂ）を参照し、演算部１１０が、図２０に図示された経路（第１単調曲線２０３１、第２単調曲線２０３２、及び頂点Ｐ２から頂点Ｐ０までの経路２０４０）を利用して、フレームに含まれたタイルそれぞれに、第１周回回数ＷＮｉｎｉｔを設定する一例について説明する。具体的には、図２１（ａ）及び図２１（ｂ）では、演算部１１０が、第１単調曲線２０３１を利用して、所定のタイルの初期周回回数を、第１初期値ＷＮｉｎｉｔ＿１で更新する一例について説明する。図２２（ａ）及び図２２（ｂ）では、演算部１１０が、第２単調曲線２０３２を利用して、所定のタイルの第１初期値ＷＮｉｎｉｔ＿１を、第２初期値ＷＮｉｎｉｔ＿２で更新する一例について説明する。図２３（ａ）及び図２３（ｂ）では、演算部１１０が、頂点Ｐ２から頂点Ｐ０までの経路２０４０を利用して、所定のタイルの第２初期値ＷＮｉｎｉｔ＿２を、第３初期値ＷＮｉｎｉｔ＿３で更新する一例について説明する。
【０１８５】
演算部１１０は、第３初期値ＷＮｉｎｉｔ＿３を、フレーム２０１０に含まれたタイルの第１周回回数ＷＮｉｎｉｔに決定する。一方、フレーム２０１０に含まれた全てのタイルには、初期周回回数（例えば、０）が割り当てられているということは、図５を参照して説明した通りである。
【０１８６】
図２１（ａ）及び図２１（ｂ）は、一実施形態による演算部が、図２０に図示された第１単調曲線を利用して、所定のタイルの初期回数を、第１初期値に更新する一例について説明するための図面である。
【０１８７】
図２１（ａ）には、第１単調曲線２０３１が図示されている。ここで、第１単調曲線２０３１は、頂点Ｐ０から頂点Ｐｅｘまで連結された曲線経路である。従って、第１単調曲線２０３１は、反時計回り方向に進む経路であるということが分かる。
【０１８８】
演算部１１０は、フレームに含まれたタイルのうち、第１単調曲線２０３１が通過するタイル２１３０を選択する。そのとき、演算部１１０がタイル２１３０を選択する方法は、図７（ａ）ないし図７（ｅ）を参照して説明した通りである。そして、演算部１１０は、選択されたタイル２１３０別に、タイルを第１単調曲線２０３１が通過するという情報を「Edge＿List」として生成し、それをローカルメモリ１５０に保存する。図２１（ｂ）に図示されたタイル２１３０に表示された「ｃ０」というタイル２１３０それぞれの「Edge＿List」に含まれた情報を意味する。言い換えれば、「ｃ０」が表示されたタイルは、第１単調曲線２０３１が通過するタイルであるということを意味する。
【０１８９】
そして、演算部１１０は、選択されたタイル２１３０の一側面に位置するタイル２１４１の初期周回回数を、第１初期値ＷＮｉｎｉｔ＿１に更新する。例えば、演算部１１０は、選択されたタイル２１３０の左側方向のタイル２１４１それぞれの初期周回回数を、第１初期値ＷＮｉｎｉｔ＿１に更新することができる。そのとき、演算部１１０がタイル２１４１それぞれの初期周回回数を、第１初期値ＷＮｉｎｉｔ＿１に更新する方法は、図９（ａ）ないし図９（ｃ）を参照して説明した通りである。具体的には、第１単調曲線２０３１が、反時計回り方向にタイル２１３０を通過するので、演算部１１０は、タイル２１４１それぞれの初期周回回数から１を減算することにより、第１初期値ＷＮｉｎｉｔ＿１を獲得する。一方、頂点Ｐ０及び頂点Ｐ２の左側に存在するタイル２１４２，２１４３の第１初期値ＷＮｉｎｉｔ＿１の更新は、前述のところのように保留される。従って、フレームに含まれたタイルのうち、タイル２１４１を除いたタイルは、初期周回回数がそのまま第１初期値ＷＮｉｎｉｔ＿１に決定される。そして、演算部１１０は、第１初期値ＷＮｉｎｉｔ＿１をそれぞれのタイル別に、ローカルメモリ１５０に保存することができる。
【０１９０】
図２２（ａ）及び図２２（ｂ）は、一実施形態による演算部が、図２０に図示された第２単調曲線を利用して、所定のタイルの第１初期値を第２初期値に更新する一例について説明するための図面である。
【０１９１】
図２２（ａ）には、第２単調曲線２０３２が図示されている。ここで、第２単調曲線２０３２は、頂点Ｐｅｘから頂点Ｐ２まで連結された曲線経路である。従って、第２単調曲線２０３２は、時計回り方向に進む経路であるということが分かる。
【０１９２】
演算部１１０は、フレームに含まれたタイルのうち、第２単調曲線２０３２が通過するタイル２２３０を選択する。そのとき、演算部１１０が、タイル２２３０を選択する方法は、図７（ａ）ないし図７（ｅ）を参照して説明した通りである。そして、演算部１１０は、選択されたタイル２２３０別に、タイルを第２単調曲線２０３２が通過するという情報を「Edge＿List」として生成し、それをローカルメモリ１５０に保存する。もし図２１（ａ）を参照して説明したように、「Edge＿List」がすでに生成されたタイルの場合には、既生成の「Edge＿List」に、第２単調曲線２０３２が通過するという情報を追加して保存する。図２２（ｂ）において、「ｃ０，ｃ１」が表示されたタイルは、第１単調曲線２０３１が通過するタイルでありながら、第２単調曲線２０３２が通過するタイルであるということを意味する。また、「ｃ０」が表示されたタイルは、第１単調曲線２０３１が通過するタイルであるということを意味する。また、「ｃ１」が表示されたタイルは、第２単調曲線２０３２が通過するタイルであるということを意味する。
【０１９３】
そして、演算部１１０は、選択されたタイル２２３０の一側面に位置するタイル２２４０それぞれの第１初期値ＷＮｉｎｉｔ＿１を、第２初期値ＷＮｉｎｉｔ＿２に更新する。ただし、第２単調曲線２０３２は、タイル２２３０を水平に通過する。従って、図１２を参照して説明したように、演算部１１０は、タイル２２４０の第２初期値ＷＮｉｎｉｔ＿２設定を保留し、第２単調曲線２０３２、及び頂点Ｐ２から頂点Ｐ０までの経路が連結された単一経路がタイル２２３０を通過する形態によって、タイル２２４０それぞれに、第３初期値ＷＮｉｎｉｔ＿３を付与する。
【０１９４】
図２３（ａ）及び図２３（ｂ）は、一実施形態による演算部が、図２０に図示された頂点Ｐ２から頂点Ｐ０までの経路を利用して、所定のタイルの第２初期値を第３初期値に更新する一例について説明するための図面である。
【０１９５】
図２３（ａ）には、頂点Ｐ２から頂点Ｐ０までの経路２０４０が図示されている。ここで、頂点Ｐ２から頂点Ｐ０までの経路２０４０は、時計回り方向に進む経路であるということが分かる。
【０１９６】
演算部１１０は、フレーム２３１０に含まれたタイルのうち、経路２０４０が通過するタイル２３３０を選択する。そのとき、演算部１１０がタイル２２３０を選択する方法は、図７（ａ）ないし図７（ｅ）を参照して説明した通りである。そして、演算部１１０は、選択されたタイル２３３０別に、タイルを経路２０４０が通過するという情報を「Edge＿List」として生成し、それをローカルメモリ１５０に保存する。もし図２２（ａ）を参照して説明したように、「Edge＿List」がすでに生成されたタイルの場合には、既生成の「Edge＿List」に、経路２３２０が通過するという情報を追加して保存する。図２３（ｂ）において、「ｃ０，ｅ２」が表示されたタイルは、第１単調曲線２０３１が通過するタイルでありながら、経路２０４０が通過するタイルであるということを意味する。また、「ｃ０」が表示されたタイルは、第１単調曲線２０３１が通過するタイルであるということを意味する。また、「ｃ１，ｅ２」が表示されたタイルは、第２単調曲線２０３２が通過するタイルでありながら、経路２０４０が通過するタイルであるということを意味する。また、「ｃ０，ｃ１，ｅ２」が表示されたタイルは、第１単調曲線２０３１が通過するタイルであり、第２単調曲線２０３２が通過するタイルでありながら、経路２０４０が通過するタイルであるということを意味する。
【０１９７】
そして、演算部１１０は、選択されたタイル２３３０の一側面に位置するタイル２３４１それぞれの第２初期値ＷＮｉｎｉｔ＿２を、第３初期値ＷＮｉｎｉｔ＿３に更新する。例えば、演算部１１０は、選択されたタイル２３３０の左側方向のタイル２３４１それぞれの第２初期値ＷＮｉｎｉｔ＿２を、第３初期値ＷＮｉｎｉｔ＿３に更新することができる。そのとき、演算部１１０が、タイル２３４１それぞれに、第３初期値ＷＮｉｎｉｔ＿３を付与する方法は、図１３（ａ）及び図１３（ｂ）を参照して説明した通りである。言い換えれば、経路２３２０が時計回り方向にタイル２３３０を通過するので、演算部１１０は、タイル２３４１それぞれの第２初期値ＷＮｉｎｉｔ＿２に１を加算することにより、第３初期値ＷＮｉｎｉｔ＿３を獲得する。
【０１９８】
一方、経路２０４０の開始頂点Ｐ２を含むタイルの左側方向に位置したタイル２３４２の場合、演算部１１０は、第２単調曲線２０３２及び経路２０４０がタイルを通過する形態を考慮し、第３初期値ＷＮｉｎｉｔ＿３を付与する。そのとき、演算部１１０が、タイル２３４２それぞれに、第３初期値ＷＮｉｎｉｔ＿３を付与する方法は、図１１（ａ）ないし図１１（ｃ）を参照して説明した通りである。具体的には、図２１（ａ）、図２２（ａ）及び図２３（ａ）を参照すれば、第１単調曲線２０３１、第２単調曲線２０３２及び経路２０４０は、タイル２３３１とタイル２３３３とが合されたタイルの一境界線に入場して退場するので、演算部１１０は、タイル２３４２それぞれの初期周回回数を維持することにより、第３初期値ＷＮｉｎｉｔ＿３を決定する。そして、演算部１１０は、第３初期値ＷＮｉｎｉｔ＿３をそれぞれのタイル別に、ローカルメモリ１５０に保存することができる。
【０１９９】
また、経路２０４０の終了頂点Ｐ０を含むタイルの左側方向に位置したタイル２３４３の場合、演算部１１０は、経路２０４０及び第１単調曲線２０３１がタイルを通過する形態を考慮し、第３初期値ＷＮｉｎｉｔ＿３を付与する。そのとき、演算部１１０が、タイル２３４３に、第３初期値ＷＮｉｎｉｔ＿３を付与する方法は、図１１（ａ）ないし図１１（ｃ）を参照して説明した通りである。具体的には、経路２０４０と第１単調曲線２０３１とが結合された単一経路が、タイル２３３２の単一面に入場して退場するので、演算部１１０は、タイル２３４３に０を、第３初期値ＷＮｉｎｉｔ＿３として付与する。そして、演算部１１０は、タイル２３４３の第３初期値ＷＮｉｎｉｔ＿３をローカルメモリ１５０に保存することができる。
【０２００】
一方、フレームに含まれたタイルのうち、タイル２３４１，２３４２，２３４３を除いたタイルは、第２初期値ＷＮｉｎｉｔ＿２がそのまま第３初期値ＷＮｉｎｉｔ＿３に決定される。そして、演算部１１０は、第３初期値ＷＮｉｎｉｔ＿３をそれぞれのタイル別に、ローカルメモリ１５０に保存することができる。
【０２０１】
図２３（ｂ）には、第３初期値ＷＮｉｎｉｔ＿３が図示されている。図２３（ｂ）に図示されたタイル２３５１，２３５２ごとに表示された「０」または「１」は、タイル２３５１，２３５２それぞれの第３初期値ＷＮｉｎｉｔ＿３を意味する。また、図２３（ｂ）には、図示されていないが、フレームに含まれたタイルのうち、タイル２３５１，２３５２を除いたタイルの第３初期値ＷＮｉｎｉｔ＿３は、初期周回回数と同一である「０」である。
【０２０２】
演算部１１０は、第３初期値ＷＮｉｎｉｔ＿３を第１周回回数ＷＮｉｎｉｔに決定する。図２１（ａ）ないし図２３（ｂ）を参照して説明したように、演算部１１０は、初期周回回数（例えば、０）が更新された第３初期値ＷＮｉｎｉｔ＿３を第１周回回数ＷＮｉｎｉｔに決定する。
【０２０３】
図１９（ａ）ないし図２３（ｂ）を参照して説明したところによれば、演算部１１０は、経路データに、非単調曲線についての情報が含まれていても、全てのタイルの第１周回回数を設定することができる。また、図１６を参照して説明したように、経路が通過するタイルのピクセルに該当する周回回数は、第１周回回数に基づいて演算される。そのように演算されたピクセルの周回回数を利用して、決定部１２０は、フレームに含まれたピクセルそれぞれに対するシェーディングの遂行いかんを決定することができる。従って、レンダリング装置１００は、非単調曲線の場合にも、正確に経路レンダリングを行うことができる。
【０２０４】
図２４（ａ）及び図２４（ｂ）は、一実施形態による分割部が、円形経路をキュービック（cubic）曲線に変換する一例について説明するための図面である。
【０２０５】
図２４（ａ）には、楕円形経路２４１０が図示されており、図２４（ｂ）には、キュービック曲線（または、キュービックベジェ曲線（cubic
2016038917.tif 000003
curve））２４２０が図示されている。レンダリング装置１００が受信する経路データに、楕円形経路２４１０についての情報が含まれている場合、分割部１３０は、楕円形経路２４１０をキュービック曲線２４２０に変換することができる。そして、分割部１３０は、キュービック曲線２４２０を、複数の単調曲線に分割することができる。従って、レンダリング装置１００は、楕円形経路２４１０の場合にも、正確に経路レンダリングを行うことができる。
【０２０６】
以上では、説明の便宜のために、楕円形経路２４１０を一例として説明したが、分割部１３０は、円形経路をキュービック曲線に変換することができる。
【０２０７】
図２５は、一実施形態によるレンダリング装置のさらに他の例を図示した構成図である。
【０２０８】
図２５を参照すれば、レンダリング装置１００は、演算部１１０及び決定部１２０だけではなく、生成部１４０及びローカルメモリ１５０をさらに含む。
【０２０９】
演算部１１０及び決定部１２０の動作する一例は、図１ないし図１７を参照して説明した通りである。従って、以下では、具体的な説明を省略する。また、図２５に図示されたレンダリング装置１００に、分割部１３０がさらに含まれてもよいということは、図１８ないし図２４（ｂ）を参照して説明した通りである。
【０２１０】
図１ないし図２４（ｂ）の説明によれば、ピクセルの周回回数は、演算部１１０によって演算される。しかし、図２５に図示されたレンダリング装置１００によれば、ピクセルの周回回数は、生成部１４０によって演算され、演算された周回回数は、決定部１２０に伝送される。具体的には、決定部１２０が、生成部１４０に、第１ピクセルの周回回数を演算することを要請すれば、生成部１４０は、ローカルメモリ１５０から、第１ピクセルが含まれた第１タイルの第１周回回数ＷＮｉｎｉｔ、及び第１タイルを通過する少なくとも１つの経路についての情報（経路の位置及び進行方向についての情報）を読み取る。そして、生成部１４０は、読み取られた情報を利用して、第１ピクセルの周回回数ＷＮを演算する。そのとき、生成部１４０が第１ピクセルの周回回数ＷＮを演算する方法は、図１６（ａ）ないし図１６（ｃ）を参照して説明した方法と同一である。
【０２１１】
そして、生成部１４０は、第１ピクセルの周回回数ＷＮを決定部１２０に伝送する。決定部１２０は、演算部１１０から伝送されたタイルの第１周回回数ＷＮｉｎｉｔ、及び生成部１４０から伝送されたピクセルの周回回数ＷＮに基づいて、ピクセルにシェーディングを行うか否かということを決定する。
【０２１２】
図２６は、一実施形態による周回回数生成装置の一例について説明するための構成図である。図２６を参照すれば、レンダリング装置１００は、演算部１１０、ローカルメモリ１５０及び決定部１２０を含む。そして、レンダリング装置１００の外部には、周回回数生成装置２６００が位置する。
【０２１３】
レンダリング装置１００に含まれた演算部１１０、ローカルメモリ１５０及び決定部１２０が動作する一例は、図１ないし図２５を参照して説明した通りである。従って、以下では、具体的な説明を省略する。また、図２６に図示されたレンダリング装置１００に分割部１３０がさらに含まれてもよいということは、図１８ないし図２５を参照して説明した通りである。
【０２１４】
周回回数生成装置２６００は、レンダリング装置１００とは別途の独立した装置として存在する。ここで、周回回数生成装置２６００が動作する一例は、図２５の生成部１４０が動作する一例と同一である。
【０２１５】
図２７（ａ）及び図２７（ｂ）は、一実施形態による経路をレンダリングする方法が、ＧＰＵ（graphics  processing  unit）によって具現化される例について説明するための図面である。
【０２１６】
図２７（ａ）を参照すれば、ＧＰＵ  ２７００で実行される経路をレンダリングする方法は、図１、図１８及び図２５に図示されたレンダリング装置１００において、時系列的に処理される段階を含む。従って、以下で省略された内容であるとしても、図１、図１８及び図２５に図示されたレンダリング装置１００について、以上で記述された内容は、図２７（ａ）を参照して説明する内容にも適用されるということが分かる。
【０２１７】
図２７（ａ）を参照すれば、ＧＰＵ  ２７００は、グローバルメモリ２７１０、バーテックスシェーダ２７２０、ピクセルシェーダ２７３０及びフレームバッファ２７４０を含む。ここで、バーテックスシェーダ２７２０は、図１、図１８及び図２５に図示されたレンダリング装置１００と同一機能を遂行する。
【０２１８】
図２７（ｂ）を参照すれば、ＧＰＵ  ２７０１とは別途の独立した装置として、周回回数生成装置２７５０が図示されている。言い換えれば、周回回数生成装置２７５０は、ＧＰＵ  ２７００の内部に含まれてもよく、ＧＰＵ  ２７０１の外部に独立して位置してもよい。
【０２１９】
図２７（ａ）及び図２７（ｂ）に図示されたピクセルシェーダ２７３０は、フレームに含まれたピクセルそれぞれに対してシェーディングを行う。まず、ピクセルシェーダ２７３０（または、ピクセルシェーダ２７３０に含まれたフラグメントシェーダ２７３１）は、ピクセルそれぞれにカラー値を設定する。そのとき、フラグメントシェーダ２７３１は、既保存のテクスチャ２７３２を利用して、ピクセルそれぞれに、カラー値を設定することができる。その後、ピクセルシェーダ２７３０は、ピクセルそれぞれに後処理作業を遂行する。ここで、後処理作業は、ブレンディング（blending）作業またはアンチエイリアシング（antialiasing）作業を含む。その後、ピクセルシェーダ２７３０は、ピクセル処理が行われた結果をフレームバッファ２７４０に伝送し、フレームバッファ２７４０は、ピクセルシェーダ２７３０から伝送された情報を保存する。
【０２２０】
以下、図２８ないし図３１を参照し、バーテックスシェーダ２７２０が動作する一例について説明する。
【０２２１】
図２８は、一実施形態によるバーテックスシェーダが動作する一例について説明するための図面である。
【０２２２】
バーテックスシェーダ２７２０は、グローバルメモリ２７１０から、経路データ２８１０を受信する。そして、バーテックスシェーダ２７２０は、経路データ２８１０に含まれたそれぞれのコマンドに対して、タイルビニング（tile  binning）を行う（２８２０）。ここで、タイルビニングは、フレームに含まれたタイルそれぞれに対して、第１周回回数を設定する過程を意味する。言い換えれば、図６（ａ）ないし図１３（ｂ）を参照して説明したように、バーテックスシェーダ２７２０は、フレームに含まれたタイルのうち、経路が通過するタイルを選択し、フレームに含まれたタイルそれぞれに対して、第１周回回数を設定する。バーテックスシェーダ２７２０によってタイルビニングが行われることによって生成された情報（例えば、第１周回回数、タイルを通過する経路の位置及び方向）を意味するタイルビン２８４０は、ローカルメモリ２７２３に保存される。
【０２２３】
以下、図２９を参照し、バーテックスシェーダ２７２０がタイルビニングを行う一例について説明する。
【０２２４】
図２９は、一実施形態によるバーテックスシェーダがタイルビニングを行う一例について説明するための図面である。
【０２２５】
バーテックスシェーダ２７２０は、経路データ２８１０からコマンドを獲得する（２９１０）。そして、バーテックスシェーダ２７２０は、フレームに含まれたタイルのうち、コマンドによって通過されるタイルを求める（２９２０）。言い換えれば、バーテックスシェーダ２７２０は、フレームに含まれたタイルのうち、経路が通過するタイル（以下、「灰色タイル（又はグレータイル）２９３０」という）を選択する。バーテックスシェーダ２７２０は、灰色タイル２９３０それぞれの「Edge＿list」をアップデートする（２９４０）。そのとき、灰色タイル２９３０それぞれの「Edge＿list」は、ローカルメモリ２７２３に保存されることができる（２９６０）。
【０２２６】
バーテックスシェーダ２７２０は、フレームに含まれたタイルのうち、灰色タイル２９３０の一側面に位置したタイル（以下、「白色タイル（又はホワイトタイル）」という）それぞれに、第１周回回数ＷＮｉｎｉｔを設定する（２９５０）。
【０２２７】
その後、バーテックスシェーダ２７２０は、経路データに、タイルビニングに利用されないコマンドが存在するか否かということを判断する（２９７０）。タイルビニングに利用されないコマンドが存在すれば、２９１０段階に進み、そうでなければ、図２８の２８３０段階に進む。
【０２２８】
再び図２８を参照すれば、バーテックスシェーダ２７２０は、フレームに含まれたタイルのうち、いずれか一つを獲得し（２８３０）、獲得されたタイルに含まれたピクセルそれぞれの周回回数を演算する（２８５０）。そのとき、バーテックスシェーダ２７２０は、ローカルメモリ２７２３に保存されたタイルビン２８４０を利用して、ピクセルの周回回数を演算することができる。
【０２２９】
その後、バーテックスシェーダ２７２０は、周回回数の演算結果に基づいて、ピクセルのシェーディングを行うか否かということを決定する。例えば、バーテックスシェーダ２７２０は、周回回数の演算結果に基づいて、ピクセルのカラーリングを行うか否かということを決定することができる（２８６０）。
【０２３０】
以下、図３０を参照し、図２８に図示された２８３０段階ないし２８６０段階について詳細に説明する。
【０２３１】
図３０は、一実施形態によるバーテックスシェーダがピクセルの周回回数を演算し、ピクセルのシェーディングを行うか否かということを決定する一例について説明するための図面である。
【０２３２】
バーテックスシェーダ２７２０は、フレームに含まれたタイルのうち、いずれか一つを獲得し（３０１０）、獲得されたタイルが白色タイルであるか否かということを判断する（３０２０）。もし獲得されたタイルが白色タイルであるならば、３０３０段階に進み、そうでなければ、３０４０段階に進む。
【０２３３】
バーテックスシェーダ２７２０は、獲得されたタイルが白色タイルである場合、設定された第１周回回数ＷＮｉｎｉｔを、白色タイルに含まれたピクセルそれぞれの周回回数ＷＮに決定する（３０３０）。
【０２３４】
灰色タイルの場合、バーテックスシェーダ２７２０は、獲得されたタイルに含まれたピクセルそれぞれの周回回数を演算する。そのとき、バーテックスシェーダ２７２０は、周回回数生成装置２７５０に、ピクセルの周回回数を演算することを要請することができる。周回回数生成装置２７５０は、ローカルメモリ２７２３に保存された「Edge＿List」を利用して、タイルに含まれたピクセルそれぞれの周回回数を演算することができる。ここで、周回回数生成装置２７５０がピクセルの周回回数を演算する一例は、図１６（ａ）ないし図１６（ｃ）を参照して説明した通りである。
【０２３５】
バーテックスシェーダ２７２０は、第１規則に基づいて、ピクセルそれぞれに対してシェーディングを行うか否かということを決定する（３０６０）。ここで、第１規則は、周回回数が０ではない値を有するピクセルに、カラー値を割り当てる規則（non-zero  rule）を意味する。バーテックスシェーダ２７２０が、第１規則に基づいて、ピクセルにカラーを設定するか否かということを決定する場合には、３０８０段階に進み、そうでない場合には、３０７０段階に進む。
【０２３６】
バーテックスシェーダ２７２０は、ピクセルそれぞれの周回回数が０ではないか否かということを判断する（３０８０）。バーテックスシェーダ２７２０は、０ではない周回回数を有するピクセルについては、ピクセルシェーダ２７３０に、ピクセルのシェーディングを行うことを指示する（３０９５）。
【０２３７】
バーテックスシェーダ２７２０は、第２規則に基づいて、ピクセルそれぞれに対して、カラーをシェーディングを行うか否かということを決定する（３０７０）。ここで、第２規則は、周回回数が奇数である値を有するピクセルに、カラー値を割り当てる規則（even-odd  rule）を意味する。バーテックスシェーダ２７２０が第２規則に基づいて、ピクセルにカラーを設定するか否かということを決定する場合には、３０９０段階に進行み、そうではない場合には、作業を終了する。
【０２３８】
３０６０段階及び３０７０段階を参照して説明したように、バーテックスシェーダ２７２０は、第１規則または第２規則に基づいて、ピクセルにカラー値を割り当てることができるが、それに制限されるものではない。例えば、バーテックスシェーダ２７２０は、第１規則の逆規則（inverse  non-zero  rule）、または第２規則の逆規則（inverse  even-odd  rule）に基づいて、ピクセルにカラー値を割り当てることもできる。
【０２３９】
バーテックスシェーダ２７２０は、ピクセルそれぞれの周回回数が奇数であるか否かということを判断する（３０９０）。ここで、奇数は、ピクセルの周回回数の絶対値が奇数である場合を意味する。例えば、周回回数が＋３である場合も、奇数であると判断され、周回回数が−３である場合も、奇数であると判断される。バーテックスシェーダ２７２０は、奇数である周回回数を有するピクセルについては、ピクセルシェーダ２７３０に、ピクセルのシェーディングを行うことを指示する（３０９５）。
【０２４０】
再び図２８を参照すれば、バーテックスシェーダ２７２０は、ピクセルシェーダ２７３０に、ピクセルのシェーディングを行うことを指示する以前に、フレームに含まれたタイルのうち、ピクセルの周回回数が演算されていないタイルが存在するか否かということを判断する（２８７０）。ピクセルの周回回数が演算されていないタイルが存在すれば、２８３０段階に進み、そうでなければ、ピクセルシェーダ２７３０にピクセルのシェーディングを行うことを指示する。
【０２４１】
図３１は、一実施形態によるピクセルの周回回数を演算する方法の一例を示すフローチャートである。図３１を参照すれば、ピクセルの周回回数を演算する方法は、図２６及び図２７（ｂ）に図示された周回回数生成装置２６００，２７５０において、時系列的に処理される段階によって構成される。従って、以下で省略された内容であるとしても、該方法は、図２６及び図２７（ｂ）に図示された周回回数生成装置２６００，２７５０について以上で記述された内容は、図３１のピクセルの周回回数を演算する方法にも適用されるということが分かる。
【０２４２】
３１１０段階において、周回回数生成装置２６００，２７５０は、グラフィック処理装置から、少なくとも１つの経路についての情報、及びフレームに含まれたタイルそれぞれに設定された第１周回回数についての情報を受信する。
【０２４３】
３１２０段階において、周回回数生成装置２６００，２７５０は、受信された情報を利用して、フレームに含まれたピクセルそれぞれに対応する周回回数を演算する。
【０２４４】
３１３０段階において、周回回数生成装置２６００，２７５０は、演算された周回回数をグラフィック処理装置に出力する。
【０２４５】
一方、前述の方法は、コンピュータで実行されるプログラムで作成可能であり、コンピュータで読み取り可能な記録媒体を利用して、前記プログラムを動作させる汎用デジタルコンピュータで具現化される。また、前述の方法で使用されたデータの構造は、コンピュータで読み取り可能な記録媒体に多くの手段を介して記録される。前記コンピュータで読み取り可能な記録媒体は、マグネチック記録媒体（例えば、ＲＯＭ（read  only  memory）、ＲＡＭ（random  access  memory）、ＵＳＢ（universal  serial  bus）、フロッピー（登録商標）ディスク、ハードディスクなど）、光学的判読媒体（例えば、ＣＤ（compact  disc）−ＲＯＭ、ＤＶＤ（digital  versatile  disc）など）のような記録媒体を含む。
【０２４６】
図１ないし図３１を参照して説明したところによれば、レンダリング装置は、フレームに含まれたピクセルのうち、経路が通過しないそれぞれのタイルに属する全てのピクセルには、同一の周回回数を割り当て、経路が通過するタイルに含まれたピクセルついてのみ、ピクセル別に周回回数（winding  number）を演算することにより、レンダリング装置の性能が向上するのである。
【０２４７】
また、ステンシルバッファの使用なしに、経路レンダリングが行われ、ステンシルバッファを使用することにより、メモリ入出力が過度に発生する問題と、重複メモリ入出力が発生する問題とが解消される。
【０２４８】
また、該レンダリング装置は、フレームに含まれたピクセルそれぞれに対して並列に周回回数を生成することにより、高速で経路レンダリングが行われ、短時間内に高解像度のレンダリングが行われる。
【０２４９】
本実施形態と係わる技術分野で当業者は、前述の記載の本質的な特性から外れない範囲で変形された形態に具現化されるということを理解することができるであろう。従って、開示された方法は、限定的な観点ではなく、説明的な観点から考慮されなければならない。前述の説明ではなく、特許請求の範囲に発明の範囲が示されており、特許請求の範囲と同等な範囲内にある全ての変形は、発明の範囲に含まれたものと解釈されなければならないのである。
【産業上の利用可能性】
【０２５０】
本発明のタイルに基づく経路レンダリングを行う方法及びその装置は、例えば、グラフィックス関連の技術分野に効果的に適用可能である。
【符号の説明】
【０２５１】
１００    レンダリング装置
１１０    演算部
１２０    決定部
【図１】
2016038917.tif 000004
【図２】
2016038917.tif 000005
【図３】
2016038917.tif 000006
【図４】
2016038917.tif 000007
【図５】
2016038917.tif 000008
【図６】
2016038917.tif 000009
【図７】
2016038917.tif 000010
【図８】
2016038917.tif 000011
【図９】
2016038917.tif 000012
【図１０】
2016038917.tif 000013
【図１１】
2016038917.tif 000014
【図１２】
2016038917.tif 000015
【図１３】
2016038917.tif 000016
【図１４】
2016038917.tif 000017
【図１５】
2016038917.tif 000018
【図１６】
2016038917.tif 000019
【図１７】
2016038917.tif 000020
【図１８】
2016038917.tif 000021
【図１９】
2016038917.tif 000022
【図２０】
2016038917.tif 000023
【図２１】
2016038917.tif 000024
【図２２】
2016038917.tif 000025
【図２３】
2016038917.tif 000026
【図２４】
2016038917.tif 000027
【図２５】
2016038917.tif 000028
【図２６】
2016038917.tif 000029
【図２７】
2016038917.tif 000030
【図２８】
2016038917.tif 000031
【図２９】
2016038917.tif 000032
【図３０】
2016038917.tif 000033
【図３１】
2016038917.tif 000034