(57)【要約】【課題】  従来と比べて画像の描画処理の高速化を図ることを目的とする。【解決手段】  描画指示に基づいて描画される第１図形のそれぞれから、出力装置に第１図形を含む画像を出力する単位である単位領域ごとに、単位領域に含まれる部分の図形を切り取る切取部と、単位領域ごとに、切取部により切り取られた図形のそれぞれを分割することで得られる少なくとも１つの第２図形を描画するコマンドを生成する生成部と、単位領域ごとに生成されたコマンドに基づいて第２図形のそれぞれを描画する描画部と、を有する。【選択図】    図１
2015225421.tif 000002
【特許請求の範囲】
【請求項１】
描画指示に基づいて描画される第１図形のそれぞれから、出力装置に前記第１図形を含む画像を出力する単位である単位領域ごとに、前記単位領域に含まれる部分の図形を切り取る切取部と、
前記単位領域ごとに、前記切取部により切り取られた図形のそれぞれを分割することで得られる少なくとも１つの第２図形を描画するコマンドを生成する生成部と、
前記単位領域ごとに生成された前記コマンドに基づいて前記第２図形のそれぞれを描画する描画部と、
を備えることを特徴とする画像描画装置。
【請求項２】
請求項１に記載の画像描画装置において、
前記単位領域ごとに切り取られた図形は、前記単位領域の境界と前記第１図形の輪郭とで囲まれた多角形であり、
前記第２図形のそれぞれは、前記多角形の頂点のうちの１つを共通に含む三角形である
ことを特徴とする画像描画装置。
【請求項３】
請求項１または請求項２に記載の画像描画装置において、
前記切取部は、
前記第１図形の頂点を示す情報と前記単位領域の境界を示す情報とに基づいて、前記第１図形の少なくとも一部を含む前記単位領域を特定する解析部と、
前記第１図形から、前記解析部により特定された前記単位領域ごとに、前記単位領域に含まれる部分の図形を切り取るクリッピング部と、を備える
ことを特徴とする画像描画装置。
【請求項４】
描画指示に基づいて描画される第１図形のそれぞれから、出力装置に前記第１図形を含む画像を出力する単位である単位領域ごとに、前記単位領域に含まれる部分の図形を切取部により切り取り、
前記単位領域ごとに、前記切取部により切り取られた図形のそれぞれを分割することで得られる少なくとも１つの第２図形を描画するコマンドを生成部により生成し、
前記単位領域ごとに生成された前記コマンドに基づいて前記第２図形のそれぞれを描画部により描画する、
ことを特徴とする画像描画方法。
【請求項５】
描画指示に基づいて描画される第１図形のそれぞれから、出力装置に前記第１図形を含む画像を出力する単位である単位領域ごとに、前記単位領域に含まれる部分の図形を切り取る切取部と、
前記単位領域ごとに、前記切取部により切り取られた図形のそれぞれを分割することで得られる少なくとも１つの第２図形を描画するコマンドを生成する生成部と、
前記単位領域ごとに生成された前記コマンドに基づいて前記第２図形のそれぞれを描画する描画部と、
を含む画像描画装置と、
前記画像描画装置に前記描画指示を出力する制御装置と、
前記第１図形の頂点を示す情報と、前記単位領域の境界を示す情報とを格納する記憶装置と、
を備えることを特徴とする画像描画システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を画面に描画する画像描画装置、画像描画方法および画像描画システムに関する。
【背景技術】
【０００２】
例えば、コンピュータ装置あるいはゲーム機器等を用いて、３次元空間の立体物を２次元の図形の組合せに変換し、変換した２次元の図形の組合せに基づき奥行きのある画像を描画するコンピュータグラフィックスの技術が提案されている（特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２９５１６６号公報
【特許文献２】特開２０１１−１２８７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、コンピュータグラフィックスの描画方式には、ディスプレイ等の表示領域やプリンタ等の印刷領域を水平走査方向の複数の帯状の単位領域に分割し、単位領域ごとに２次元の各図形を描画するラスタスキャンベースレンダリングがある。また、コンピュータグラフィックスの描画方式には、表示領域や印刷領域を水平および垂直走査方向でタイル状の単位領域に分割し、単位領域ごとに図形を描画するタイルベースレンダリングがある。コンピュータ装置等は、各単位領域に含まれる図形をディスプレイ等に出力する前に、単位領域に頂点が含まれる図形を、図形の頂点を接続する辺を用いて表現するベクタ表現から、図形を画素の集合体で表現するラスタ表現に変換するラスタライズ処理を施す。ラスタライズ処理において、コンピュータ装置等は、単位領域に頂点が含まれる図形の全体を表す画素の集合体を生成し、得られた画素の集合体から単位領域に含まれる図形の一部を表す画素データを取得する。このため、コンピュータ装置等は、複数の単位領域にまたがる図形を出力するために、図形の一部を含む単位領域の数と同じ回数のラスタライズ処理を行うことから、ディスプレイ等に画像が表示されるまでに時間がかかってしまう。
【０００５】
本件開示の画像描画装置、画像描画方法および画像描画システムは、従来と比べて画像の描画処理の高速化を図ることを目的とする。
【課題を解決するための手段】
【０００６】
一の態様では、画像描画装置は、描画指示に基づいて描画される第１図形のそれぞれから、出力装置に第１図形を含む画像を出力する単位である単位領域ごとに、単位領域に含まれる部分の図形を切り取る切取部と、単位領域ごとに、切取部により切り取られた図形のそれぞれを分割することで得られる少なくとも１つの第２図形を描画するコマンドを生成する生成部と、単位領域ごとに生成されたコマンドに基づいて第２図形のそれぞれを描画する描画部と、を有する。
【０００７】
別の態様では、画像描画方法は、描画指示に基づいて描画される第１図形のそれぞれから、出力装置に第１図形を含む画像を出力する単位である単位領域ごとに、単位領域に含まれる部分の図形を切取部により切り取り、単位領域ごとに、切取部により切り取られた図形のそれぞれを分割することで得られる少なくとも１つの第２図形を描画するコマンドを生成部により生成し、単位領域ごとに生成されたコマンドに基づいて第２図形のそれぞれを描画部により描画する。
【０００８】
別の態様では、画像描画システムは、描画指示に基づいて描画される第１図形のそれぞれから、出力装置に第１図形を含む画像を出力する単位である単位領域ごとに、単位領域に含まれる部分の図形を切り取る切取部と、単位領域ごとに、切取部により切り取られた図形のそれぞれを分割することで得られる少なくとも１つの第２図形を描画するコマンドを生成する生成部と、単位領域ごとに生成されたコマンドに基づいて第２図形のそれぞれを描画する描画部と、を含む画像描画装置と、画像描画装置に描画指示を出力する制御装置と、第１図形の頂点を示す情報と、単位領域の境界を示す情報とを格納する記憶装置と、を有する。
【発明の効果】
【０００９】
本件開示の画像描画装置、画像描画方法および画像描画システムは、従来と比べて画像の描画処理の高速化を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】画像描画装置および描画システムの一実施形態を示す図である。
【図２】図１に示した切取部による図形の切り取り処理の例を示す図である。
【図３】図１に示した切取部により各スキャンラインで切り取られた各図形の頂点を示す情報の例を示す図である。
【図４】図１に示した生成部による分割処理の例を示す図である。
【図５】図１に示した生成部により生成された描画のコマンド群の例を示す図である。
【図６】図２に示した三角形のラスタ表現の例を示す図である。
【図７】図１に示した画像描画装置における画像描画処理の例を示す図である。
【図８】画像描画装置および画像描画システムの別実施形態を示す図である。
【図９】図８に示した切取部による切り取り処理の例を示す図である。
【図１０】図８に示した切取部により各タイルで切り取られた図形の頂点を示す情報の例を示す図である。
【図１１】図８に示した生成部による分割処理の例を示す図である。
【図１２】図８に示した生成部により生成された描画のコマンド群の例を示す図である。
【図１３】図８に示した画像描画装置における画像描画処理の例を示す図である。
【図１４】画像描画装置および画像描画システムの別実施形態を示す図である。
【図１５】図１４に示した前処理部により前処理された図形の例を示す図である。
【図１６】スキャンラインとプリミティブとの位置関係の例を示す図である。
【図１７】図１４に示した解析部による判定処理の例を示す図である。
【図１８】図１４に示したクリッピング部により各スキャンラインでクリッピングされた各プリミティブの頂点を示す情報の例を示す図である。
【図１９】図１４に示したクリッピング部による各プリミティブのクリッピング処理の例を示す図である。
【図２０】図１４に示した生成部による分割処理の例を示す図である。
【図２１】図１４に示した生成部により生成された描画のコマンド群の例を示す図である。
【図２２】図１４に示した画像描画装置における画像描画処理の例を示す図である。
【図２３】図２２に示したステップＳ２００の処理の例を示す図である。
【図２４】図２２に示したステップＳ３００の処理の例を示す図である。
【図２５】図２２に示したステップＳ４００の処理の例を示す図である。
【図２６】図１４に示した画像描画装置および画像描画システムのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を用いて実施形態を説明する。
【００１２】
図１は、画像描画装置および画像描画システムの一実施形態を示す。
【００１３】
図１に示す描画システム１５０は、画像描画装置１００、制御装置４０および記憶装置９０を含む。また、画像描画装置１００は、切取部１０、生成部２０および描画部３０を含む。画像描画装置１００は、有線または無線を介して制御装置４０、フレームバッファ５０および記憶装置９０に接続される。そして、フレームバッファ５０は、有線または無線を介して出力装置６０に接続される。
【００１４】
例えば、制御装置４０は、プログラムを実行するプロセッサ等を含み、プロセッサがプログラムを実行することで、出力装置６０に表示させる画像に含まれる各図形を生成するための描画指示を生成し、生成した描画指示を画像描画装置１００に出力する。なお、描画指示は、３次元空間における立体物の頂点を示す情報、および、立体物の頂点を互いに接続する直線あるいは三角形等の基本図形（“プリミティブ”と称す）の集合体として立体物を描画するコマンドのリストであるディスプレイリストを含む。そして、立体物の頂点を互いに接続する直線あるいは三角形等の基本図形は、描画指示に基づいて描画される第１図形の一例である。
【００１５】
例えば、記憶装置９０は、レジスタ等であり、制御装置４０より描画指示された画像に含まれる各図形の頂点を示す情報およびディスプレイリスト等を格納する。なお、記憶装置９０は、画像描画装置１００に接続されたが、画像描画装置１００の内部に含まれてもよい。
【００１６】
例えば、フレームバッファ５０は、ＲＡＭ（Random Access Memory）等である。フレームバッファ５０は、画像描画装置１００においてレンダリング処理が行われる単位である単位領域ごとに、画像描画装置１００からレンダリング処理で得られた画像データを受け、受けた画像データを一時的に保持する。例えば、画像描画装置１００におけるレンダリング処理の単位がスキャンラインである場合に、フレームバッファ５０は、スキャンラインごとに画像データを受ける。一方、画像描画装置１００におけるレンダリング処理の単位がタイルである場合に、フレームバッファ５０は、タイルごとに画像データを受ける。そして、フレームバッファ５０は、画像描画装置１００から受けた画像データを出力装置６０に順次に出力する。
【００１７】
出力装置６０は、液晶等のディスプレイあるいはプリンタ等であり、フレームバッファ５０から受けた画素データに基づいて、スキャンラインまたはタイルごとに画像を出力する。
【００１８】
例えば、切取部１０は、制御装置４０から受けた画像の描画指示に含まれる個々のコマンドで示されるプリミティブから、単位領域ごとに、当該単位領域に含まれる部分の図形を切り取る。切取部１０は、プリミティブのそれぞれから単位領域ごとに切り取った図形を示す情報を、生成部２０に出力する。切取部１０の動作については、図２で説明する。
【００１９】
例えば、生成部２０は、単位領域ごとに切り取られた図形のそれぞれを更に分割することで新たなプリミティブを生成し、生成した新たなプリミティブのそれぞれを描画するコマンドを単位領域ごとに生成する。生成部２０は、単位領域ごとに生成した描画コマンドを順次に描画部３０に出力する。生成部２０の動作については、図４および図５で説明する。また、生成した新たなプリミティブは、切取部１０により切り取られた図形のそれぞれを分割することで得られる少なくとも１つの第２図形の一例である。
【００２０】
例えば、描画部３０は、単位領域ごとに生成された描画コマンドに基づいて、新たなプリミティブのそれぞれを描画することで、制御装置４０から受けた描画指示に含まれるコマンドで示される元のプリミティブを描画した場合と同等の画像を生成する。描画部３０の動作については、図６で説明する。
【００２１】
図２は、図１に示した切取部１０による図形の切り取り処理の例を示す。図２において、領域７０は、出力装置６０における画像の表示領域または印刷領域を示し、座標軸Ｘ及び座標軸Ｙは、それぞれ水平走査方向及び垂直走査方向を示す。また、図２に示した領域７０を破線で区切ることで分割された各領域ＳＣ１−ＳＣ６は、画像描画装置１００におけるレンダリング処理の単位の一例であるスキャンラインを示す。図２の例は、領域７０を水平走査方向（Ｘ軸方向）に６つに分割した場合を示す。例えば、記憶装置９０は、画像描画装置１００がラスタスキャンベースレンダリングで画像を描画する場合、スキャンラインＳＣ１−ＳＣ６の境界を示すＹ座標Ｙ１−Ｙ６を予め格納する。なお、領域７０は、水平走査方向（Ｘ軸方向）にＸ１の大きさを有し、垂直走査方向（Ｙ軸方向）にＹ６の大きさを有する。また、スキャンラインＳＣ１−ＳＣ６の各々は、垂直走査方向に互いに同じ幅を有し、Ｙ１−０＝Ｙ２−Ｙ１＝Ｙ３−Ｙ２＝Ｙ４−Ｙ３＝Ｙ５−Ｙ４＝Ｙ６−Ｙ５である。また、スキャンラインの数は６としたが、領域７０の大きさに応じて適宜決定されるのが望ましい。
【００２２】
図２（ａ）は、例えば、制御装置４０より受けた描画指示により描画される画像に含まれるプリミティブが、１つの三角形ＡＢＣの場合を示す。三角形ＡＢＣの頂点Ａ，Ｂ，Ｃは、スキャンラインＳＣ５，ＳＣ３，ＳＣ１にそれぞれ含まれる。
【００２３】
図２（ｂ）は、図１に示した切取部１０により、スキャンラインＳＣ１−ＳＣ６ごとに、スキャンラインＳＣ１−ＳＣ６のそれぞれに含まれる三角形ＡＢＣの一部を切り取った例を示す。すなわち、切取部１０は、スキャンラインＳＣ１において三角形ＡＢＣから三角形ＣＤＥを切り取り、スキャンラインＳＣ２において三角形ＡＢＣから四角形ＤＥＧＦを切り取り、スキャンラインＳＣ３において三角形ＡＢＣから五角形ＢＩＨＦＧを切り取る。また、切取部１０は、スキャンラインＳＣ４において三角形ＡＢＣから四角形ＨＩＫＪを切り取り、スキャンラインＳＣ５において三角形ＡＢＣから三角形ＡＪＫを切り取る。なお、切取部１０は、切り取り処理により新たに生じた頂点Ｄから頂点Ｋの各位置の座標を、各スキャンラインの水平走査方向の境界と三角形ＡＢＣの各辺ＡＢ，ＡＣ，ＢＣとの交点から求める。そして、切取部１０は、各スキャンラインで切り取った図形の各頂点を示す情報を、生成部２０に出力する。
【００２４】
図３は、図１に示した切取部１０により各スキャンラインで切り取られた図形の頂点を示す情報の例を示す。頂点テーブル１１０は、例えば、記憶装置９０に格納され、スキャンラインＳＣ１−ＳＣ６ごとに、切り取り前の頂点と頂点数、領域、消失の頂点、新規の頂点および切り取り後の頂点と頂点数の格納領域を有する。
【００２５】
切り取り前の頂点と頂点数の格納領域には、切り取り処理前の描画する画像に含まれるプリミティブが有する頂点と頂点数が切取部１０により格納される。例えば、図２（ａ）に示した三角形ＡＢＣに対する切り取り処理を行う場合、切取部１０は、三角形ＡＢＣの一部を含むスキャンラインＳＣ１−ＳＣ５の各々の切り取り前の頂点と頂点数の格納領域に、頂点Ａ，Ｂ，Ｃと頂点数を示す値３とを格納する。なお、スキャンラインＳＣ６には、三角形ＡＢＣが含まれていないため、スキャンラインＳＣ６の切り取り前の頂点と頂点数の格納領域は、頂点数０の値が格納される。
【００２６】
領域の格納領域には、スキャンラインＳＣ１−ＳＣ６の各々のＹ座標の範囲を示す情報が格納される。例えば、スキャンラインＳＣ１の領域の格納領域には、Ｙ座標が０からＹ１までの範囲を示す情報が格納され、スキャンラインＳＣ２の領域の格納領域には、Ｙ座標がＹ１からＹ２までの範囲を示す情報が格納される。また、スキャンラインＳＣ３の領域の格納領域には、Ｙ座標がＹ２からＹ３までの範囲を示す情報が格納され、スキャンラインＳＣ４の領域の格納領域には、Ｙ座標がＹ３からＹ４までの範囲を示す情報が格納される。スキャンラインＳＣ５の領域の格納領域には、Ｙ座標がＹ４からＹ５までの範囲を示す情報が格納され、スキャンラインＳＣ６の領域の格納領域には、Ｙ座標がＹ５からＹ６までの範囲を示す情報が格納される。
【００２７】
消失の頂点の格納領域には、切り取り前の頂点と頂点数の格納領域に格納された頂点のうち、切り取り処理によりスキャンラインに含まれなくなった頂点を示す情報が格納される。例えば、図２（ｂ）に示した三角形ＡＢＣのうち、スキャンラインＳＣ１に含まれる部分は、頂点Ｃを含み、頂点Ａ，Ｂを含まないため、スキャンラインＳＣ１の消失の頂点の格納領域には、頂点Ａ，Ｂが格納される。また、スキャンラインＳＣ２，ＳＣ４のそれぞれにおいて三角形ＡＢＣから切り取られる図形は、頂点Ａ，Ｂ，Ｃのいずれも含まないため、スキャンラインＳＣ２，４の消失の頂点の格納領域には、頂点Ａ，Ｂ，Ｃが格納される。スキャンラインＳＣ３において三角形ＡＢＣから切り取られる図形は、頂点Ｂを含み、頂点Ａ，Ｃを含まないことから、スキャンラインＳＣ３の消失の頂点の格納領域には、頂点Ａ，Ｃが格納される。また、スキャンラインＳＣ５において三角形ＡＢＣから切り取られる図形は、頂点Ａを含み、頂点Ｂ，Ｃを含まないことから、スキャンラインＳＣ５の消失の頂点の格納領域には、頂点Ｂ，Ｃが格納される。なお、スキャンラインＳＣ６の消失の頂点の格納領域は、空欄を示す“−”が格納される。
【００２８】
新規の頂点の格納領域には、切取部１０による切り取り処理により、各スキャンラインで新たに生じた頂点が格納される。例えば、図２（ｂ）に示した三角形ＡＢＣから、スキャンラインＳＣ１において、三角形ＣＤＥが切り取られた場合、スキャンラインＳＣ１の新規の頂点の格納領域には、頂点Ｄ，Ｅが格納される。また、スキャンラインＳＣ２において、三角形ＡＢＣから四角形ＤＥＧＦが切り取られた場合、スキャンラインＳＣ２の新規の頂点の格納領域には、頂点Ｄ，Ｅ，Ｆ，Ｇが格納される。また、スキャンラインＳＣ３において、三角形ＡＢＣから五角形ＢＩＨＦＧが切り取られた場合、スキャンラインＳＣ３の新規の頂点の格納領域には、頂点Ｆ，Ｇ，Ｈ，Ｉが格納される。また、スキャンラインＳＣ４において、三角形ＡＢＣから四角形ＨＩＪＫが切り取られた場合、スキャンラインＳＣ４の新規の頂点の格納領域には、頂点Ｈ，Ｉ，Ｊ，Ｋが格納される。スキャンラインＳＣ５において、三角形ＡＢＣから三角形ＡＪＫが切り取られた場合、スキャンラインＳＣ５の新規の頂点の格納領域には、頂点Ｊ，Ｋが格納される。なお、スキャンラインＳＣ６の新規の頂点の格納領域は、空欄を示す“−”が格納される。
【００２９】
切り取り後の頂点と頂点数の格納領域には、各スキャンラインにおける切り取り処理により切り取られた図形に含まれる頂点と頂点数とが切取部１０により格納される。例えば、図２（ｂ）に示した三角形ＡＢＣに対する切り取り処理が行われた場合、切取部１０は、スキャンラインＳＣ１の切り取り後の頂点と頂点数の格納領域に、切り取られた三角形ＣＤＥの頂点Ｃ，Ｄ，Ｅと頂点数を示す値３とを格納する。また、切取部１０は、スキャンラインＳＣ２の切り取り後の頂点と頂点数の格納領域に、図２（ｂ）に示した三角形ＡＢＣから切り取られた四角形ＤＥＧＦの頂点Ｄ，Ｅ，Ｆ，Ｇと頂点数を示す値４とを格納する。同様に、切取部１０は、スキャンラインＳＣ３の切り取り後の頂点と頂点数の格納領域に、図２（ｂ）に示した三角形ＡＢＣから切り取られた五角形ＢＩＨＦＧの頂点Ｂ，Ｆ，Ｇ，Ｈ，Ｉと頂点数を示す値５とを格納する。また、切取部１０は、スキャンラインＳＣ４の切り取り後の頂点と頂点数の格納領域に、図２（ｂ）に示した三角形ＡＢＣから切り取られた四角形ＨＩＫＪの頂点Ｈ，Ｉ，Ｊ，Ｋと頂点数を示す値４とを格納する。また、切取部１０は、スキャンラインＳＣ５の切り取り後の頂点と頂点数の格納領域に、図２（ｂ）に示した三角形ＡＢＣから切り取られた三角形ＡＪＫの頂点Ａ，Ｊ，Ｋと頂点数を示す値３とを格納する。スキャンラインＳＣ６の切り取り後の頂点と頂点数の格納領域には、頂点数が０の値が格納される。
【００３０】
例えば、生成部２０は、図３に示した頂点テーブル１１０に基づいて、各スキャンラインＳＣ１−ＳＣ６で切り取られた図形を分割することで少なくとも１つの新規のプリミティブを生成する。生成部２０は、例えば、頂点テーブル１１０に各スキャンラインＳＣ１−ＳＣ６に対応して格納された切取後の頂点の数に基づいて、各スキャンラインＳＣ１−ＳＣ６で切り取られた図形がさらに分割可能か否かを判定する。生成部２０は、各スキャンラインＳＣ１−ＳＣ６で切り取られた図形がさらに分割することが困難な図形、すなわち三角形または線分である場合に、切り取られた図形そのものを新規のプリミティブとする。一方、生成部２０は、各スキャンラインＳＣ１−ＳＣ６で切り取られた図形がさらに分割可能な図形、すなわち４以上の頂点を持つ多角形である場合に、切り取られた図形をさらに分割することで複数の新規のプリミティブを生成する。
【００３１】
図４は、図１に示した生成部２０による分割処理の例を示す。例えば、生成部２０は、頂点テーブル１１０におけるスキャンラインＳＣ１の切り取り後の頂点と頂点数の格納領域から、頂点Ｃ，Ｄ，Ｅと頂点数３とを読み出す。生成部２０は、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ１の図形がさらに分割することが困難な三角形であると判定し、三角形ＣＤＥをスキャンラインＳＣ１の新規のプリミティブとして保持する。また、生成部２０は、頂点テーブル１１０におけるスキャンラインＳＣ２の切り取り後の頂点と頂点数の格納領域から、頂点Ｄ，Ｅ，Ｆ，Ｇと頂点数４とを読み出す。生成部２０は、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ２の図形が四角形ＤＥＧＦであり、さらに分割することが可能であると判定する。そして、生成部２０は、四角形ＤＥＧＦを、例えば、頂点Ｄを基点にして三角形ＤＥＧと三角形ＤＧＦとに分割し、分割した２つの三角形ＤＥＧと三角形ＤＧＦとをスキャンラインＳＣ２の新規のプリミティブとして保持する。
【００３２】
また、生成部２０は、頂点テーブル１１０におけるスキャンラインＳＣ３の切り取り後の頂点と頂点数の格納領域から、頂点Ｂ，Ｆ，Ｇ，Ｈ，Ｉと頂点数５とを読み出す。生成部２０は、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ３の図形が五角形ＢＩＨＦＧであり、さらに分割することが可能であると判定する。そして、生成部２０は、五角形ＢＩＨＦＧを、例えば、頂点Ｆを基点にして三角形ＦＧＢ、三角形ＦＢＩ、三角形ＦＩＨに分割し、分割した３つの三角形ＦＧＢ、三角形ＦＢＩ、三角形ＦＩＨをスキャンラインＳＣ３の新規のプリミティブとして保持する。このように、生成部２０は、五角形ＢＩＨＦＧを頂点Ｆを共有する３つの三角形に分割することで、互いに重なり合うことなく、他の方法に比べて容易に、切り取られた図形を複数のプリミティブに分割できる。
【００３３】
また、生成部２０は、頂点テーブル１１０におけるスキャンラインＳＣ４の切り取り後の頂点と頂点数の格納領域から、頂点Ｈ，Ｉ，Ｊ，Ｋと頂点数４とを読み出す。生成部２０は、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ４の図形が四角形ＨＩＫＪであり、さらに分割することが可能であると判定する。そして、生成部２０は、四角形ＨＩＫＪを、例えば、頂点Ｈを基点にして三角形ＨＩＫと三角形ＨＫＪとの２つのプリミティブに分割し、分割した２つの三角形ＨＩＫと三角形ＨＫＪとをスキャンラインＳＣ４の新規のプリミティブとして保持する。また、生成部２０は、頂点テーブル１１０におけるスキャンラインＳＣ５の切り取り後の頂点と頂点数の格納領域から、頂点Ａ，Ｊ，Ｋと頂点数３とを読み出す。生成部２０は、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ５の図形がさらに分割することが困難な三角形と判定する。そして、生成部２０は、三角形ＡＪＫをスキャンラインＳＣ５の新規のプリミティブとして保持する。
【００３４】
例えば、生成部２０は、図３に示した頂点テーブル１１０において、スキャンラインごとに保持された各プリミティブを示す情報に基づいて、図４に示した新規のプリミティブの各々を描画するコマンドをスキャンラインごとに生成する。
【００３５】
図５は、図１に示した生成部２０により生成された描画のコマンド群８０の例を示す。例えば、コマンド群８０は、スキャンラインＳＣ１−ＳＣ６の各々において切り取られた図形に含まれる新規のプリミティブを描画するコマンドを含む。生成部２０は、例えば、スキャンラインＳＣ１におけるコマンドとして、コマンド群８０の１番目から４番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンド、三角形ＣＤＥの描画コマンド、および描画終了を示すフラグの情報を格納する。なお、設定系コマンドは、三角形ＡＢＣに含まれるプリミティブを描画する前処理として、出力装置６０の画面サイズ等の初期設定を行う。また、三角形ＣＤＥの描画コマンドは、頂点Ｃ，Ｄ，Ｅの座標および各頂点間を線分で結ぶベクタ形式のデータ等を含む新たに作成されたものである。
【００３６】
また、生成部２０は、スキャンラインＳＣ２のコマンドとして、コマンド群８０の５番目から９番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンド、三角形ＤＥＧと三角形ＤＧＦとの描画コマンド、および描画終了を示すフラグの情報を格納する。生成部２０は、スキャンラインＳＣ３のコマンドとして、コマンド群８０の１０番目から１５番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンド、三角形ＦＧＢ，三角形ＦＢＩ，三角形ＦＩＨの描画コマンド、描画終了を示すフラグの情報を格納する。また、生成部２０は、スキャンラインＳＣ４のコマンドとして、コマンド群８０の１６番目から２０番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンド、三角形ＨＩＫ，三角形ＨＫＪの描画コマンド、および描画終了を示すフラグの情報を格納する。また、生成部２０は、スキャンラインＳＣ５のコマンドとして、コマンド群８０の２１番目から２４番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンド、三角形ＡＪＫの描画コマンド、および描画終了を示すフラグの情報を格納する。例えば、生成部２０は、生成したコマンド群８０を記憶装置９０に格納する。
【００３７】
なお、コマンド群８０の６番目、１１番目、１７番目および２２番目の格納領域に格納されるスキャンラインＳＣ２−ＳＣ５の設定系コマンドは、２番目の格納領域に格納されたスキャンラインＳＣ１の設定系コマンドと同様である。よって、例えば、スキャンラインＳＣ２−ＳＣ５の設定系コマンドは省略されてもよい。また、各スキャンラインの描画終了を示すフラグは、各スキャンラインの描画開始を示すフラグで代用されてもよく、各スキャンラインの描画終了を示すフラグは省略されてもよい。
【００３８】
例えば、描画部３０は、受けたコマンド群８０に格納される各プリミティブの描画コマンドに基づいて、スキャンラインＳＣ１−ＳＣ５ごとに各プリミティブに対してラスタライズ処理を施し、各プリミティブを画素の集合体として表す画素データを生成する。描画部３０は、生成した各プリミティブの画素データをフレームバッファ５０に順次に出力する。なお、各プリミティブを画素の集合体として表す画素データは、各プリミティブの“ラスタ表現”と称される。
【００３９】
図６は、図２に示した三角形ＡＢＣのラスタ表現の例を示す。例えば、描画部３０は、スキャンラインＳＣ１において、新規のプリミティブである三角形ＣＤＥの描画コマンドを実行し、ラスタライズ処理により三角形ＣＤＥのラスタ表現を生成する。また、描画部３０は、スキャンラインＳＣ２において、新規のプリミティブである三角形ＤＥＧと三角形ＤＧＦの描画コマンドを実行し、各三角形に対するラスタライズ処理により四角形ＤＥＧＦのラスタ表現を生成する。また、描画部３０は、スキャンラインＳＣ３において、新規のプリミティブである三角形ＦＧＢ，三角形ＦＢＩ，三角形ＦＩＨの描画コマンドを実行し、各三角形に対するラスタライズ処理により五角形ＢＩＨＦＧのラスタ表現を生成する。また、描画部３０は、スキャンラインＳＣ４において、新規のプリミティブである三角形ＨＩＫと三角形ＨＫＪとの描画コマンドを実行し、各三角形に対するラスタライズ処理により四角形ＨＩＫＪのラスタ表現を生成する。また、描画部３０は、スキャンラインＳＣ５において、新規のプリミティブである三角形ＡＪＫの描画コマンドを実行し、ラスタライズ処理により三角形ＡＪＫのラスタ表現を生成する。これにより、描画部３０は、生成した各プリミティブのラスタ表現を合わせることで、三角形ＡＢＣのラスタ表現を生成することができる。
【００４０】
なお、描画部３０は、各プリミティブに対するラスタライズ処理において、元の三角形ＡＢＣの各辺ＡＢ，ＡＣ，ＢＣが通る画素を外して、各プリミティブのラスタ表現を生成する。したがって、図６に示すラスタ表現では、スキャンラインＳＣ１の三角形ＣＤＥに含まれる画素の上を、辺ＡＣおよび辺ＢＣのいずれかが通るため、三角形ＣＤＥのラスタ表現に含まれる画素がない。
【００４１】
図７は、図１に示した画像描画装置１００における画像描画処理の例を示す。図７に示したステップＳ１０、ステップＳ１１、ステップＳ１２の動作は、画像描画装置１００に含まれるプロセッサ等の制御部がプログラムを実行することにより実現される。すなわち、図７は、画像描画方法の一実施形態を示す。なお、図７に示す処理は、画像描画装置１００に搭載されるハードウェアにより実行されてもよい。この場合、図１に示した切取部１０、生成部２０および描画部３０は、画像描画装置１００内に配置される回路により実現される。
【００４２】
ステップＳ１０において、切取部１０は、図２において説明したように、制御装置４０から受けた画像の描画指示に基づいて、描画指示で示されるプリミティブのそれぞれから、各スキャンラインに含まれる部分の図形を切り取る。例えば、切取部１０は、各スキャンラインで切り取った図形の各頂点を示す情報を、図３に示した頂点テーブル１１０に格納する。そして、切取部１０は、頂点テーブル１１０を生成部２０に出力する。
【００４３】
次に、ステップＳ１１において、生成部２０は、図４および図５において説明したように、頂点テーブル１１０に基づいて、スキャンラインごとに切り取って得られた図形を、さらに分割することで少なくとも１つの新規のプリミティブを生成する。生成部２０は、スキャンラインごとに生成した新規のプリミティブのそれぞれを描画するコマンドを含むコマンド群８０を生成する。そして、生成部２０は、生成したコマンド群８０を描画部３０に出力する。
【００４４】
次に、ステップＳ１２において、描画部３０は、図６において説明したように、生成部２０より受けたコマンド群８０に基づいて、新規のプリミティブのそれぞれのラスタ表現である画素の集合体を生成することで画像を描画する。例えば、描画部３０は、受けたコマンド群８０に格納される各プリミティブの描画コマンドに基づいて、スキャンラインＳＣ１−ＳＣ５ごとに各プリミティブに対してラスタライズ処理を施し、各プリミティブのラスタ表現を生成する。そして、描画部３０は、生成した各プリミティブのラスタ表現をフレームバッファ５０に順次に出力する。
【００４５】
そして、画像描画装置１００は、画像描画処理を終了する。なお、図７の処理のフローは、制御装置４０から画像の描画指示を受ける度に実行される。
【００４６】
以上、この実施形態では、切取部１０は、受けた画像の描画指示に基づいて、描画する画像が含むプリミティブから各スキャンラインに含まれる部分の図形を切り取る。生成部２０は、スキャンラインごとに切り取った図形を新規のプリミティブで分割し、スキャンラインごとに分割した新規のプリミティブを描画するコマンドを含むコマンド群８０を生成する。描画部３０は、コマンド群８０に含まれた描画コマンドに基づいて、各スキャンラインにおいて生成された新規のプリミティブの各々に対してラスタライズ処理を行い、各プリミティブのラスタ表現を生成する。図６で説明したように、図１に示した描画部３０は、スキャンラインごとの分割で得られた新規のプリミティブの各々に対してラスタライズ処理する過程で、他のスキャンラインに含まれる新規のプリミティブをラスタライズすることはない。つまり、描画部３０が、各スキャンラインに含まれる新規のプリミティブのそれぞれをラスタライズする処理は、分割前の元の図形全体に対し１回のラスタライズ処理を施すことと同等である。すなわち、画像描画装置１００は、図形全体に対するラスタライズ処理をスキャンライン数と同じ回数に亘って繰り返すことなく、元の描画指示で示された図形全体のラスタ表現を生成できる。これにより、画像描画装置１００は、図形全体に対するラスタライズ処理をスキャンライン数と同じ回数の繰り返す場合に比べて、ラスタライズ処理の負荷を低減し、画像の描画処理の高速化を図ることができる。
【００４７】
なお、画像描画装置１００は、描画方式として、ラスタスキャンベースレンダリングを用いたが、タイルベースレンダリングの描画方式を用いてもよい。タイルレンダリングに基づく画像描画装置１００の動作については、図８から図１３で説明する。
【００４８】
なお、生成部２０は、図５に示したコマンド群８０に格納される各プリミティブの描画コマンドを、スキャンラインＳＣ１−ＳＣ６の順に格納したが、任意の順番でスキャンラインごとにプリミティブの描画コマンドを格納してもよい。
【００４９】
図８は、画像描画装置および画像描画システムの別実施形態を示す。図８に示す画像描画装置１００および画像描画システム１５０の各要素のうち、図１に示した画像描画装置１００および画像描画システム１５０の要素と同一または同様の機能を有するものについては、同一の符号を付し詳細な説明は省略する。
【００５０】
画像描画装置１００は、切取部１０ａ、生成部２０ａおよび描画部３０ａを含む。画像描画装置１００は、有線または無線を介して制御装置４０およびフレームバッファ５０に接続される。また、フレームバッファ５０は、有線または無線を介して出力装置６０に接続される。
【００５１】
例えば、切取部１０ａは、制御装置４０から受けた画像の描画指示に含まれる個々のコマンドで示されるプリミティブから、タイルベースレンダリングに応じた単位領域ごとに、当該単位領域に含まれる部分の図形を切り取る。切取部１０ａは、プリミティブのそれぞれから単位領域ごとに切り取った図形を示す情報を、生成部２０ａに出力する。切取部１０ａの動作については、図９から図１０で説明する。
【００５２】
例えば、生成部２０ａは、切取部１０ａにより各単位領域で切り取られた図形のそれぞれを更に分割することで新たなプリミティブを生成し、生成した新たなプリミティブのそれぞれを描画するコマンドを単位領域ごとに生成する。生成部２０ａは、単位領域ごとに生成した描画コマンドを順次に描画部３０ａに出力する。生成部２０ａの動作については、図１１および図１２で説明する。
【００５３】
例えば、描画部３０ａは、単位領域ごとに生成された描画コマンドに基づいて、新たなプリミティブのそれぞれを描画することで、制御装置４０から受けた描画指示に含まれるコマンドで示される元のプリミティブを描画した場合と同等の画像を生成する。例えば、描画部３０ａは、生成部２０ａより受けた描画コマンドに基づいて、単位領域ごとに各プリミティブに対してラスタライズ処理を施し、各プリミティブのラスタ表現を生成する。描画部３０ａは、生成した各プリミティブのラスタ表現をフレームバッファ５０に順次に出力する。
【００５４】
図９は、図８に示した切取部１０ａによる切り取り処理の例を示す。図９において、領域７０ａは、出力装置６０における画像の表示領域または印刷領域を示し、座標軸Ｘおよび座標軸Ｙは、それぞれ水平走査方向および垂直走査方向を示す。また、図９に示した領域７０ａを破線で区切ることで分割された各領域ＴＬ１−ＴＬ１２は、画像描画装置１００におけるレンダリング処理の単位の一例であるタイルを示す。図９の例は、領域７０ａを水平走査方向（Ｘ軸方向）に３つ、垂直走査方向（Ｙ軸方向）に４つに分割した場合を示す。なお、Ｘ１ａ＝Ｘ２ａ−Ｘ１ａ＝Ｘ３ａ−Ｘ２ａ＝Ｘ４ａ−Ｘ３ａであり、Ｙ１ａ＝Ｙ２ａ−Ｙ１ａ＝Ｙ３ａ−Ｙ２ａである。例えば、記憶装置９０は、画像描画装置１００がタイルスキャンベースレンダリングで画像を描画する場合、タイルＴＬ１−ＴＬ１２の境界を示すＸ座標Ｘ１ａ−Ｘ４ａおよびＹ座標Ｙ１ａ−Ｙ３ａを予め格納する。また、タイルの数は１２としたが、領域７０ａの大きさに応じて適宜決定されるのが望ましい。
【００５５】
図９（ａ）は、例えば、制御装置４０より受けた描画指示により描画される画像に含まれるプリミティブが、図２（ａ）と同様に、１つの三角形ＡＢＣの場合を示す。三角形ＡＢＣの頂点Ａ，Ｂ，Ｃは、タイルＴＬ１０，ＴＬ５，ＴＬ４にそれぞれ含まれる。
【００５６】
図９（ｂ）は、図８に示した切取部１０ａにより、タイルＴＬ１−ＴＬ１２ごとに、タイルＴＬ１−ＴＬ１２のそれぞれに含まれる三角形ＡＢＣの一部を切り取った例を示す。すなわち、切取部１０ａは、タイルＴＬ２において三角形ＡＢＣから三角形ＧＨＪを切り取り、タイルＴＬ３において三角形ＡＢＣから五角形ＤＥＨＧＦを切り取り、タイルＴＬ４において三角形ＡＢＣから三角形ＣＤＥを切り取る。また、切取部１０ａは、タイルＴＬ５において三角形ＡＢＣから三角形ＢＬＭを切り取り、タイルＴＬ６において三角形ＡＢＣから六角形ＧＪＬＭＫＩを切り取り、タイルＴＬ７において三角形ＡＢＣから三角形ＦＧＩを切り取り、タイルＴＬ１０において三角形ＡＢＣから三角形ＡＫＭを切り取る。なお、切取部１０ａは、切り取り処理により新たに生じた頂点Ｄから頂点Ｍの各位置の座標を、各タイルの水平および垂直走査方向の境界と三角形ＡＢＣの各辺ＡＢ，ＡＣ，ＢＣとの交点から求める。そして、切取部１０ａは、各タイルで切り取った図形の各頂点を示す情報を、生成部２０ａに出力する。
【００５７】
図１０は、図８に示した切取部１０ａにより各タイルで切り取られた図形の頂点を示す情報の例を示す。頂点テーブル１１０ａは、例えば、記憶装置９０に格納され、タイルＴＬ１−ＴＬ１２ごとに、切り取り前の頂点と頂点数、領域、消失の頂点、新規の頂点および切り取り後の頂点と頂点数の格納領域を有する。
【００５８】
切り取り前の頂点と頂点数の格納領域には、切り取り処理前の描画する画像に含まれるプリミティブが有する頂点と頂点数が切取部１０ａにより格納される。例えば、図９（ａ）に示した三角形ＡＢＣに対する切り取り処理を行う場合、切取部１０ａは、三角形ＡＢＣの一部を含むタイルＴＬ２−ＴＬ７，ＴＬ１０の各々の切り取り前の頂点と頂点数の格納領域に、頂点Ａ，Ｂ，Ｃと頂点数を示す３とを格納する。なお、タイルＴＬ１，ＴＬ８，ＴＬ９，ＴＬ１１，ＴＬ１２には、三角形ＡＢＣが含まれていないため、タイルＴＬ１，ＴＬ８，ＴＬ９，ＴＬ１１，ＴＬ１２の切り取り前の頂点と頂点数の格納領域は、頂点数０の値が格納される。
【００５９】
領域の格納領域には、タイルＴＬ１−ＴＬ１２の各々のＸ座標およびＹ座標の範囲を示す情報が格納される。例えば、タイルＴＬ１の領域の格納領域には、Ｘ座標が０からＸ１ａおよびＹ座標が０からＹ１ａまでの範囲を示す情報が格納され、タイルＴＬ２の領域の格納領域には、Ｘ座標がＸ１ａからＸ２ａおよびＹ座標が０からＹ１ａまでの範囲を示す情報が格納される。また、タイルＴＬ３の領域の格納領域には、Ｘ座標がＸ２ａからＸ３ａおよびＹ座標が０からＹ１ａまでの範囲を示す情報が格納され、タイルＴＬ４の領域の格納領域には、Ｘ座標がＸ３ａからＸ４ａおよびＹ座標が０からＹ１ａまでの範囲を示す情報が格納される。
【００６０】
また、タイルＴＬ５の領域の格納領域には、Ｘ座標が０からＸ１ａおよびＹ座標がＹ１ａからＹ２ａまでの範囲が格納され、タイルＴＬ６の領域の格納領域には、Ｘ座標がＸ１ａからＸ２ａおよびＹ座標がＹ１ａからＹ２ａまでの範囲が格納される。タイルＴＬ７の領域の格納領域には、Ｘ座標がＸ２ａからＸ３ａおよびＹ座標がＹ１ａからＹ２ａまでの範囲が格納され、タイルＴＬ８の領域の格納領域には、Ｘ座標がＸ３ａからＸ４ａおよびＹ座標がＹ１ａからＹ２ａまでの範囲が格納される。また、タイルＴＬ９の領域の格納領域には、Ｘ座標が０からＸ１ａおよびＹ座標がＹ２ａからＹ３ａまでの範囲が格納され、タイルＴＬ１０の領域の格納領域には、Ｘ座標がＸ１ａからＸ２ａおよびＹ座標がＹ２ａからＹ３ａまでの範囲が格納される。また、タイルＴＬ１１の領域の格納領域には、Ｘ座標がＸ２ａからＸ３ａおよびＹ座標がＹ２ａからＹ３ａまでの範囲が格納され、タイルＴＬ１２の領域の格納領域には、Ｘ座標がＸ３ａからＸ４ａおよびＹ座標がＹ２ａからＹ３ａまでの範囲が格納される。
【００６１】
消失の頂点の格納領域には、切り取り前の頂点と頂点数の格納領域に格納された頂点のうち、切り取り処理によりタイルに含まれなくなった頂点を示す情報が格納される。例えば、図９（ｂ）に示した三角形ＡＢＣのうち、タイルＴＬ２，ＴＬ３，ＴＬ６，ＴＬ７のそれぞれに含まれる部分は、頂点Ａ，Ｂ，Ｃのいずれも含まないため、各タイルの消失の頂点の格納領域には、頂点Ａ，Ｂ，Ｃがそれぞれ格納される。また、タイルＴＬ４において三角形ＡＢＣから切り取られる図形は、頂点Ｃを含み、頂点Ａ，Ｂを含まないため、タイルＴＬ４の消失の頂点の格納領域には、頂点Ａ，Ｂが格納される。タイルＴＬ５において三角形ＡＢＣから切り取られる図形は、頂点Ｂを含み、頂点Ａ，Ｃを含まないことから、タイルＴＬ５の消失の頂点の格納領域には、頂点Ａ，Ｃが格納される。また、タイルＴＬ１０において三角形ＡＢＣから切り取られる図形は、頂点Ａを含み、頂点Ｂ，Ｃを含まないことから、タイルＴＬ１０の消失の頂点の格納領域には、頂点Ｂ，Ｃが格納される。なお、タイルＴＬ１，ＴＬ８，ＴＬ９，ＴＬ１１，ＴＬ１２の消失の頂点の格納領域は、空欄を示す“−”が格納される。
【００６２】
新規の頂点の格納領域には、切取部１０ａによる切り取り処理により、各タイルで新たに生じた頂点が格納される。例えば、図９（ｂ）に示した三角形ＡＢＣから、タイルＴＬ２において、三角形ＧＨＪが切り取られた場合、タイルＴＬ２の新規の頂点の格納領域には、頂点Ｇ，Ｈ，Ｊが格納される。また、タイルＴＬ３において、三角形ＡＢＣから五角形ＤＥＨＧＦが切り取られた場合、タイルＴＬ３の新規の頂点の格納領域には、頂点Ｄ，Ｅ，Ｆ，Ｇ，Ｈが格納される。また、タイルＴＬ４において、三角形ＡＢＣから三角形ＣＤＥが切り取られた場合、タイルＴＬ４の新規の頂点の格納領域には、頂点Ｄ，Ｅが格納される。
【００６３】
また、タイルＴＬ５において、三角形ＡＢＣから三角形ＢＬＭが切り取られた場合、タイルＴＬ５の新規の頂点の格納領域には、頂点Ｌ，Ｍが格納される。また、タイルＴＬ６において、三角形ＡＢＣから六角形ＧＪＬＭＫＩが切り取られた場合、タイルＴＬ６の新規の頂点の格納領域には、頂点Ｇ，Ｉ，Ｊ，Ｋ，Ｌ，Ｍが格納される。また、タイルＴＬ７において、三角形ＡＢＣから三角形ＦＧＩが切り取られた場合、タイルＴＬ７の新規の頂点の格納領域には、頂点Ｆ，Ｇ，Ｉが格納される。また、タイルＴＬ１０において、三角形ＡＢＣから三角形ＡＫＭが切り取られた場合、タイルＴＬ１０の新規の頂点の格納領域には、頂点Ｋ，Ｍが格納される。なお、タイルＴＬ１，ＴＬ８，ＴＬ９，ＴＬ１１，ＴＬ１２の新規の頂点の格納領域は、空欄を示す“−”がそれぞれ格納される。
【００６４】
切り取り後の頂点と頂点数の格納領域には、各タイルにおける切り取り処理により切り取られた図形に含まれる頂点と頂点数とが切取部１０ａにより格納される。例えば、図２（ｂ）に示した三角形ＡＢＣに対する切り取り処理が行われた場合、切取部１０ａは、タイルＴＬ２の切り取り後の頂点と頂点数の格納領域に、切り取られた三角形ＧＨＪの頂点Ｇ，Ｈ，Ｊと頂点数を示す値３とを格納する。また、切取部１０ａは、タイルＴＬ３の切り取り後の頂点と頂点数の格納領域に、切り取られた五角形ＤＥＨＧＦの頂点Ｄ，Ｅ，Ｆ，Ｇ，Ｈと頂点数を示す値５とを格納する。また、切取部１０ａは、タイルＴＬ４の切り取り後の頂点と頂点数の格納領域に、切り取られた三角形ＣＤＥの頂点Ｃ，Ｄ，Ｅと頂点数を示す値３とを格納する。
【００６５】
また、切取部１０ａは、タイルＴＬ５の切り取り後の頂点と頂点数の格納領域に、切り取られた三角形ＢＬＭの頂点Ｂ，Ｌ，Ｍと頂点数を示す値３とを格納する。また、切取部１０ａは、タイルＴＬ６の切り取り後の頂点と頂点数の格納領域に、切り取られた六角形ＧＪＬＭＫＩの頂点Ｇ，Ｉ，Ｊ，Ｋ，Ｌ，Ｍと頂点数を示す値６とを格納する。切取部１０ａは、タイルＴＬ７の切り取り後の頂点と頂点数の格納領域に、切り取られた三角形ＦＧＩの頂点Ｆ，Ｇ，Ｉと頂点数を示す値３とを格納する。また、切取部１０ａは、タイルＴＬ１０の切り取り後の頂点と頂点数の格納領域に、切り取られた三角形ＡＫＭの頂点Ａ，Ｋ，Ｍと頂点数を示す値３とを格納する。なお、タイルＴＬ１，ＴＬ８，ＴＬ９，ＴＬ１１，ＴＬ１２の切り取り後の頂点と頂点数の格納領域には、頂点数が０の値がそれぞれ格納される。
【００６６】
例えば、生成部２０ａは、図１０に示した頂点テーブル１１０ａに基づいて、各タイルＴＬ１−ＴＬ１２で切り取られた図形を分割することで少なくとも１つの新規のプリミティブを生成する。生成部２０ａは、例えば、頂点テーブル１１０ａに各タイルＴＬ１−ＴＬ１２に対応して格納された切取後の頂点の数に基づいて、各タイルＴＬ１−ＴＬ１２で切り取られた図形がさらに分割可能か否かを判定する。生成部２０ａは、各タイルＴＬ１−ＴＬ１２で切り取られた図形がさらに分割することが困難な図形、すなわち三角形または線分である場合に、切り取られた図形そのものを新規のプリミティブとする。一方、生成部２０ａは、各タイルＴＬ１−ＴＬ１２で切り取られた図形がさらに分割可能な図形、すなわち４以上の頂点を持つ多角形である場合に、切り取られた図形をさらに分割することで複数の新規のプリミティブを生成する。
【００６７】
図１１は、図８に示した生成部２０ａによる分割処理の例を示す。例えば、生成部２０ａは、図１０に示した頂点テーブル１１０ａにおけるタイルＴＬ２の切り取り後の頂点と頂点数の格納領域から、頂点Ｇ，Ｈ，Ｊと頂点数３とを読み出す。生成部２０ａは、読み出した頂点の位置と頂点数とから、タイルＴＬ２の図形がさらに分割することが困難な三角形であると判定し、三角形ＧＨＪをタイルＴＬ２の新規のプリミティブとして保持する。また、生成部２０ａは、頂点テーブル１１０ａにおけるタイルＴＬ３の切り取り後の頂点と頂点数の格納領域から、頂点Ｄ，Ｅ，Ｆ，Ｇ，Ｈと頂点数５とを読み出す。生成部２０ａは、読み出した頂点の位置と頂点数とから、タイルＴＬ３の図形が五角形ＤＥＨＧＦであり、さらに分割することが可能であると判定する。そして、生成部２０ａは、五角形ＤＥＨＧＦを、例えば、頂点Ｄを基点にして三角形ＤＥＨ、三角形ＤＨＧ、三角形ＤＧＦに分割し、分割した３つの三角形ＤＥＨ、三角形ＤＨＧ、三角形ＤＧＦをタイルＴＬ３の新規のプリミティブとして保持する。
【００６８】
また、生成部２０ａは、頂点テーブル１１０ａにおけるタイルＴＬ４の切り取り後の頂点と頂点数の格納領域から、頂点Ｃ，Ｄ，Ｅと頂点数３とを読み出す。生成部２０ａは、読み出した頂点の位置と頂点数とから、タイルＴＬ４の図形がさらに分割することが困難な三角形であると判定し、三角形ＣＤＥをタイルＴＬ４の新規のプリミティブとして保持する。また、生成部２０ａは、頂点テーブル１１０ａにおけるタイルＴＬ５の切り取り後の頂点と頂点数の格納領域から、頂点Ｂ，Ｌ，Ｍと頂点数３とを読み出す。生成部２０ａは、読み出した頂点の位置と頂点数とから、タイルＴＬ５の図形がさらに分割することが困難な三角形であると判定し、三角形ＢＬＭをタイルＴＬ５の新規のプリミティブとして保持する。
【００６９】
また、生成部２０ａは、頂点テーブル１１０ａにおけるタイルＴＬ６の切り取り後の頂点と頂点数の格納領域から、頂点Ｇ，Ｉ，Ｊ，Ｋ，Ｌ，Ｍと頂点数６とを読み出す。生成部２０ａは、読み出した頂点の位置と頂点数とから、タイルＴＬ６の図形が六角形ＧＪＬＭＫＩであり、さらに分割することが可能であると判定する。そして、生成部２０ａは、六角形ＧＪＬＭＫＩを、例えば、頂点Ｉを基点にして三角形ＩＧＪ、三角形ＩＪＬ、三角形ＩＬＭ、三角形ＩＭＫに分割し、分割した４つの三角形をタイルＴＬ６の新規のプリミティブとして保持する。また、生成部２０ａは、頂点テーブル１１０ａにおけるタイルＴＬ７の切り取り後の頂点と頂点数の格納領域から、頂点Ｇ，Ｉ，Ｆと頂点数３とを読み出す。生成部２０ａは、読み出した頂点の位置と頂点数とから、タイルＴＬ７の図形がさらに分割することが困難な三角形であると判定し、三角形ＧＩＦをタイルＴＬ７の新規のプリミティブとして保持する。また、生成部２０ａは、頂点テーブル１１０ａにおけるタイルＴＬ１０の切り取り後の頂点と頂点数の格納領域から、頂点Ａ，Ｋ，Ｍと頂点数３とを読み出す。生成部２０ａは、読み出した頂点の位置と頂点数とから、タイルＴＬ１０の図形がさらに分割することが困難な三角形であると判定し、三角形ＡＫＭをタイルＴＬ１０の新規のプリミティブとして保持する。
【００７０】
例えば、生成部２０ａは、図１０に示した頂点テーブル１１０ａにおいて、タイルごとに保持された各プリミティブを示す情報に基づいて、図１１に示した新規のプリミティブの各々を描画するコマンドをタイルごとに生成する。
【００７１】
図１２は、図８に示した生成部２０ａにより生成された描画のコマンド群８０ａの例を示す。例えば、コマンド群８０ａは、タイルＴＬ１−ＴＬ１２の各々において切り取られた図形に含まれる新規のプリミティブを描画するコマンドを含む。生成部２０ａは、例えば、タイルＴＬ２におけるコマンドとして、コマンド群８０ａの１番目から４番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンド、三角形ＧＨＪの描画コマンド、および描画終了を示すフラグの情報を格納する。なお、設定系コマンドは、図５に示したものと同様である。
【００７２】
また、生成部２０ａは、タイルＴＬ３でのコマンドとして、コマンド群８０ａの５番目から１０番目の各格納領域に、描画開始を示すフラグ、設定系コマンド、三角形ＤＥＨ，三角形ＤＨＧ，三角形ＤＧＦの描画コマンド、描画終了を示すフラグを格納する。生成部２０ａは、タイルＴＬ４でのコマンドとして、コマンド群８０ａの１１番目から１４番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンド、三角形ＣＤＥの描画コマンド、および描画終了を示すフラグの情報を格納する。
【００７３】
また、生成部２０ａは、タイルＴＬ５でのコマンドとして、コマンド群８０ａの１５番目から１８番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンド、三角形ＢＬＭの描画コマンド、および描画終了を示すフラグの情報を格納する。また、生成部２０ａは、タイルＴＬ６でのコマンドとして、コマンド群８０ａの１９番目から２５番目の各格納領域に、描画開始を示すフラグ、設定系コマンド、三角形ＩＧＪ，ＩＪＬ，ＩＬＭ，ＩＭＫの描画コマンド、描画終了を示すフラグを格納する。また、生成部２０ａは、タイルＴＬ７でのコマンドとして、コマンド群８０ａの２６番目から２９番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンド、三角形ＦＧＩの描画コマンド、および描画終了を示すフラグの情報を格納する。また、生成部２０ａは、タイルＴＬ１０でのコマンドとして、コマンド群８０ａの３０番目から３３番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンド、三角形ＡＫＭの描画コマンド、および描画終了を示すフラグの情報を格納する。例えば、生成部２０ａは、生成したコマンド群８０ａを記憶装置９０に格納する。
【００７４】
なお、コマンド群８０ａの６番目、１２番目、１６番目、２０番目、２７番目および３１番目の格納領域に格納されるタイルＴＬ３−ＴＬ７，ＴＬ１０の設定系コマンドは、２番目の格納領域に格納されたタイルＴＬ２の設定系コマンドと同様である。よって、例えば、タイルＴＬ３−ＴＬ７，ＴＬ１０の設定系コマンドは省略されてもよい。また、各タイルの描画終了を示すフラグは、各タイルの描画開始を示すフラグで代用されてもよく、各タイルの描画終了を示すフラグは省略されてもよい。
【００７５】
図１３は、図８に示した画像描画装置１００における画像描画処理の例を示す。図１３に示したステップＳ２０、ステップＳ２１、ステップＳ２２の動作は、画像描画装置１００に含まれるプロセッサ等の制御部がプログラムを実行することにより実現される。すなわち、図１３は、画像描画方法の別実施形態を示す。なお、図１３に示す処理は、画像描画装置１００に搭載されるハードウェアにより実行されてもよい。この場合、図８に示した切取部１０ａ、生成部２０ａおよび描画部３０ａは、画像描画装置１００内に配置される回路により実現される。
【００７６】
ステップＳ２０において、切取部１０ａは、図９において説明したように、制御装置４０から受けた画像の描画指示に基づいて、描画指示で示されるプリミティブのそれぞれから、各タイルに含まれる部分の図形を切り取る。例えば、切取部１０ａは、各タイルで切り取った図形の各頂点を示す情報を、図１０に示した頂点テーブル１１０ａに格納する。そして、切取部１０ａは、頂点テーブル１１０ａを生成部２０ａに出力する。
【００７７】
次に、ステップＳ２１において、生成部２０ａは、図１１および図１２において説明したように、頂点テーブル１１０ａに基づいて、タイルごとに切り取って得られた図形を、さらに分割することで少なくとも１つの新規のプリミティブを生成する。生成部２０ａは、タイルごとに生成した新規のプリミティブのそれぞれを描画するコマンドを含むコマンド群８０ａを生成する。そして、生成部２０ａは、生成したコマンド群８０ａを描画部３０ａに出力する。
【００７８】
次に、ステップＳ２２において、描画部３０ａは、図８において説明したように、生成部２０ａより受けたコマンド群８０ａに基づいて、新規のプリミティブのそれぞれのラスタ表現である画素の集合体を生成することで画像を描画する。例えば、描画部３０ａは、受けたコマンド群８０ａに格納される各プリミティブの描画コマンドに基づいて、タイルＴＬ１−ＴＬ１２ごとに各プリミティブに対してラスタライズ処理を施し、各プリミティブのラスタ表現を生成する。そして、描画部３０ａは、生成した各プリミティブのラスタ表現をフレームバッファ５０に順次に出力する。
【００７９】
そして、画像描画装置１００は、画像描画処理を終了する。なお、図１３の処理のフローは、制御装置４０から画像の描画指示を受ける度に実行される。
【００８０】
以上、この実施形態では、切取部１０ａは、受けた画像の描画指示に基づいて、描画する画像が含むプリミティブから各タイルに含まれる部分の図形を切り取る。生成部２０ａは、タイルごとに切り取った図形を新規のプリミティブで分割し、タイルごとに分割した新規のプリミティブを描画するコマンドを含むコマンド群８０ａを生成する。描画部３０ａは、コマンド群８０ａに含まれた描画コマンドに基づいて、各タイルにおいて生成された新規のプリミティブの各々に対してラスタライズ処理を行い、各プリミティブのラスタ表現を生成する。描画部３０ａは、タイルごとの分割で得られた新規のプリミティブの各々に対してラスタライズ処理する過程で、他のタイルに含まれる新規のプリミティブをラスタライズすることはない。つまり、描画部３０ａが、各タイルに含まれる新規のプリミティブのそれぞれをラスタライズする処理は、分割前の元の図形全体に対し１回のラスタライズ処理を施すことと同等である。すなわち、画像描画装置１００は、図形全体に対するラスタライズ処理をタイル数と同じ回数に亘って繰り返すことなく、元の描画指示で示された図形全体のラスタ表現を生成できる。これにより、画像描画装置１００は、図形全体に対するラスタライズ処理をタイル数と同じ回数の繰り返す場合に比べて、ラスタライズ処理の負荷を低減し、画像の描画処理の高速化を図ることができる。
【００８１】
なお、生成部２０ａは、図１３に示したコマンド群８０ａに格納される各プリミティブの描画コマンドを、タイルＴＬ１−ＴＬ１２の順に格納したが、任意の順番でタイルごとにプリミティブの描画コマンドを格納してもよい。
【００８２】
図１４は、画像描画装置および画像描画システムの別実施形態を示す。図１４に示す画像描画装置１００および画像描画システム１５０の各要素のうち、図１に示した画像描画装置１００および画像描画システム１５０の要素と同一または同様の機能を有するものについては、同一の符号を付し詳細な説明は省略する。
【００８３】
画像描画装置１００は、前処理部１５、切取部１０ｂ、生成部２０ｂおよび描画部３０ｂを含む。画像描画装置１００は、有線または無線を介して制御装置４０、フレームバッファ５０および記憶装置９０ａに接続される。また、フレームバッファ５０は、有線または無線を介して出力装置６０に接続される。
【００８４】
例えば、記憶装置９０ａは、レジスタ等であり、制御装置４０より描画指示された画像に含まれる各図形の頂点を示す情報とディスプレイリストとともに、画像描画装置１００による処理の途中経過を示すデータ等を格納する。また、記憶装置９０ａは、例えば、画像描画装置１００がラスタスキャンベースレンダリングで画像を描画する場合、図２（ａ）に示したスキャンラインＳＣ１−ＳＣ６の境界を示すＹ座標Ｙ１−Ｙ６を予め格納する。なお、記憶装置９０ａは、画像描画装置１００の外部に配置されたが、画像描画装置１００の内部に配置されてもよい。
【００８５】
例えば、前処理部１５は、制御装置４０より受けた描画指示に含まれる３次元空間の立体物の頂点を示す情報およびディスプレイリストに基づいて、描画する立体物に対して前処理を行う。前処理部１５は、例えば、前処理として、立体物に対し出力装置６０の表示領域からはみ出る部分を切り取るViewVolumeClip処理を行い、ViewVolumeClip処理された立体物を２次元の図形に変換する変換処理を行う。そして、前処理部１５は、前処理した図形の頂点を示す情報、および前処理した図形を描画するディスプレイリストを記憶装置９０ａの予め割り当てられた格納領域に格納する。そして、前処理部１５は、切取部１０ｂに切り取り処理の開始を示す信号を出力する。
【００８６】
例えば、切取部１０ｂは、解析部１１およびクリッピング部１２を含む。切取部１０ｂは、前処理部１５より切り取り処理の開始を示す信号を受けると、前処理された図形の頂点を示す情報とディスプレイリスト、およびスキャンラインＳＣ１−ＳＣ６の境界を示すＹ座標Ｙ１−Ｙ６を記憶装置９０ａより読み出す。
【００８７】
例えば、解析部１１は、読み出した頂点を示す情報とスキャンラインＳＣ１−ＳＣ６の境界のＹ座標Ｙ１−Ｙ６とに基づき、前処理された図形に含まれる各プリミティブにおいて少なくとも一部を含むスキャンラインを特定する。解析部１１は、特定した各プリミティブを含むスキャンラインを示す情報を記憶装置９０ａに格納する。そして、解析部１１は、クリッピング部１２に処理の開始を示す信号を出力する。解析部１１の動作については、図１５から図１７で説明する。
【００８８】
例えば、クリッピング部１２は、解析部１１より処理の開始を示す信号を受信すると、解析部１１により特定した各プリミティブを含むスキャンラインを示す情報を記憶装置９０ａから読み出す。クリッピング部１２は、例えば、読み出した情報に基づいて、前処理された図形に含まれる各プリミティブから、解析部１１により特定されたスキャンラインのそれぞれに含まれる部分の図形を切り取る。クリッピング部１２は、各プリミティブから切り取った図形を示す情報を生成し、生成した情報を記憶装置９０ａに格納する。そして、切取部１０ｂは、生成部２０ｂに生成処理の開始を示す信号を出力する。クリッピング部１２の動作については、図１８および図１９で説明する。
【００８９】
例えば、生成部２０ｂは、切取部１０ｂより生成処理の開始を示す信号を受けると、各スキャンラインＳＣ１−ＳＣ６でクリッピングされた図形を示す情報を記憶装置９０ａから読み出す。生成部２０ｂは、読み出した情報に基づいて、スキャンラインごとにクリッピングされた各図形をさらに分割することで新たなプリミティブを生成する。生成部２０ｂは、スキャンラインごとに生成した新たなプリミティブそれぞれを描画するコマンドを生成する。生成部２０ｂは、各スキャンラインで生成した描画コマンドを記憶装置９０ａに格納するとともに、描画部３０ｂに描画処理の開始を指示する信号を出力する。生成部２０ｂの動作については、図２０および図２１で説明する。
【００９０】
例えば、描画部３０ｂは、生成部２０ｂより描画処理の開始を指示する信号を受けると、生成部２０ｂより生成された描画のコマンドを記憶装置９０ａより読み出す。描画部３０ｂは、読み出したコマンドに基づいて、スキャンラインＳＣ１−ＳＣ６ごとに各プリミティブに対してラスタライズ処理を施し、各プリミティブを画素の集合体として表したラスタ表現を生成する。描画部３０ｂは、生成した各プリミティブのラスタ表現をフレームバッファ５０に順次に出力する。
【００９１】
図１５は、図１４に示した前処理部１５により前処理された図形の例を示す。図１５の例は、制御装置４０より受けた描画指示に基づいて、前処理部１５における前処理により、２つの三角形Ａ１Ｂ１Ｃ１と三角形Ａ２Ｂ２Ｃ２とを含む２次元の図形が生成された場合を示す。なお、図１５に示した２つの三角形Ａ１Ｂ１Ｃ１および三角形Ａ２Ｂ２Ｃ２は、前処理部１５における前処理で生成される２次元のプリミティブの一例であり、図１５の例では、三角形Ａ２Ｂ２Ｃ２は、三角形Ａ１Ｂ１Ｃ１の上に重なるように配置される。また、三角形Ａ１Ｂ１Ｃ１の頂点Ａ１，Ｂ１，Ｃ１は、スキャンラインＳＣ５，ＳＣ３，ＳＣ１の領域にそれぞれ含まれ、三角形Ａ２Ｂ２Ｃ２の頂点Ａ２，Ｂ２，Ｃ２は、スキャンラインＳＣ６，ＳＣ４，ＳＣ２の領域にそれぞれ含まれる。
【００９２】
例えば、解析部１１は、記憶装置９０ａより読み出したスキャンラインＳＣ１−ＳＣ６の境界を示すＹ座標Ｙ１−Ｙ６と図形の頂点を示す情報とを用い、各スキャンラインの境界と、前処理された図形に含まれる各プリミティブにおいて最小および最大のＹ座標を示す頂点とを比較する。解析部１１は、比較の結果に基づき、スキャンラインとプリミティブとの位置関係を判定し、各プリミティブについて少なくとも一部を含むスキャンラインを特定する。
【００９３】
図１６は、スキャンラインとプリミティブとの位置関係の例を示す。２つの破線は、スキャンラインの境界を示し、ＹＬ，ＹＨはスキャンラインの境界のＹ座標を示す。また、三角形ＴＡ１，ＴＡ２は、（前処理された図形に含まれる）プリミティブの例を示し、Ｙｍｉｎ，Ｙｍａｘは、各三角形ＴＡ１，ＴＡ２において最小および最大のＹ座標を示す頂点を示す。なお、境界のＹ座標ＹＬ，ＹＨは、スキャンラインＳＣ１の場合、０とＹ１とであり、スキャンラインＳＣ２の場合、Ｙ１とＹ２とであり、スキャンラインＳＣ３の場合、Ｙ２とＹ３とであり、スキャンラインＳＣ４の場合、Ｙ３とＹ４とである。また、境界のＹ座標ＹＬ，ＹＨは、スキャンラインＳＣ５の場合、Ｙ４とＹ５とであり、スキャンラインＳＣ６の場合、Ｙ５とＹ６とである。また、Ｙ座標Ｙｍｉｎ，Ｙｍａｘを示す頂点は、例えば、プリミティブが図１５に示した三角形Ａ１Ｂ１Ｃ１の場合、頂点Ｃ１と頂点Ａ１とであり、プリミティブが図１５に示した三角形Ａ２Ｂ２Ｃ２の場合、頂点Ｃ２と頂点Ａ２とである。
【００９４】
図１６（ａ）は、三角形ＴＡ１においてＹ座標Ｙｍｉｎを示す頂点が、スキャンラインのＹ座標ＹＨの境界よりＹ軸方向の上側に位置する場合を示す。図１６（ｂ）は、三角形ＴＡ１がスキャンラインのＹ座標ＹＨの境界で交差する場合と、三角形ＴＡ２がスキャンラインのＹ座標ＹＬとＹ座標ＹＨとの境界の間に含まれる場合とを示す。図１６（ｃ）は、三角形ＴＡ１においてＹ座標Ｙｍａｘを示す頂点が、スキャンラインのＹ座標ＹＬの境界よりＹ軸方向の下側に位置する場合を示す。図１６（ｄ）は、三角形ＴＡ１がスキャンラインの２つの境界で交差する場合と、三角形ＴＡ２がスキャンラインのＹ座標ＹＬの境界で交差する場合とを示す。そして、解析部１１は、各スキャンラインと、各プリミティブにおける最小および最大のＹ座標を示す頂点との比較から、図１６（ａ）から図１６（ｄ）に示した位置関係のいずれかを判定し、各プリミティブがどのスキャンラインに含まれるかを特定する。
【００９５】
図１７は、図１４に示した解析部１１による判定処理の例を示す。例えば、テーブル１２０は、プリミティブが図１５に示した三角形Ａ１Ｂ１Ｃ１および三角形Ａ２Ｂ２Ｃ２の場合に、解析部１１による各スキャンラインとの位置関係の判定結果を示す判定の格納領域を有する。解析部１１は、テーブル１２０を記憶装置９０ａに予め割り当てられた格納領域に格納する。
【００９６】
例えば、スキャンラインとプリミティブとが図１６（ａ）または図１６（ｃ）に示した位置関係、すなわちプリミティブが比較するスキャンラインに含まれない場合に、解析部１１は、判定の格納領域に値０を格納する。例えば、図１５に示した三角形Ａ１Ｂ１Ｃ１とスキャンラインＳＣ６、および三角形Ａ２Ｂ２Ｃ２とスキャンラインＳＣ１とが、図１６（ａ）および図１６（ｃ）に示した位置関係にあり、解析部１１は、それぞれの判定の格納領域に値０を格納する。
【００９７】
また、スキャンラインとプリミティブとが図１６（ｂ）に示した位置関係、すなわち、少なくともプリミティブの最小のＹ座標Ｙｍｉｎを示す頂点がスキャンラインのＹ座標ＹＬ，ＹＨの境界の間に含まれる場合、解析部１１は、判定の格納領域に値１を格納する。例えば、図１５に示した三角形Ａ１Ｂ１Ｃ１とスキャンラインＳＣ１、および三角形Ａ２Ｂ２Ｃ２とスキャンラインＳＣ２とが、図１６（ｂ）に示した位置関係にあり、解析部１１は、それぞれの判定の格納領域に値１を格納する。
【００９８】
また、スキャンラインとプリミティブとが図１６（ｄ）に示した位置関係、すなわち、プリミティブが少なくともスキャンラインのＹ座標ＹＬの境界で交差する場合、解析部１１は、判定の格納領域に値２を格納する。例えば、図１５に示した三角形Ａ１Ｂ１Ｃ１とスキャンラインＳＣ２−ＳＣ５、および三角形Ａ２Ｂ２Ｃ２とスキャンラインＳＣ３−ＳＣ６とが、図１６（ｄ）に示した位置関係にあり、解析部１１は、それぞれの判定の格納領域に値２を格納する。そして、解析部１１は、テーブル１２０の判定の格納領域に格納された値が１または２が格納されたスキャンラインに、プリミティブが含まれると特定する。例えば、解析部１１は、図１５に示した三角形Ａ１Ｂ１Ｃ１を含むスキャンラインを、判定の格納領域の値が１または２のスキャンラインＳＣ１−ＳＣ５であると特定する。また、解析部１１は、図１５に示した三角形Ａ２Ｂ２Ｃ２を含むスキャンラインを、判定の格納領域の値が１または２のスキャンラインＳＣ２−ＳＣ６であると特定する。
【００９９】
例えば、クリッピング部１２は、図１７に示したテーブル１２０における判定の格納領域に格納された値に基づいて、各プリミティブから、特定されたスキャンラインごとに含まれる部分の図形をクリッピングする。例えば、クリッピング部１２は、図１７に示したテーブル１２０の判定の格納領域の値が１の場合、図１６（ｂ）に示した三角形ＴＡ２のように、プリミティブが１つのスキャンライン内に収まっているか否かを判定する。そこで、クリッピング部１２は、図１７に示したテーブル１２０の判定の格納領域の値が１である三角形Ａ１Ｂ１Ｃ１のスキャンラインＳＣ１の上側の境界で隣接するスキャンラインＳＣ２における判定の格納領域の値が０か否かを判定する。図１７に示すように、三角形Ａ１Ｂ１Ｃ１のスキャンラインＳＣ２における判定の格納領域の値が２であることから、クリッピング部１２は、三角形Ａ１Ｂ１Ｃ１が、図１６（ｂ）に示した三角形ＴＡ１のように、スキャンラインＳＣ２にも含まれると判定する。そして、クリッピング部１２は、図１８および図１９において後述するように、三角形Ａ１Ｂ１Ｃ１から、スキャンラインＳＣ１に含まれる部分の図形をクリッピングする。
【０１００】
同様に、クリッピング部１２は、図１５に示した三角形Ａ２Ｂ２Ｃ２が、図１７に示したテーブル１２０の判定の格納領域の値が１であるスキャンラインＳＣ２内に収まっているか否かを、上側で隣接するスキャンラインＳＣ３の判定の格納領域の値から判定する。図１７に示すように、三角形Ａ２Ｂ２Ｃ２のスキャンラインＳＣ３における判定の格納領域の値が２であることから、クリッピング部１２は、三角形Ａ２Ｂ２Ｃ２がスキャンラインＳＣ３にも含まれると判定する。
【０１０１】
なお、クリッピング部１２は、スキャンラインＳＣ２における判定の格納領域の値が０の場合、三角形Ａ１Ｂ１Ｃ１のプリミティブが、スキャンラインＳＣ２に含まれず、スキャンラインＳＣ１内に収まっていると判定する。そして、クリッピング部１２は、三角形Ａ１Ｂ１Ｃ１のプリミティブに対してクリッピング処理を行わない。
【０１０２】
また、クリッピング部１２は、図１７に示したテーブル１２０の判定の格納領域の値が２の場合、図１６（ｄ）に示す三角形ＴＡ１のように、プリミティブがスキャンラインのＹ座標ＹＨの境界と交差して上側に隣接するスキャンラインに含まれるか否かを判定する。そこで、クリッピング部１２は、例えば、図１７に示したテーブル１２０の判定の格納領域の値が２である三角形Ａ１Ｂ１Ｃ１のスキャンラインＳＣ２の上側の境界で隣接するスキャンラインＳＣ３におけるプリミティブの判定の格納領域の値が１または２か否かを判定する。隣接する三角形Ａ１Ｂ１Ｃ１のスキャンラインＳＣ３における判定の格納領域の値が２であることから、クリッピング部１２は、三角形Ａ１Ｂ１Ｃ１が、図１６（ｄ）に示した三角形ＴＡ１のように、スキャンラインＳＣ３にも含まれると判定する。そして、クリッピング部１２は、図１８および図１９において後述するように、三角形Ａ１Ｂ１Ｃ１から、スキャンラインＳＣ２に含まれる部分の図形を、スキャンラインＳＣ２のＹ座標ＹＬ，ＹＨの２つの境界でクリッピングする。
【０１０３】
同様に、クリッピング部１２は、図１５に示した三角形Ａ１Ｂ１Ｃ１から、図１７に示したテーブル１２０の判定の格納領域の値が２であるスキャンラインＳＣ３−ＳＣ５のそれぞれに含まれる図形をクリッピングする。また、クリッピング部１２は、図１５に示した三角形Ａ２Ｂ２Ｃ２から、図１７に示したテーブル１２０の判定の格納領域の値が２であるスキャンラインＳＣ３−ＳＣ６のそれぞれに含まれる図形をクリッピングする。
【０１０４】
なお、クリッピング部１２は、スキャンラインＳＣ３における判定の格納領域の値が０の場合、三角形Ａ１Ｂ１Ｃ１が、図１６（ｄ）に示した三角形ＴＡ２のように、上側に隣接するスキャンラインＳＣ３に含まれないと判定する。そして、クリッピング部１２は、三角形Ａ１Ｂ１Ｃ１のプリミティブから、スキャンラインＳＣ２に含まれる部分の図形をスキャンラインＳＣ２のＹ座標ＹＬの境界でクリッピングする。
【０１０５】
図１８は、図１４に示したクリッピング部１２により各スキャンラインでクリッピングされた各プリミティブの頂点を示す情報の例を示す。頂点テーブル１１０ｂ（１）は、図１５に示した三角形Ａ１Ｂ１Ｃ１の頂点を示す情報であり、頂点テーブル１１０ｂ（２）は、図１５に示した三角形Ａ２Ｂ２Ｃ２の頂点を示す情報である。なお、頂点テーブル１１０ｂ（１１０ｂ（１），１１０ｂ（２））は、図３に示した頂点テーブル１１０と同様であり、詳細な説明は省略する。
【０１０６】
図１９は、図１４に示したクリッピング部１２による各プリミティブのクリッピング処理の例を示す。例えば、クリッピング部１２は、図１７に示したテーブル１２０に基づいて、図１５に示した三角形Ａ１Ｂ１Ｃ１から、スキャンラインＳＣ１に含まれる図形である三角形Ｃ１Ｄ１Ｅ１をクリッピングする。同様に、クリッピング部１２は、テーブル１２０に基づいて、三角形Ａ１Ｂ１Ｃ１から、スキャンラインＳＣ２に含まれる図形である四角形Ｄ１Ｅ１Ｇ１Ｆ１をクリッピングする。また、クリッピング部１２は、テーブル１２０に基づいて、三角形Ａ１Ｂ１Ｃ１から、スキャンラインＳＣ３−ＳＣ５の各々に含まれる図形として、五角形Ｂ１Ｉ１Ｈ１Ｆ１Ｇ１、四角形Ｈ１Ｉ１Ｋ１Ｊ１および三角形Ａ１Ｊ１Ｋ１をそれぞれクリッピングする。同様に、クリッピング部１２は、図１７に示したテーブル１２０に基づいて、図１５に示した三角形Ａ２Ｂ２Ｃ２からスキャンラインＳＣ２に含まれる図形である三角形Ｃ２Ｄ２Ｅ２をクリッピングする。また、クリッピング部１２は、テーブル１２０に基づいて、三角形Ａ２Ｂ２Ｃ２から、スキャンラインＳＣ３に含まれる図形である四角形Ｄ２Ｅ２Ｇ２Ｆ２をクリッピングする。また、クリッピング部１２は、テーブル１２０に基づいて、三角形Ａ２Ｂ２Ｃ２から、スキャンラインＳＣ４−ＳＣ６の各々に含まれる図形として、五角形Ｂ２Ｆ２Ｇ２Ｉ２Ｈ２、四角形Ｈ２Ｉ２Ｋ２Ｊ２および三角形Ａ２Ｊ２Ｋ２をそれぞれクリッピングする。
【０１０７】
例えば、生成部２０ｂは、図１８に示した頂点テーブル１１０ｂ（１），１１０ｂ（２）に基づいて、各スキャンラインＳＣ１−ＳＣ６でクリッピングされた図形をプリミティブで分割する。
【０１０８】
図２０は、図１４に示した生成部２０ｂによる分割処理の例を示す。例えば、生成部２０ｂは、図１８に示した三角形Ａ１Ｂ１Ｃ１の頂点テーブル１１０ｂ（１）におけるスキャンラインＳＣ１の切り取り後の頂点と頂点数の格納領域から、頂点Ｃ１，Ｄ１，Ｅ１と頂点数３を読み出す。生成部２０ｂは、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ１の図形がさらに分割することが困難な三角形であると判定し、三角形Ｃ１Ｄ１Ｅ１をスキャンラインＳＣ１の新規のプリミティブとして保持する。また、生成部２０ｂは、頂点テーブル１１０ｂ（１）におけるスキャンラインＳＣ２の切り取り後の頂点と頂点数の格納領域から頂点Ｄ１，Ｅ１，Ｆ１，Ｇ１と頂点数４を読み出す。生成部２０ｂは、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ２の図形が四角形Ｄ１Ｅ１Ｇ１Ｆ１であり、さらに分割することができると判定する。そして、生成部２０ｂは、例えば、四角形Ｄ１Ｅ１Ｇ１Ｆ１を、頂点Ｄ１を基点にして三角形Ｄ１Ｅ１Ｇ１と三角形Ｄ１Ｇ１Ｆ１とに分割する。生成部２０ｂは、分割した２つの三角形Ｄ１Ｅ１Ｇ１と三角形Ｄ１Ｇ１Ｆ１とをスキャンラインＳＣ２の新規のプリミティブとして保持する。
【０１０９】
また、生成部２０ｂは、頂点テーブル１１０ｂ（１）におけるスキャンラインＳＣ３の切り取り後の頂点と頂点数の格納領域から、頂点Ｂ１，Ｆ１，Ｇ１，Ｈ１，Ｉ１と頂点数５とを読み出す。生成部２０ｂは、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ３の図形が五角形Ｂ１Ｉ１Ｈ１Ｆ１Ｇ１であり、さらに分割することができると判定する。そして、生成部２０ｂは、スキャンラインＳＣ３の五角形Ｂ１Ｉ１Ｈ１Ｆ１Ｇ１に対し、例えば、頂点Ｆ１を基点にして三角形Ｆ１Ｇ１Ｂ１、三角形Ｆ１Ｂ１Ｉ１、三角形Ｆ１Ｉ１Ｈ１に分割する。そして、生成部２０ｂは、分割した３つの三角形Ｆ１Ｇ１Ｂ１、三角形Ｆ１Ｂ１Ｉ１、三角形Ｆ１Ｉ１Ｈ１をスキャンラインＳＣ３の新規のプリミティブとして保持する。
【０１１０】
また、生成部２０ｂは、頂点テーブル１１０ｂ（１）におけるスキャンラインＳＣ４の切り取り後の頂点と頂点数の格納領域から、頂点Ｈ１，Ｉ１，Ｊ１，Ｋ１と頂点数４とを読み出す。生成部２０ｂは、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ４の図形が四角形Ｈ１Ｉ１Ｋ１Ｊ１であり、さらに分割することができると判定する。そして、生成部２０ｂは、スキャンラインＳＣ４の四角形Ｈ１Ｉ１Ｋ１Ｊ１に対し、例えば、頂点Ｈ１を基点にして三角形Ｈ１Ｉ１Ｋ１と三角形Ｈ１Ｋ１Ｊ１とに分割する。そして、生成部２０ｂは、分割した２つの三角形Ｈ１Ｉ１Ｋ１と三角形Ｈ１Ｋ１Ｊ１とをスキャンラインＳＣ４の新規のプリミティブとして保持する。また、生成部２０ｂは、頂点テーブル１１０ｂ（１）におけるスキャンラインＳＣ５の切り取り後の頂点と頂点数の格納領域から、頂点Ａ１，Ｊ１，Ｋ１と頂点数３を読み出す。そして、生成部２０ｂは、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ５の図形がさらに分割することが困難な三角形であると判定し、三角形Ａ１Ｊ１Ｋ１をスキャンラインＳＣ５の新規のプリミティブとして保持する。
【０１１１】
また、生成部２０ｂは、三角形Ａ２Ｂ２Ｃ２の頂点テーブル１１０ｂ（２）におけるスキャンラインＳＣ２の切り取り後の頂点と頂点数の格納領域から、頂点Ｃ２，Ｄ２，Ｅ２と頂点数３を読み出す。生成部２０ｂは、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ２の図形がさらに分割することが困難な三角形であると判定し、三角形Ｃ２Ｄ２Ｅ２をスキャンラインＳＣ２の新規のプリミティブとして保持する。また、生成部２０ｂは、頂点テーブル１１０ｂ（２）におけるスキャンラインＳＣ３の切り取り後の頂点と頂点数の格納領域から頂点Ｄ２，Ｅ２，Ｆ２，Ｇ２と頂点数４を読み出す。生成部２０ｂは、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ３の図形が四角形Ｄ２Ｅ２Ｇ２Ｆ２であり、さらに分割することができると判定し、例えば、頂点Ｄ２を基点にして三角形Ｄ２Ｅ２Ｇ２と三角形Ｄ２Ｇ２Ｆ２とに分割する。そして、生成部２０ｂは、分割した２つの三角形Ｄ２Ｅ２Ｇ２と三角形Ｄ２Ｇ２Ｆ２とをスキャンラインＳＣ３の新規のプリミティブとして保持する。
【０１１２】
また、生成部２０ｂは、頂点テーブル１１０ｂ（２）におけるスキャンラインＳＣ４の切り取り後の頂点と頂点数の格納領域から、頂点Ｂ２，Ｆ２，Ｇ２，Ｈ２，Ｉ２と頂点数５とを読み出す。生成部２０ｂは、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ４の図形が五角形Ｂ２Ｆ２Ｇ２Ｉ２Ｈ２であり、さらに分割することができると判定する。そして、生成部２０ｂは、五角形Ｂ２Ｆ２Ｇ２Ｉ２Ｈ２に対し、例えば、頂点Ｆ２を基点にして三角形Ｆ２Ｇ２Ｉ２、三角形Ｆ２Ｉ２Ｈ２、三角形Ｆ２Ｈ２Ｂ２に分割する。そして、生成部２０ｂは、分割した３つの三角形Ｆ２Ｇ２Ｉ２、三角形Ｆ２Ｉ２Ｈ２、三角形Ｆ２Ｈ２Ｂ２をスキャンラインＳＣ４の新規のプリミティブとして保持する。
【０１１３】
また、生成部２０ｂは、頂点テーブル１１０ｂ（２）におけるスキャンラインＳＣ５の切り取り後の頂点と頂点数の格納領域から、頂点Ｈ２，Ｉ２，Ｊ２，Ｋ２と頂点数４とを読み出す。生成部２０ｂは、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ５の図形が四角形Ｈ２Ｉ２Ｋ２Ｊ２であり、さらに分割することができると判定する。そして、生成部２０ｂは、四角形Ｈ２Ｉ２Ｋ２Ｊ２を、例えば、頂点Ｈ２を基点にして三角形Ｈ２Ｉ２Ｋ２と三角形Ｈ２Ｋ２Ｊ２とに分割し、分割した２つの三角形Ｈ２Ｉ２Ｋ２と三角形Ｈ２Ｋ２Ｊ２とをスキャンラインＳＣ５の新規のプリミティブとして保持する。また、生成部２０ｂは、頂点テーブル１１０ｂ（２）におけるスキャンラインＳＣ６の切り取り後の頂点と頂点数の格納領域から、頂点Ａ２，Ｊ２，Ｋ２と頂点数３を読み出し、読み出した頂点の位置と頂点数とから、スキャンラインＳＣ６の図形がさらに分割することが困難な三角形であると判定する。そして、生成部２０ｂは、三角形Ａ２Ｊ２Ｋ２をスキャンラインＳＣ６の新規のプリミティブとして保持する。
【０１１４】
例えば、生成部２０ｂは、スキャンラインごとに保持する各プリミティブを示す情報に基づいて、図２０に示した新規のプリミティブの各々を描画するコマンドをスキャンラインごとに生成する。
【０１１５】
図２１は、図１４に示した生成部２０ｂにより生成された描画のコマンド群８０ｂの例を示す。例えば、コマンド群８０ｂは、スキャンラインＳＣ１−ＳＣ６の各々においてクリッピングされた各図形に含まれる新規のプリミティブそれぞれを描画するコマンドを含む。生成部２０ｂは、例えば、スキャンラインＳＣ１でのコマンドとして、コマンド群８０ｂの１番目から４番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンドｃｍｄ１、三角形Ｃ１Ｄ１Ｅ１の描画コマンド、描画終了を示すフラグの情報を格納する。なお、設定系コマンドｃｍｄ１は、三角形Ａ１Ｂ１Ｃ１に含まれるプリミティブを描画する前処理として、出力装置６０の画面サイズ等の初期設定を行う。また、三角形Ｃ１Ｄ１Ｅ１の描画コマンドは、頂点Ｃ１，Ｄ１，Ｅ１の座標および各頂点間を線分で結ぶベクタ形式のデータ等を含む新たに作成されたものである。
【０１１６】
また、生成部２０ｂは、スキャンラインＳＣ２でのコマンドとして、コマンド群８０ｂの５番目から８番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンドｃｍｄ１、三角形Ｄ１Ｅ１Ｇ１および三角形Ｄ１Ｇ１Ｆ１の描画コマンドを格納する。さらに、生成部２０ｂは、スキャンラインＳＣ２でのコマンドとして、コマンド群８０ｂの９番目から１１番目の各格納領域に、設定系コマンドｃｍｄ２、三角形Ｃ２Ｄ２Ｅ２の描画コマンドおよび描画終了を示すフラグの情報を格納する。なお、設定系コマンドｃｍｄ２は、三角形Ａ２Ｂ２Ｃ２に含まれるプリミティブを描画する前処理として、出力装置６０の画面サイズ等の初期設定を行う。そして、設定系コマンドｃｍｄ１と設定系コマンドｃｍｄ２とは、同じコマンドでもよい。また、図１５および図２０に示したように、三角形Ａ１Ｂ１Ｃ１の上に三角形Ａ２Ｂ２Ｃ２が重ねて描画される。そのため、生成部２０ｂは、三角形Ａ１Ｂ１Ｃ１に含まれるプリミティブの描画コマンドを、三角形Ａ２Ｂ２Ｃ２に含まれるプリミティブの描画コマンドより先にコマンド群８０ｂの格納領域に格納する。
【０１１７】
例えば、生成部２０ｂは、スキャンラインＳＣ３でのコマンドとして、コマンド群８０ｂの１２番目から１６番目の各格納領域に、描画開始を示すフラグ、設定系コマンドｃｍｄ１、三角形Ｆ１Ｇ１Ｂ１，Ｆ１Ｂ１Ｉ１，Ｆ１Ｉ１Ｈ１の描画コマンドを格納する。さらに、生成部２０ｂは、スキャンラインＳＣ３でのコマンドとして、コマンド群８０ｂの１７番目から２０番目の各格納領域に、設定系コマンドｃｍｄ２、三角形Ｄ２Ｅ２Ｇ２，三角形Ｄ２Ｇ２Ｆ２の描画コマンドおよび描画終了を示すフラグを格納する。
【０１１８】
また、生成部２０ｂは、スキャンラインＳＣ４でのコマンドとして、コマンド群８０ｂの２１番目から２４番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンドｃｍｄ１、三角形Ｈ１Ｉ１Ｋ１，三角形Ｈ１Ｋ１Ｊ１の描画コマンドを格納する。さらに、生成部２０ｂは、スキャンラインＳＣ４でのコマンドとして、コマンド群８０ｂの２５番目から２９番目の各格納領域に、設定系コマンドｃｍｄ２、三角形Ｆ２Ｇ２Ｉ２，Ｆ２Ｉ２Ｈ２，Ｆ２Ｈ２Ｂ２の描画コマンドおよび描画終了を示すフラグを格納する。
【０１１９】
また、生成部２０ｂは、スキャンラインＳＣ５でのコマンドとして、コマンド群８０ｂの３０番目から３２番目の各格納領域に、描画開始を示すフラグの情報、設定系コマンドｃｍｄ１、三角形Ａ１Ｊ１Ｋ１の描画コマンドを格納する。さらに、生成部２０ｂは、スキャンラインＳＣ５でのコマンドとして、コマンド群８０ｂの３３番目から３６番目の各格納領域に、設定系コマンドｃｍｄ２、三角形Ｈ２Ｉ２Ｋ２，Ｈ２Ｋ２Ｊ２の描画コマンドおよび描画終了を示すフラグの情報を格納する。また、生成部２０ｂは、スキャンラインＳＣ６でのコマンドとして、コマンド群８０ｂの３６番目から３９番目の各格納領域に、描画開始を示すフラグ、設定系コマンドｃｍｄ２、三角形Ａ２Ｊ２Ｋ２の描画コマンドおよび描画終了を示すフラグを格納する。生成部２０ｂは、生成したコマンド群８０ｂを記憶装置９０ａに格納する。
【０１２０】
なお、各スキャンラインの描画終了を示すフラグの情報は、各スキャンラインの描画開始を示すフラグの情報で代用されてもよく、各スキャンラインの描画終了を示すフラグの情報は省略されてもよい。また、設定系コマンドｃｍｄ１，ｃｍｄ２は、互いに同じコマンドでもよく、コマンド群８０ｂの２番目の格納領域に格納され、他の格納領域の設定系コマンドｃｍｄ１，ｃｍｄ２は省略されてもよい。
【０１２１】
図２２は、図１４に示した画像描画装置１００における画像描画処理の例を示す。図２２に示したステップＳ１００、ステップＳ２００、ステップＳ３００、ステップＳ４００、ステップＳ５００の動作は、画像描画装置１００に含まれるプロセッサ等の制御部がプログラムを実行することにより実現される。すなわち、図２２は、画像描画方法の別実施形態を示す。なお、図２２に示す処理は、画像描画装置１００に搭載されるハードウェアにより実行されてもよい。この場合、図１４に示した前処理部１５、切取部１０ｂ、解析部１１、クリッピング部１２、生成部２０ｂおよび描画部３０ｂは、画像描画装置１００内に配置される回路により実現される。
【０１２２】
ステップＳ１００において、前処理部１５は、図１４において説明したように、制御装置４０より受けた描画指示に含まれる立体物の頂点を示す情報およびディスプレイリストに基づいて、ViewVolumeClip処理および変換処理等を含む前処理を実行する。そして、前処理部１５は、前処理した図形の頂点を示す情報、およびディスプレイリストを記憶部９０の予め割り当てられた格納領域に格納する。そして、前処理部１５は、クリッピング部１２に処理の開始を指示する信号を出力する。
【０１２３】
次に、ステップＳ２００において、解析部１１は、図１４から図１７において説明したように、前処理部１５から処理の開始を示す信号を受けると、前処理された図形に含まれる各プリミティブにおいて少なくとも一部を含むスキャンラインを特定する。解析部１１によるステップＳ２００の処理については、図２３で説明する。
【０１２４】
次に、ステップＳ３００において、クリッピング部１２は、図１４、図１８および図１９において説明したように、前処理された図形に含まれる各プリミティブから、解析部１１により特定されたスキャンラインのそれぞれに含まれる部分の図形をクリッピングする。クリッピング部１２は、スキャンラインＳＣ１−ＳＣ６ごとにクリッピングした図形を示す情報を、頂点テーブル１１０ｂとして記憶装置９０ａに格納する。そして、クリッピング部１２は、生成部２０ｂに生成処理の開始を指示する信号を出力する。クリッピング部１２によるステップＳ３００の処理については、図２４で説明する。
【０１２５】
次に、ステップＳ４００において、生成部２０ｂは、図１４、図２０および図２１において説明したように、スキャンラインごとにクリッピングした図形を、さらに分割することで少なくとも１つの新規のプリミティブを生成する。生成部２０ｂは、生成した新規のプリミティブのそれぞれを描画するコマンドを、スキャンラインごとに含むコマンド群８０ｂを生成する。生成部２０ｂは、生成したコマンド群８０ｂを記憶装置９０ａに予め割り当てられた格納領域に格納する。生成部２０ｂは、描画部３０ｂに描画処理の開始を指示する信号を出力する。生成部２０ｂによるステップＳ４００の処理については、図２５で説明する。
【０１２６】
次に、ステップＳ５００において、描画部３０ｂは、図１４において説明したように、生成部２０ｂより処理の開始を示す信号を受けると、記憶装置９０ａよりコマンド群８０ｂを読み出し、読み出したコマンド群８０ｂに基づいて画像を描画する。例えば、描画部３０ｂは、読み出したコマンド群８０ｂに含まれる各プリミティブの描画コマンドに基づいて、スキャンラインＳＣ１−ＳＣ６ごとに各プリミティブに対してラスタライズ処理を施し、各プリミティブのラスタ表現を生成する。そして、描画部３０ｂは、生成した各プリミティブのラスタ表現をフレームバッファ５０に順次に出力する。
【０１２７】
そして、画像描画装置１００は、画像描画処理を終了する。なお、図２２の処理のフローは、制御装置４０から画像の描画指示を受ける度に実行される。
【０１２８】
図２３は、図２２に示したステップＳ２００の処理の例を示す。図２３に示したステップＳ２０１からステップＳ２１０の動作は、画像描画装置１００に含まれるプロセッサ等の制御部がプログラムを実行することにより実現される。また、図２３に示す処理は、画像描画装置１００に搭載されるハードウェアにより実行されてもよい。
【０１２９】
ステップＳ２０１において、解析部１１は、図１６において説明したように、記憶部９０より前処理された図形の頂点を示す情報を読み出す。そして、解析部１１は、読み出した情報に基づき、前処理された図形に含まれるプリミティブの頂点のうち最小および最大のＹ座標を示す頂点のＹ座標Ｙｍｉｎ，Ｙｍａｘを取得する。
【０１３０】
次に、ステップＳ２０２において、解析部１１は、図１６において説明したように、ステップＳ２０１で取得したプリミティブとの位置関係を比較するスキャンラインの下側および上側の境界を示すＹ座標ＹＬ，ＹＨを記憶装置９０ａより読み出す。
【０１３１】
次に、ステップＳ２０３において、解析部１１は、図１６および図１７において説明したように、ステップＳ２０１で取得したプリミティブの頂点のＹ座標Ｙｍｉｍが、スキャンラインの上側の境界のＹ座標ＹＨより小さいか否かを判定する。解析部１１は、Ｙ座標Ｙｍｉｎがスキャンラインの上側の境界のＹ座標ＹＨより小さい場合（ＹＥＳ）、処理をステップＳ２０４に移行する。一方、解析部１１は、Ｙ座標Ｙｍｉｎがスキャンラインの上側の境界のＹ座標ＹＨ以上大きい場合（ＮＯ）、位置関係が図１６（ａ）に示した三角形ＴＡ１のように、プリミティブがスキャンラインの上側の境界より上方に位置すると判定する。そして、解析部１１は、処理をステップＳ２０８に移行する。
【０１３２】
ステップＳ２０４において、解析部１１は、図１６および図１７において説明したように、ステップＳ２０１で取得したプリミティブの頂点のＹ座標Ｙｍｉｎが、スキャンラインの下側の境界のＹ座標ＹＬより小さいか否かを判定する。解析部１１は、Ｙ座標Ｙｍｉｎがスキャンラインの下側の境界のＹ座標ＹＬより小さい場合（ＹＥＳ）、処理をステップＳ２０５に移行する。一方、解析部１１は、Ｙ座標Ｙｍｉｎがスキャンラインの下側の境界のＹ座標ＹＬ以上大きい場合（ＮＯ）、図１６（ｂ）に示した三角形ＴＡ１または三角形ＴＡ２のように、プリミティブのＹ座標Ｙｍｉｎを有する頂点がスキャンラインに含まれていると判定する。そして、解析部１１は、処理をステップＳ２０６に移行する。
【０１３３】
ステップＳ２０５において、解析部１１は、図１６および図１７において説明したように、ステップＳ２０１で取得したプリミティブの頂点のＹ座標Ｙｍａｘが、スキャンラインの下側の境界のＹ座標ＹＬより小さいか否かを判定する。解析部１１は、Ｙ座標Ｙｍａｘがスキャンラインの下側の境界のＹ座標ＹＬより小さい場合（ＹＥＳ）、図１６（ｃ）に示した三角形ＴＡ１のように、プリミティブがスキャンラインの下側の境界より下方に位置すると判定する。そして、解析部１１は、処理をステップＳ２０８に移行する。一方、解析部１１は、Ｙ座標Ｙｍａｘがスキャンラインの下側の境界のＹ座標の値ＹＬ以上大きい場合（ＮＯ）、図１６（ｄ）に示した三角形ＴＡ１または三角形ＴＡ２のように、プリミティブがスキャンラインの下側の境界を跨いでいると判定する。そして、解析部１１は、処理をステップＳ２０７に移行する。
【０１３４】
ステップＳ２０６において、解析部１１は、図１６および図１７において説明したように、図１７に示したテーブル１２０において、プリミティブとの位置関係を比較したスキャンラインの判定の格納領域に値１を格納する。そして、解析部１１は、処理をステップＳ２０９に移行する。
【０１３５】
ステップＳ２０７において、解析部１１は、図１６および図１７において説明したように、図１７に示したテーブル１２０において、プリミティブとの位置関係を比較したスキャンラインの判定の格納領域に値２を格納する。そして、解析部１１は、処理をステップＳ２０９に移行する。
【０１３６】
ステップＳ２０８において、解析部１１は、図１６および図１７において説明したように、図１７に示したテーブル１２０において、プリミティブとの位置関係を比較したスキャンラインの判定の格納領域に値０を格納する。そして、解析部１１は、処理をステップＳ２０９に移行する。
【０１３７】
ステップＳ２０９において、解析部１１は、全てのスキャンラインについてステップＳ２０１で頂点の最小および最大のＹ座標Ｙｍｉｎ，Ｙｍａｘを取得したプリミティブとの位置関係を比較したか否かを判定する。例えば、解析部１１は、全てのスキャンラインについて、頂点のＹ座標Ｙｍｉｎ，Ｙｍａｘを取得したプリミティブとの位置関係を比較した場合（ＹＥＳ）、処理をステップＳ２１０に移行する。一方、解析部１１は、全てのスキャンラインについて比較していない場合（ＮＯ）、次のスキャンラインと、頂点のＹ座標Ｙｍｉｎ，Ｙｍａｘを取得したプリミティブとの位置関係を比較するために、処理をステップＳ２０２に移行する。
【０１３８】
ステップＳ２１０において、解析部１１は、前処理された図形に含まれる全てのプリミティブについてスキャンラインとの位置関係を比較したか否かを判定する。例えば、解析部１１は、全てのプリミティブについてスキャンラインとの位置関係を比較した場合（ＹＥＳ）、図２２に示したステップＳ２００の処理を終了する。そして、解析部１１は、処理を図２２に示したステップＳ３００に移行する。一方、解析部１１は、全てのプリミティブについてスキャンラインとの位置関係を比較していない場合（ＮＯ）、次のプリミティブと各スキャンラインとの位置関係を比較するために、処理をステップＳ２０１に移行する。
【０１３９】
図２４は、図２２に示したステップＳ３００の処理の例を示す。図２４に示したステップＳ３０１からステップＳ３０７の動作は、画像描画装置１００に含まれるプロセッサ等の制御部がプログラムを実行することにより実現される。また、図２４に示す処理は、画像描画装置１００に搭載されるハードウェアにより実行されてもよい。
【０１４０】
ステップＳ３０１において、クリッピング部１２は、図１７において説明したように、前処理された図形に含まれるプリミティブそれぞれにおける、各スキャンラインとの位置関係を示す判定の結果を、図１７に示したテーブル１２０の判定の格納領域から読み出す。
【０１４１】
次に、ステップＳ３０２において、クリッピング部１２は、図１６および図１７において説明したように、ステップＳ３０１で読み出した判定の結果を示す値が０か否かを判定する。例えば、クリッピング部１２は、ステップＳ３０１で読み出した判定の結果を示す値が０の場合（ＹＥＳ）、図１６（ａ）または図１６（ｃ）に示した三角形ＴＡ１のように、プリミティブがスキャンライン内にないと判定し、処理をステップＳ３０６に移行する。一方、クリッピング部１２は、判定の結果を示す値が０でない場合（ＮＯ）、処理をステップＳ３０３に移行する。
【０１４２】
ステップＳ３０３において、クリッピング部１２は、図１６および図１７において説明したように、ステップＳ３０１で読み出した判定の結果を示す値が１か否かを判定する。例えば、クリッピング部１２は、判定の結果を示す値が１の場合（ＹＥＳ）、処理をステップＳ３０４に移行する。一方、クリッピング部１２は、判定の結果を示す値が２の場合（ＮＯ）、処理をステップＳ３０５に移行する。
【０１４３】
ステップＳ３０４において、クリッピング部１２は、図１６および図１７において説明したように、プリミティブが、図１６（ｂ）に示した三角形ＴＡ１のように、判定の結果を示す値が１であるスキャンラインの上側の境界で交差しているか否かを判定する。例えば、クリッピング部１２は、判定の結果を示す値が１のスキャンラインの上側で隣接するスキャンラインにおける、プリミティブの判定の結果を示す値が１または２か否かを判定する。クリッピング部１２は、上側で隣接するスキャンラインにおける、プリミティブの判定の結果を示す値が１または２の場合（ＹＥＳ）、プリミティブが、判定の結果を示す値が１のスキャンラインの上側の境界で交差していると判定する。そして、クリッピング部１２は、処理をステップＳ３０５に移行する。一方、クリッピング部１２は、上側で隣接するスキャンラインにおける、プリミティブの判定の結果を示す値が０の場合（ＮＯ）、プリミティブが、図１６（ｂ）に示す三角形ＴＡ２のように、判定の結果を示す値が１のスキャンライン内に収まっていると判定する。そして、クリッピング部１２は、プリミティブから、判定の結果を示す値が１のスキャンラインに含まれる部分の図形をクリッピングすることなく、処理をステップＳ３０６に移行する。
【０１４４】
ステップＳ３０５において、クリッピング部１２は、図１８および図１９において説明したように、プリミティブからスキャンラインに含まれる部分の図形をクリッピングし、クリッピングした図形における新規の頂点を算出する。そして、クリッピング部１２は、処理をステップＳ３０６に移行する。
【０１４５】
ステップＳ３０６において、クリッピング部１２は、１つのスキャンラインにおいて全てのプリミティブから、当該スキャンラインに含まれる部分の図形をクリッピングしたか否かを判定する。例えば、クリッピング部１２は、全てのプリミティブからスキャンラインに含まれる部分の図形をクリッピングした場合（ＹＥＳ）、処理をステップＳ３０７に移行する。一方、クリッピング部１２は、全てのプリミティブから、スキャンラインに含まれる部分の図形をクリッピングしていない場合（ＮＯ）、次のプリミティブから、スキャンラインに含まれる部分の図形をクリッピングするため、処理をステップＳ３０２に移行する。
【０１４６】
ステップＳ３０７において、クリッピング部１２は、前処理された図形に含まれる全てのプリミティブから、各スキャンラインに含まれる部分の図形をクリッピングしたか否かを判定する。例えば、クリッピング部１２は、全てのプリミティブから、各スキャンラインに含まれる部分の図形をクリッピングした場合（ＹＥＳ）、ステップＳ３００の処理を終了する。そして、クリッピング部１２は、処理を図２２に示したステップＳ４００に移行する。一方、クリッピング部１２は、全てのプリミティブから、各スキャンラインに含まれる部分の図形をクリッピングしていない場合（ＮＯ）、次のスキャンラインに含まれる部分の図形をクリッピングするため、処理をステップＳ３０１に移行する。
【０１４７】
図２５は、図２２に示した生成部２０ｂによるステップＳ４００の処理の例を示す。図２５に示したステップＳ４０１からステップＳ４１０の動作は、画像描画装置１００に含まれるプロセッサ等の制御部がプログラムを実行することにより実現される。また、図２５に示す処理は、画像描画装置１００に搭載されるハードウェアにより実行されてもよい。
【０１４８】
ステップＳ４０１において、生成部２０ｂは、図２０において説明したように、スキャンラインでクリッピングされた図形それぞれの頂点を示す情報を、記憶装置９０ａに格納された頂点テーブル１１０ｂの切り取り後の頂点と頂点数の格納領域から読み出す。
【０１４９】
次に、ステップＳ４０２において、生成部２０ｂは、読み出した頂点を示す情報において、クリッピングされた図形の頂点数が３より多いか否かを判定する。生成部２０ｂは、頂点数が３より多い場合（ＹＥＳ）、クリッピングされた図形が４つ以上の頂点を有し、さらに分割することができる多角形と判定し、処理をステップＳ４０６に移行する。一方、生成部２０ｂは、頂点数が３の場合（ＮＯ）、クリッピングされた図形はさらに分割することが困難な三角形であると判定し、処理をステップＳ４０３に移行する。
【０１５０】
ステップＳ４０３において、生成部２０ｂは、ステップＳ４０２で三角形と判定された図形における頂点テーブル１１０ｂの切り取り前の頂点と頂点数の格納領域と切り取り後の頂点と頂点数の格納領域とに格納される頂点が異なるか否かを判定する。生成部２０ｂは、クリッピング前後で格納される頂点が異なる場合（ＹＥＳ）、クリッピング部１２のクリッピングにより新たに生成された三角形と判定する。生成部２０ｂは、処理をステップＳ４０５に移行する。一方、生成部２０ｂは、クリッピング前後で格納される頂点が同じ場合（ＮＯ）、図１６（ｂ）に示した三角形ＴＡ２のように、１つのスキャンライン内に収まる三角形と判定する。そして、生成部２０ｂは、処理をステップＳ４０４に移行する。
【０１５１】
ステップＳ４０４において、生成部２０ｂは、クリッピング前の三角形を新規のプリミティブとして保持する。そして、生成部２０ｂは、処理をステップＳ４０８に移行する。
【０１５２】
ステップＳ４０５において、生成部２０ｂは、クリッピング後の三角形を新規のプリミティブとして保持する。そして、生成部２０ｂは、処理をステップＳ４０８に移行する。
【０１５３】
ステップＳ４０６において、生成部２０ｂは、図２０において説明したように、クリッピングされた図形を、さらに分割することで複数のプリミティブを生成する。そして、生成部２０ｂは、処理をステップＳ４０７に移行する。
【０１５４】
ステップＳ４０７において、生成部２０ｂは、図２０において説明したように、ステップＳ４０６で生成した複数のプリミティブそれぞれを、新規のプリミティブとして保持する。そして、生成部２０ｂは、処理をステップＳ４０８に移行する。
【０１５５】
ステップＳ４０８において、生成部２０ｂは、１つのスキャンラインでクリッピングされた全ての図形について新規のプリミティブを保持したか否かを判定する。例えば、生成部２０ｂは、当該スキャンラインでクリッピングされた全ての図形について新規のプリミティブを保持した場合（ＹＥＳ）、処理をステップＳ４０９に移行する。一方、生成部２０ｂは、当該スキャンラインでクリッピングされた全ての図形の新規のプリミティブを保持していない場合（ＮＯ）、次のクリッピングされた図形に対し新規のプリミティブを保持するために、処理をステップＳ４０２に移行する。
【０１５６】
ステップＳ４０９において、生成部２０ｂは、全てのスキャンラインにおいてクリッピングされた図形について新規のプリミティブを保持したか否かを判定する。例えば、生成部２０ｂは、全てのスキャンラインでクリッピングされた図形の新規のプリミティブを保持した場合（ＹＥＳ）、処理をステップＳ４１０に移行する。一方、生成部２０ｂは、全てのスキャンラインでクリッピングされた図形の新規のプリミティブを保持していない場合（ＮＯ）、次のスキャンラインでクリッピングされた図形の新規のプリミティブを保持するために、処理をステップＳ４０１に移行する。
【０１５７】
ステップＳ４１０において、生成部２０ｂは、図２１において説明したように、スキャンラインごとに保持する新規のプリミティブのそれぞれを描画するコマンドを含むコマンド群８０ｂを生成する。例えば、生成部２０ｂは、生成したコマンド群８０ｂを記憶装置９０ａに予め割り当てられた格納領域に格納する。そして、生成部２０ｂは、図２２に示したステップＳ４００の処理を終了し、処理をステップＳ５００に移行する。
【０１５８】
以上、この実施形態では、切取部１０ｂは、受けた画像の描画指示に基づいて、描画する画像が含むプリミティブから各スキャンラインに含まれる部分の図形をクリッピングする。生成部２０ｂは、スキャンラインごとにクリッピングされた図形を新規のプリミティブで分割し、スキャンラインごとに分割した新規のプリミティブを描画するコマンドを含むコマンド群８０ｂを生成する。描画部３０ｂは、コマンド群８０ｂに含まれた描画コマンドに基づいて、各スキャンラインにおいて生成された新規のプリミティブの各々に対するラスタライズ処理を行い、各プリミティブのラスタ表現を生成する。図２１および図２２で説明したように、図１４に示した描画部３０ｂは、スキャンラインごとの分割で得られた新規のプリミティブの各々に対してラスタライズ処理する過程で、他のスキャンラインに含まれる新規のプリミティブをラスタライズすることはない。つまり、描画部３０ｂが、各スキャンラインに含まれる新規のプリミティブのそれぞれをラスタライズする処理は、分割前の元の図形全体に対し１回のラスタライズ処理を施すことと同等である。すなわち、画像描画装置１００は、図形全体に対するラスタライズ処理をスキャンライン数と同じ回数に亘って繰り返すことなく、元の描画指示で示された図形全体のラスタ表現を生成できる。これにより、画像描画装置１００は、図形全体に対するラスタライズ処理をスキャンライン数と同じ回数の繰り返す場合に比べて、ラスタライズ処理の負荷を低減し、画像の描画処理の高速化を図ることができる。
【０１５９】
なお、画像描画装置１００は、描画方式として、ラスタスキャンベースレンダリングを用いたが、タイルベースレンダリングの描画方式を用いてもよい。
【０１６０】
なお、生成部２０ｂは、図２１に示したコマンド群８０ｂに格納される各プリミティブの描画コマンドを、スキャンラインＳＣ１−ＳＣ６の順に格納したが、任意の順番でスキャンラインごとにプリミティブの描画コマンドを格納してもよい。
【０１６１】
なお、生成部２０ｂは、図２５に示したステップＳ４０３において、クリッピング前後で、クリッピングされた図形の頂点が変化したか否かを判定したが、ステップＳ４０４とともに、ステップＳ４０３の処理は省略されてもよい。すなわち、生成部２０ｂは、ステップＳ４０５において、クリッピング前後で、クリッピングされた図形の頂点の変化の有無にかかわらず、クリッピング後の三角形を新規のプリミティブとして保持してもよい。
【０１６２】
図２６は、図１４に示した画像描画装置１００および画像描画システム１５０のハードウェア構成の例を示す。なお、図２６に示す各要素のうち、図１４に示した要素と同等のものについては同一の符号を付して示し、詳細な説明は省略する。
【０１６３】
コンピュータ装置２００は、プロセッサ２１０、メモリ２２０、入出力インタフェース２３０、フレームバッファ５０およびＧＰＵ（Graphics Processing Unit）３００を含む。プロセッサ２１０、メモリ２２０、入出力インタフェース２３０およびＧＰＵ３００は、バスを介し互いに接続される。また、入出力インタフェース２３０は、フレームバッファ５０とともに、出力装置６０および入力装置４００に接続される。なお、コンピュータ装置２００は、パーソナルコンピュータ、ゲーム機器あるいはカーナビゲーションション装置等である。
【０１６４】
入力装置４００は、例えば、キーボード、タッチパネルあるいはマウス等を含む。コンピュータ装置２００のユーザは、入力装置４００を操作し、例えば、画像描画処理の開始あるいは終了の指示等を行う。
【０１６５】
メモリ２２０は、コンピュータ装置２００のオペレーティングシステムを格納する。また、メモリ２２０は、プロセッサ２１０が、入力装置４００を介して受けるユーザからの指示に基づいて画像の描画指示を生成し、生成した描画指示をＧＰＵ３００に出力し画像描画処理を実行させるアプリケーションプログラムを格納する。なお、メモリ２２０に格納されるアプリケーションプログラムは、例えば、コンピュータ装置２００に含まれるネットワークインタフェースを介してダウンロードされてもよい。また、メモリ２２０に格納されるアプリケーションプログラムは、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）等のリムーバブルディスクに記録して頒布することができる。
【０１６６】
ＧＰＵ３００は、画像描画装置１００、ホストインタフェース３１０、レジスタ３２０、プログラマブルシェーダ３３０、外部インタフェース３４０、ディスプレイコントローラ３５０、キャプチャコントローラ３６０およびメモリコントローラ３７０を含む。画像描画装置１００、ホストインタフェース３１０、外部インタフェース３４０、ディスプレイコントローラ３５０、キャプチャコントローラ３６０およびメモリコントローラ３７０は、バスを介し互いに接続される。また、画像描画装置１００は、レジスタ３２０およびプログラマブルシェーダ３３０に接続され、外部インタフェース３４０は、フレームバッファ５０に接続される。
【０１６７】
つまり、図１４に示した画像描画システム１５０は、プロセッサ２１０、画像符号化装置１００およびレジスタ３２０の協働によって実現する。
【０１６８】
ホストインタフェース３１０は、プロセッサ２１０から画像の描画指示を受信し、受信した描画指示を画像描画装置１００に出力する。
【０１６９】
レジスタ３２０は、画像描画装置１００が受けた描画指示の画像に含まれる図形の頂点を示す情報とディスプレイリスト、図１７に示したテーブル１２０および図１８に示した頂点テーブル１１０ｂ等を格納する。また、レジスタ３２０は、図画像描画装置１００による処理の途中経過を示すデータを格納する。
【０１７０】
プログラマブルシェーダ３３０は、光源の計算や陰影の処理等を行う演算器であり、画像描画装置１００により処理される各プリミティブでの画素に対する陰影や色彩のグラデーションの効果の制御指示を画像描画装置１００に対して行う。
【０１７１】
ディスプレイコントローラ３５０は、外部インタフェース３４０を介してフレームバッファ５０からスキャンラインごとのラスタ表現の画像データを取得し、入出力インタフェース２３０を介し、取得した画像データを出力装置６０に表示等させる。
【０１７２】
キャプチャコントローラ３６０は、入出力インタフェース２３０を介して、コンピュータ装置２００に外部から入力される映像信号を取り込み、取り込んだ映像信号を出力装置６０に表示等させる。
【０１７３】
メモリコントローラ３７０は、外部のフレームバッファ５０やメモリ２２０とのデータのやり取りするデータ量、転送速度あるいはタイミング等の調整を行う。
【０１７４】
画像描画装置１００は、図１４から図２５において説明したように、前処理部１５、切取部１０ｂ、生成部２０ｂおよび描画部３０ｂを含む。そして、画像描画装置１００は、ホストインタフェース３１０を介して、プロセッサ２１０より画像の描画指示を受けると、画像描画処理を実行する。
【０１７５】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１７６】
１０，１０ａ，１０ｂ…切取部；１１…解析部；１２…クリッピング部；１５…前処理部；２０，２０ａ，２０ｂ…生成部；３０，３０ａ，３０ｂ…描画部；４０…制御装置；５０…フレームバッファ；６０…出力装置；７０，７０ａ…領域；８０，８０ａ，８０ｂ…コマンド群；９０，９０ａ…記憶装置；１００…画像描画装置；１１０，１１０ａ，１１０ｂ（１），１１０ｂ（２），１１０ｂ…頂点テーブル；１２０…テーブル；１５０…画像描画システム；２００…コンピュータ装置；２１０…プロセッサ；２２０…メモリ；２３０…入出力インタフェース；３００…ＧＰＵ；３１０…ホストインタフェース；３２０…レジスタ；３３０…プログラマブルシェーダ；３４０…外部インタフェース；３５０…ディスプレイコントローラ；３６０…キャプチャコントローラ；３７０…メモリコントローラ；４００…入力装置；ＳＣ１−ＳＣ６…スキャンライン；ＴＬ１−ＴＬ１２…タイル
【図１】
2015225421.tif 000003
【図２】
2015225421.tif 000004
【図３】
2015225421.tif 000005
【図４】
2015225421.tif 000006
【図５】
2015225421.tif 000007
【図６】
2015225421.tif 000008
【図７】
2015225421.tif 000009
【図８】
2015225421.tif 000010
【図９】
2015225421.tif 000011
【図１０】
2015225421.tif 000012
【図１１】
2015225421.tif 000013
【図１２】
2015225421.tif 000014
【図１３】
2015225421.tif 000015
【図１４】
2015225421.tif 000016
【図１５】
2015225421.tif 000017
【図１６】
2015225421.tif 000018
【図１７】
2015225421.tif 000019
【図１８】
2015225421.tif 000020
【図１９】
2015225421.tif 000021
【図２０】
2015225421.tif 000022
【図２１】
2015225421.tif 000023
【図２２】
2015225421.tif 000024
【図２３】
2015225421.tif 000025
【図２４】
2015225421.tif 000026
【図２５】
2015225421.tif 000027
【図２６】
2015225421.tif 000028