JP2014110036A - 描画装置、描画方法、および描画プログラム - Google Patents

描画装置、描画方法、および描画プログラム Download PDF

Info

Publication number
JP2014110036A
JP2014110036A JP2012265825A JP2012265825A JP2014110036A JP 2014110036 A JP2014110036 A JP 2014110036A JP 2012265825 A JP2012265825 A JP 2012265825A JP 2012265825 A JP2012265825 A JP 2012265825A JP 2014110036 A JP2014110036 A JP 2014110036A
Authority
JP
Japan
Prior art keywords
graphic information
graphic
area
divided
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012265825A
Other languages
English (en)
Inventor
Yasushi Sukama
康 洲鎌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012265825A priority Critical patent/JP2014110036A/ja
Priority to US14/086,028 priority patent/US9177354B2/en
Priority to EP13194499.3A priority patent/EP2741257A2/en
Publication of JP2014110036A publication Critical patent/JP2014110036A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Abstract

【課題】記憶容量を削減したバッファを用いて正常に描画可能となる確度を向上させること。
【解決手段】描画装置101は、分割領域DAR_1〜DAR_4に対応して各分割領域に描画される一部または全部の図形の図形情報GINFを特定する。次に、描画装置101は、図形情報GINF_1〜GINF_3のデータサイズに基づいて、分割領域DARに描画される一部または全部の図形の図形情報の合計データサイズを分割領域DAR_1〜DAR_4に対応して算出する。続けて、描画装置101は、バッファ102に収まるように、算出した図形情報の合計データサイズを用いて、分割領域DAR_1〜DAR_4から描画対象となる図形の描画先となる分割領域DAR_1を選択する。次に、描画装置101は、選択した分割領域DAR_1に描画される図形の図形情報GINF_1〜GINF_3をバッファ102に書き込んで、分割領域DAR_1の画像を生成する。
【選択図】図1

Description

本発明は、描画装置、描画方法、および描画プログラムに関する。
従来、描画面の描画領域を分割した分割領域ごとに描画を行う技術がある。たとえば、要求クリップサイズの方が使用可能クリップサイズより大きい際に、カレント白黒イメージ描画命令を分割白黒イメージ描画命令に分割し、カレントカラーイメージ描画命令を分割白黒イメージ命令に対応する領域で分割する技術がある。また、1ページ分の描画命令を複数のバンドに分割し、バンドごとに順次バンド高さを仮決定して、閾値以下となるようにバンド高さを決定して、1ページ分のディスプレイリストを複数のバンドに振り分ける技術がある。さらに、描画すべき描画範囲情報を複数の領域に分けて登録された各描画範囲情報と、アプリケーションプログラムからの印刷命令に基づき中間言語を展開されたビットマップデータとに基づき、印刷装置への印刷命令を生成して印刷装置に送出する技術がある。さらに、アプリケーションプログラムの描画メモリ領域を確保できない際に、優先アプリケーションプログラムの描画メモリ領域を確保し、確保した描画メモリ領域を差し引いた値に応じて他のアプリケーションプログラムの描画メモリ領域を確保する技術がある。(たとえば、下記特許文献1〜4を参照。)
特開2007−079934号公報 特開2000−238349号公報 特開2001−047673号公報 特開2009−212826号公報
しかしながら、従来技術によれば、分割領域ごとに画像を生成すると、描画命令や画像を一時記憶するバッファの記憶容量を削減することができるが、記憶容量を削減したバッファでは全ての描画命令を書き込めない場合があり、画像を正常に描画することが難しい。
1つの側面では、本発明は、記憶容量を削減したバッファを用いて正常に描画可能となる確度を向上させることができる描画装置、描画方法、および描画プログラムを提供することを目的とする。
本発明の一側面によれば、描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、取得した図形情報に基づいて、描画領域を分割した分割領域群のうちの各々の分割領域に対応して、各々の分割領域に描画される一部または全部の図形の図形情報を特定し、図形情報のデータサイズに基づいて、特定した各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、各々の分割領域に対応して算出し、取得した図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、各々の分割領域に対応して算出した図形情報の合計データサイズとに基づいて、分割領域群から描画対象となる図形の描画先となる分割領域を選択し、選択した描画先となる分割領域に描画される図形の図形情報を記憶領域に書き込み、記憶領域に書き込まれた図形情報に基づいて、描画先となる分割領域の画像を生成する描画装置、描画方法、および描画プログラムが提案される。
本発明の一態様によれば、記憶容量を削減したバッファを用いて正常に描画可能となる確度を向上させるという効果を奏する。
図1は、実施の形態1にかかる描画装置の動作例を示す説明図である。 図2は、コンピュータシステムのハードウェア構成例を示すブロック図である。 図3は、描画装置の機能構成例を示すブロック図である。 図4は、図形情報分割領域選択部の詳細を示すブロック図である。 図5は、頂点情報の記憶内容の一例を示す説明図である。 図6は、実施の形態1にかかる図形情報の記憶内容の一例を示す説明図である。 図7は、図形情報サイズリストの記憶内容の一例を示す説明図である。 図8は、実施の形態1にかかる図形情報サイズリストの更新例を示す説明図(その1)である。 図9は、実施の形態1にかかる図形情報サイズリストの更新例を示す説明図(その2)である。 図10は、実施の形態1にかかる図形情報サイズリストの更新例を示す説明図(その3)である。 図11は、実施の形態1にかかる図形情報サイズリストの更新例を示す説明図(その4)である。 図12は、実施の形態1にかかる描画処理手順の一例を示すフローチャート(その1)である。 図13は、実施の形態1にかかる描画処理手順の一例を示すフローチャート(その2)である。 図14は、実施の形態1にかかるオーバーフロー時の描画処理手順の一例を示すフローチャートである。 図15は、実施の形態2にかかる図形情報の記憶内容の一例を示す説明図である。 図16は、実施の形態2にかかる図形情報サイズリストの更新例を示す説明図(その1)である。 図17は、実施の形態2にかかる図形情報サイズリストの更新例を示す説明図(その2)である。 図18は、実施の形態2にかかる図形情報サイズリストの更新例を示す説明図(その3)である。 図19は、実施の形態2にかかる描画処理手順の一例を示すフローチャート(その1)である。 図20は、実施の形態2にかかるオーバーフロー時の描画処理手順の一例を示すフローチャート(その1)である。 図21は、実施の形態2にかかるオーバーフロー時の描画処理手順の一例を示すフローチャート(その2)である。
以下に添付図面を参照して、開示の描画装置、描画方法、および描画プログラムの実施の形態を詳細に説明する。
(実施の形態1)
図1は、実施の形態1にかかる描画装置の動作例を示す説明図である。描画装置101は、コンピュータシステムに含まれるコンピュータである。具体的に、描画装置101は、コンピュータシステムが実行するアプリケーションプログラムが実行されることにより発生した描画命令を実行し、実行結果となる画像を出力する。コンピュータシステムは、出力された画像をコンピュータシステムの表示面に表示する。コンピュータシステムについては、図2にて後述する。たとえば、描画装置101は、GPU(Graphics Processing Unit)等である。アプリケーションプログラムは、たとえば、3次元画像を取り扱うソフトウェアである。アプリケーションプログラムを、以下、「アプリ」と称する。
3次元画像等を描画する描画装置は、たとえば、アプリからの図形の描画命令として発行される図形の頂点情報に基づいて、2次元表示面上の図形情報を生成する。描画装置は、生成した図形情報に基づいて、2次元表示面に表示する画像を生成する。たとえば、描画装置は、画素の色を記憶するフレームバッファと、画素の奥行きを記憶するデプスバッファとを用いて、2次元表示面となる描画領域上の図形情報を生成する。図形情報は、描画領域に描画される図形の頂点の座標位置を含む。
描画装置は、フレームバッファおよびデプスバッファといった、画素値を一時記憶するバッファを、表示面の画素数分の記憶容量分用意しておくことになる。具体的な記憶容量として、表示面が640[画素]×480[画素]であり、1画素あたりの色と奥行きを記憶するデータサイズが8[バイト]である場合、2.3[Mバイト]の記憶容量を用意しておくことになる。
そこで、実施の形態1にかかる描画装置101は、描画領域DISを分割した各分割領域DARに描画される図形を特定し、特定した図形の図形情報のデータ量に基づいて、バッファ102から溢れないように、選択した分割領域DARの図形情報をバッファ102に書き込む。これにより、描画装置101は、バッファ102の記憶容量を削減するとともに、正常に描画可能となる確度を向上させることができる。
具体的に、描画装置101は、バッファ102に書き込む内容を、画素値そのものから図形情報にすることにより、データ量を少なくする。また、この場合、ある分割領域DARに描画される図形の図形情報のデータサイズが多すぎて、用意したバッファ102の記憶容量に収まらない可能性がある。そこで、描画装置101は、各分割領域DARに描画される図形の図形情報のデータ量と、バッファ102の記憶容量とを比較して、バッファ102から溢れない図形情報に対応する分割領域DARを選択して、バッファ102に図形情報を書き込む。これにより、描画装置101は、書き込むべき図形情報のデータサイズが、1つの分割領域用に用意したバッファ102のデータサイズを超えない限り、正常に描画することができるので、正常に描画可能となる確度を向上させることができる。
具体的に、図1の(A)にて、描画装置101は、2次元表示面となる描画領域DISを4つの分割領域DAR_1〜DAR_4として、各分割領域DARの画像を生成する。分割の仕方は、X座標に従って分割してもよいし、Y座標に従って分割してもよいし、X座標とY座標に従って分割してもよい。また、描画装置101は、図形情報のうちの描画対象となる図形の図形情報の記憶先となるバッファ102を有する。図1に示すバッファ102の記憶容量は、128[バイト]であるとする。この状態で、描画装置101は、図形情報GINF_1〜GINF_3を取得する。図形情報GINF_1は、描画する図形として三角形TR1の各頂点の座標を含む。また、図形情報GINF_2は、描画する図形として三角形TR2の各頂点の座標を含む。同様に、図形情報GINF_3は、描画する図形として三角形TR3の各頂点の座標を含む。図形情報GINF_1〜GINF_3のデータサイズは、32[バイト]であるとする。
次に、図1の(B)にて、描画装置101は、図形情報GINF_1〜GINF_3に基づいて、分割領域DAR_1〜DAR_4に対応して、各分割領域に描画される一部または全部の図形の図形情報を特定する。図1の(B)の例では、描画装置101は、図形情報GINF_1〜GINF_3の図形の頂点の座標位置と分割領域DAR_1の範囲とを用いて、分割領域DAR_1に描画される、三角形TR1〜TR3の図形情報GINF_1〜GINF_3を特定する。同様に、描画装置101は、分割領域DAR_2に描画される三角形TR1、TR3の図形情報GINF_1、GINF_3を特定し、分割領域DAR_3、DAR_4に描画される三角形TR1の図形情報GINF_1を特定する。
続けて、描画装置101は、図形情報GINF_1〜GINF_3のデータサイズに基づいて、分割領域DARに描画される一部または全部の図形の図形情報の合計データサイズを、分割領域DAR_1〜DAR_4に対応して算出する。たとえば、描画装置101は、分割領域DAR_1について、分割領域DAR_1に描画される三角形TR1〜TR3の図形情報GINF_1〜GINF_3の合計データサイズを、32+32+32=96[バイト]というように算出する。同様に、描画装置101は、分割領域DAR_2に描画される三角形TR1、TR3の図形情報GINF_1、GINF_3の合計データサイズを64[バイト]と算出する。さらに、描画装置101は、分割領域DAR_3、DAR_4に描画される三角形TR1の図形情報GINF_1の合計データサイズを32[バイト]と算出する。
次に、描画装置101は、バッファ102のデータ容量と、分割領域DAR_1〜DAR_4に対応して算出した図形情報の合計データサイズとに基づいて、分割領域DAR_1〜DAR_4から描画対象となる図形の描画先となる分割領域DARを選択する。図1の(B)では、分割領域DAR_1に対応して算出した図形情報の合計データサイズが96[バイト]であり、バッファ102のデータ容量128[バイト]以下であるため、描画装置101は、分割領域DAR_1を描画先の分割領域DARとして選択する。
分割領域DAR_1を選択後、描画装置101は、分割領域DAR_1に描画される図形の図形情報GINF_1〜GINF_3をバッファ102に書き込む。続けて、描画装置101は、バッファ102を参照して、分割領域DAR_1の画像を生成する。
分割領域DAR_1の画像を生成後、図1の(C)にて、描画装置101は、バッファ102に書き込めなかった分割領域DAR_2〜DAR_4について、対応する図形情報GINFをバッファ102に書き込む。以上の動作により、描画装置101は、バッファ102の記憶容量を削減するとともに、アプリから要求された三角形TR1〜TR3を正確に描画することができる。以下、実施の形態1にかかる描画装置101について図2〜図14を用いて説明する。
図2は、コンピュータシステムのハードウェア構成例を示すブロック図である。図2において、コンピュータシステム200は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、を含む。また、コンピュータシステム200は、ディスクドライブ204と、ディスク205と、通信インターフェース206と、を含む。また、コンピュータシステム200は、ディスプレイ207と、キーボード208と、マウス209と、描画装置101と、を含む。また、CPU201〜マウス209と、描画装置101とはバス210によってそれぞれ接続されている。
CPU201は、コンピュータシステム200の全体の制御を司る演算処理装置である。ROM202は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM203は、CPU201のワークエリアとして使用される揮発性メモリである。
ディスクドライブ204は、CPU201の制御に従ってディスク205に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ204には、たとえば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク205は、ディスクドライブ204の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ204が磁気ディスクドライブである場合、ディスク205には、磁気ディスクを採用することができる。また、ディスクドライブ204が光ディスクドライブである場合、ディスク205には、光ディスクを採用することができる。また、ディスクドライブ204がソリッドステートドライブである場合、ディスク205には、半導体素子メモリを採用することができる。
通信インターフェース206は、ネットワーク211と内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース206は、通信回線を通じてネットワーク211となるLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどに接続され、ネットワーク211を介して他の装置に接続される。通信インターフェース206には、たとえば、モデムやLANアダプタなどを採用することができる。
ディスプレイ207は、図1に示した描画領域DISの画像を表示する装置である。また、ディスプレイ207は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ207には、たとえば、CRT(Cathode Ray Tube)、TFT(Thin Film Transistor)液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード208は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード208は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス209は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス209は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
(描画装置101の機能構成)
次に、描画装置101の機能構成について説明する。図3は、描画装置の機能構成例を示すブロック図である。描画装置101は、座標変換部301と、図形情報分割領域選択部302と、図形情報ソート部303と、生成部304と、表示回路305と、を有する。さらに、描画装置101は、図形情報バッファ311と、図形情報バッファ312と、ラインバッファ313と、ラインデプスバッファ314と、にアクセス可能である。図1に示したバッファ102は、図形情報バッファ311と、図形情報バッファ312と、ラインバッファ313と、ラインデプスバッファ314に相当する。
座標変換部301は、読み出し部321と、頂点処理部322と、図形作成部323と、図形除去部324と、図形描画領域判定部325と、書込部326と、を含む。生成部304は、頂点読み出し部331と、頂点処理部332と、図形作成部333と、画素生成部334と、画素処理部335と、画素除去部336とを含む。
座標変換部301は、ジオメトリ処理を実行する。たとえば、座標変換部301は、図形の頂点情報VINFと図形情報以外の描画命令DCOMを受け、描画領域DISにおける図形の図形情報GINFを生成する。図形は、たとえば、三角形である。なお、図形は、三角形以外でもよい。たとえば、頂点情報VINFは、図形の各頂点の3次元座標の情報、各頂点の色の情報等を有する。頂点情報VINFの詳細は、図5にて後述する。以下、図形の各頂点の3次元座標の情報を、「図形の座標情報」とも称する。図形情報以外の描画命令DCOMは、描画領域に描画される図形に影響を与える命令である。たとえば、図形を回転する命令や、図形に画像を張り付ける命令である。
また、図形情報GINFは、図形の頂点番号と、図形の描画領域DISにおける座標位置を有する。図形の各頂点の描画領域DISにおける座標の情報を、以下、「図形の位置情報」とも称する。図形情報GINFの詳細は、図6にて後述する。
また、座標変換部301は、頂点情報VINFのうち、図形の座標情報を受け付けてもよい。そして、座標変換部301は、図形の各頂点の座標情報を用いてジオメトリ処理の一部を実行し、図形の頂点番号と、図形の描画領域DISにおける座標と、図形の表裏情報とを含む図形情報GINFを生成する。図形の頂点番号は、たとえば、図形の頂点にそれぞれ対応する番号の組である。たとえば、図形が三角形であれば、図形の頂点番号は、三角形の3つの頂点にそれぞれ対応する番号の組である。
読み出し部321は、頂点情報VINFのうちの図形の座標情報VINFcと図形情報以外の描画命令DCOMをCPU201より受け付け、座標情報VINFcと図形情報以外の描画命令DCOMを頂点処理部322に出力する。たとえば、読み出し部321は、CPU201が書き込んだ頂点情報VINFが記憶されるROM202、RAM203、ディスク205等から座標情報VINFcを読み出し、読み出した座標情報VINFcを頂点処理部322に出力する。
頂点処理部322は、座標情報VINFcと図形情報以外の描画命令DCOMとに基づいて、回転等の座標に関する頂点処理を実施する。頂点処理の結果および図形情報以外の描画命令DCOMは、図形作成部323に入力される。
図形作成部323は、頂点処理部322による頂点処理の結果と図形情報以外の描画命令DCOMとに基づいて、図形の情報に変換する。たとえば、図形が三角形の時には、図形作成部323は、三角形の3つの頂点の情報を頂点処理の結果として受け付け、頂点処理の結果を三角形の情報に変換する。これにより、座標情報VINFcに対応する図形の図形情報が生成される。
図形除去部324は、図形作成部323により生成された図形情報のうち、描画領域DISに描画されない図形の図形情報を除去する。たとえば、図形除去部324は、クリッピング処理やカリング処理を実施し、描画領域DISに描画されない図形情報を除去する。たとえば、クリッピング処理では、図形除去部324は、表示領域外の図形を除去する。また、たとえば、カリング処理では、図形除去部324は、図形の表裏判定を実行し、裏と判定した図形を除去する。なお、図形の裏を表示する設定の時には、図形除去部324は、たとえば、裏であることを示すフラグ等の表裏情報を図形情報に追加する。そして、図形除去部324は、描画領域DISに描画される図形の図形情報GINFcと図形情報以外の描画命令DCOMを図形描画領域判定部325に出力する。図形情報GINFcは、たとえば、図形の頂点番号、図形の描画領域DISにおける座標を示す図形の位置情報および図形の表裏情報を有している。
図形描画領域判定部325は、描画領域DISのうち、図形が描画される領域を、図形除去部324から受け付けた図形情報GINFcに基づいて算出する。たとえば、図形描画領域判定部325は、図形情報GINFcから、最小のX座標と最小のY座標と最大のX座標と最大のY座標とを、算出する。そして、図形描画領域判定部325は、図形が描画される領域を、(最小のX座標,最小のY座標)となる点と、(最大のX座標,最大のY座標)となる点とを頂点とする矩形領域であると判定する。また、図形描画領域判定部325は、図形情報GINFcと、図形情報以外の描画命令DCOMとを書込部326に出力する。また、図形描画領域判定部325は、図形情報GINFcと、図形情報以外の描画命令DCOMとを図形情報分割領域選択部302に出力する。
図形情報分割領域選択部302は、図形情報GINFcに基づいて、図形の描画先となる分割領域DARを選択する。また、図形情報分割領域選択部302は、図形情報GINFcと図形情報以外の描画命令DCOMとに基づいて、図形の描画先となる分割領域DARを選択してもよい。図形情報分割領域選択部302は、分割領域DARの範囲を書込部326に出力する。
また、図形情報分割領域選択部302は、全ての図形情報GINFcと全ての図形情報以外の描画命令DCOMが図形情報バッファ311に格納できなかった場合、割込通知、または図形情報以外の描画命令DCOMの読み出しリクエストをCPU201に発行する。なお、発行するタイミングとして、図形情報分割領域選択部302は、頂点読み出し部331から読み出し完了通知を受け付けた後に発行する。前述のタイミングで発行する理由としては、読み出し完了通知を受け付けた後であれば、図形情報バッファ311、図形情報バッファ312に空き容量が存在するためである。
書込部326は、図形情報分割領域選択部302によって選択された分割領域DARに描画される図形の図形情報と、図形情報以外の描画命令DCOMを、図形情報バッファ311に書き込む。具体的に、書込部326は、図形情報GINFcのうちの図形情報分割領域選択部302から出力された分割領域DARに描画しない図形情報GINFcを除去する。そして、書込部326は、除去されなかった図形情報GINFcと図形情報以外の描画命令DCOMを図形情報バッファ311に書き込む。
図形情報ソート部303は、図形情報バッファ311に格納された図形情報GINFcをソートして、ソート結果を、図形情報バッファ312に格納する。
生成部304は、レンダリング処理を実施する。たとえば、生成部304は、図形情報バッファ312に格納された図形情報GINFcと図形情報以外の描画命令DCOMとに基づいて、分割領域DARの画像データGDATAを生成する。画像データGDATAには、たとえば、画素の色の情報等が含まれる。なお、生成部304は、ジオメトリ処理およびレンダリング処理の両方を実施してもよい。
たとえば、座標変換部301が頂点情報VINFのうちの図形の座標情報VINFcを受け付けたときには、生成部304は、図形情報バッファ312に格納された図形情報GINF内の頂点番号に対応する頂点情報VINFを取得する。そして、生成部304は、取得した頂点情報VINFを用いてジオメトリ処理およびレンダリング処理を実行し、分割領域DARの画像データGDATAを生成する。
ラインバッファ313は、生成部304により生成された画像データGDATAを記憶する。具体的に、ラインバッファ313は、描画領域DISを分割した各分割領域DARの1つの分割領域DAR分の画像データGDATAを記憶する。したがって、本実施の形態にかかる描画装置101は、ラインバッファ313のメモリサイズを、描画領域DISの全体の画素の画像データを記憶するフレームバッファに比べて小さくすることができる。
ラインデプスバッファ314は、画素の奥行きを記憶する。たとえば、生成部304が画像データGDATAを生成する際に、設定情報およびラインデプスバッファ314に記憶されたZ値等を参照する。設定情報は、たとえば、図形の変換行列、反射率等の素材情報および光源の位置情報等である。表示回路305は、ラインバッファ313から画像データGDATAを順次読み出し、描画領域DISに画像を表示する。
頂点読み出し部331は、図形情報バッファ312から図形情報GINFcと図形情報以外の描画命令DCOMを取得する。そして、頂点読み出し部331は、図形情報GINF内の頂点番号に対応する頂点情報VINFaを、頂点情報VINFaが記憶されたROM202、RAM203、ディスク205等から読み出す。頂点読み出し部331により読み出される頂点情報VINFaは、たとえば、図形の各頂点の3次元座標の座標情報、各頂点の色の情報、テクスチャ座標の情報および法線ベクトルの情報等を有する。頂点読み出し部331は、読み出した頂点情報VINFaと、取得した図形情報以外の描画命令DCOMを頂点処理部332に出力する。
頂点処理部332は、頂点情報VINFaと図形情報以外の描画命令DCOMに基づいて頂点処理を実行する。頂点処理部332により実施される頂点処理には、たとえば、回転等の座標に関する処理、ライティング、各頂点の色の計算、テクスチャ座標の計算および各頂点の法線ベクトルの計算等が含まれる。頂点処理の結果と図形情報以外の描画命令DCOMとは、図形作成部333に入力される。
図形作成部333は、頂点処理部332による頂点処理の結果と図形情報以外の描画命令DCOMとに基づいて、図形情報に変換する。たとえば、図形作成部333は、図形が三角形である場合、三角形の3つの頂点の情報を頂点処理の結果として受け付けて、頂点処理の結果を三角形の情報に変換する。図形作成部333は、図形情報と図形情報以外の描画命令DCOMを画素生成部334に出力する。図形作成部333から出力される図形情報は、たとえば、描画領域DISにおける座標である図形の位置情報、図形の各辺の式の情報、色の情報、テクスチャ座標の情報、法線ベクトルの情報およびZ方向の情報等を有する。
画素生成部334は、図形作成部333から受け付けた図形情報と図形情報以外の描画命令DCOMに基づいて、画素情報を生成する。そして、画素生成部334は、画素情報を画素処理部335に出力する。
画素処理部335は、画素生成部334から受け付けた画素情報に基づいて、色の計算やテクスチャ座標の計算等を画素単位で実行する。なお、画素生成部334、画素処理部335等は、分割領域DARの画素情報を生成する際に、図形情報以外の描画命令DCOMにより設定される、分割領域DARに関する設定情報等を参照する。設定情報は、たとえば、図形の変換行列、反射率等の素材情報および光源の位置情報等である。
画素除去部336は、画素処理部335により処理された画素情報のうち、描画領域DISに描画されない画素情報を除去する。たとえば、画素除去部336は、ラインデプスバッファ314に記憶されるZ値に基づいてZテストを実行して、描画されない画素情報を除去する。なお、除去されずに残った画素情報は、描画対象の分割領域DARの画像データGDATAに対応する。画素除去部336は、分割領域DARの画像データGDATAをラインバッファ313に記憶する。
図4は、図形情報分割領域選択部の詳細を示すブロック図である。図形情報分割領域選択部302は、取得部401と、特定部402と、算出部403と、選択部404と、を含む。また、描画装置101は、図形情報サイズリスト411にアクセス可能である。図形情報サイズリスト411は、描画装置101が有するレジスタ等により形成される。
取得部401は、描画領域DISに描画される図形の頂点の座標位置を含む図形情報GINFを取得する。また、取得部401は、描画領域DISに描画される図形に影響を与える命令DCOMを取得してもよい。なお、取得した図形情報GINFや命令DCOMは、描画装置101が有するレジスタ等に格納される。
特定部402は、取得部401によって取得された図形情報GINFに基づいて、描画領域を分割した分割領域群のうちの各々の分割領域DARに対応して、各々の分割領域DARに描画される一部または全部の図形の図形情報GINFを特定する。なお、各々の分割領域DARに対応して特定した図形情報GINFの識別情報等が、描画装置101が有するレジスタ等に格納される。
算出部403は、図形情報GINFのデータサイズに基づいて、特定部402によって特定された各々の分割領域DARに描画される一部または全部の図形の図形情報GINFの合計データサイズを、各々の分割領域に対応して算出する。たとえば、算出部403は、図形情報GINFの合計データサイズを単に合算してもよいし、図形情報GINFのそれぞれが満たすアラインメントに基づくデータサイズを合算してもよい。たとえば、図形情報GINFが可変長であり、4[バイト]アラインメントに従って描画装置101のレジスタに記憶するとする。このとき、ある描画領域DARに描画される図形情報GINF_1が3[バイト]であり、図形情報GINF_2が4[バイト]であれば、算出部403は、図形情報GINFの合計データサイズを4*2=8[バイト]として算出する。
また、算出部403は、取得部401によって取得された命令DCOMに基づいて、命令の合計データサイズを算出してもよい。算出結果は、図形情報サイズリスト411に格納される。
選択部404は、次に示す情報に基づいて、分割領域群GINFから描画対象となる図形の描画先となる分割領域DARを選択する。以下の情報とは、取得部401によって取得された図形情報のうちの図形情報バッファ311のデータ容量と、算出部403によって各々の分割領域GINFに対応して算出された図形情報の合計データサイズとである。具体的な分割領域DARの選択として、たとえば、分割領域DAR_1〜DAR_4がある状態で、選択部404は、分割領域DAR_1に描画される図形情報GINFが図形情報バッファ311のデータ容量を超えなければ、分割領域DAR_1を選択する。このように、選択部404は、分割領域DAR_1、DAR_2、…の順に分割領域DARを選択してもよいし、分割領域DAR_4、DAR_3、…の順に分割領域DARを選択してもよい。
また、選択部404は、図形情報バッファ311のデータ容量と、図形情報GINFの合計データサイズと、命令DCOMの合計データサイズとに基づいて、分割領域群GINFから描画対象となる図形の描画先となる分割領域を選択してもよい。
また、選択部404は、次に示す情報に基づき分割領域群DARのうちの描画先となる分割領域DARと前述の分割領域DARに含まれる分割領域DARとを除く残余の分割領域DARから描画対象となる図形の新たな描画先となる分割領域DARを選択してもよい。次に示す情報とは、図形情報バッファ311のデータ容量と、算出部403によって各々の分割領域に対応して算出された合計データサイズとである。選択結果は、描画装置101が有するレジスタ等に格納される。
また、図3に示した書込部326は、選択部404によって選択された描画先となる分割領域DARに描画される図形の図形情報GINFを図形情報バッファ311に書き込む。また、書込部326は、命令DCOMと選択部404によって選択された描画先となる分割領域に描画される図形の図形情報とを図形情報バッファ311に書き込んでもよい。また、書込部326は、生成部304によって描画先となる分割領域の画像が生成された結果、選択部404によって選択された新たな描画先となる分割領域に描画される図形の図形情報を図形情報バッファ311に書き込んでもよい。
また、図3に示した生成部304は、書込部326によって図形情報バッファ311に書き込まれた図形情報GINFに基づいて、描画先となる分割領域DARの画像を生成する。また、生成部304は、書込部326によって図形情報バッファ311に書き込まれた図形情報GINFに基づいて、新たな描画先となる分割領域DARの画像を生成してもよい。
図5は、頂点情報の記憶内容の一例を示す説明図である。頂点情報VINFは、図形ごとに図形の座標情報と、各頂点の色の情報と、を有する。また、頂点情報VINFは、テクスチャ座標の情報と、法線ベクトルの情報等を含んでもよい。たとえば、図5に示す頂点情報VINFは、レコード501−1−1〜レコード501−2−3を有する。たとえば、レコード501−1−1〜レコード501−1−3は、三角形TR1の頂点11、頂点12、頂点13のそれぞれの座標情報と、色の情報を示す。
また、頂点情報VINFは、たとえば、ROM202、RAM203、ディスク205に記憶される。なお、頂点情報VINFの座標情報は、たとえば、2次元座標の情報でもよい。
図6は、実施の形態1にかかる図形情報の記憶内容の一例を示す説明図である。図形情報GINFは、図形の頂点番号と、図形の描画領域DISにおける頂点の座標と、を含む。また、図形情報GINFは、図形の各辺の式の情報、色の情報、テクスチャ座標の情報、法線ベクトルの情報およびZ方向の情報、図形の表裏情報を有してもよい。
図形の各辺の式は、図形が三角形であれば、三辺の式となる。Z方向の情報は、奥行きの情報である。なお、図形情報GINF内の色、テクスチャ座標および法線ベクトル等の各情報は、たとえば、X方向の増分に対する値の変化量、Y方向の増分に対する値の変化量およびオフセット値を有する。具体的に、図形情報GINF内の色の情報は、X方向の増分に対する色の変化量、Y方向の増分に対する色の変化量およびオフセット値を有する。
たとえば、図6に示す図形情報GINFは、レコード601−1を有する。レコード601−1は、三角形TR1の頂点11、頂点12、頂点13の頂点番号と、描画領域DISにおける頂点11、頂点12、頂点13の座標を示す。
図7は、図形情報サイズリストの記憶内容の一例を示す説明図である。図形情報サイズリスト411は、図形情報のデータサイズと、図形情報以外の描画命令のデータサイズと、合計データサイズと、いう3つの項目を有する。
図形情報のデータサイズ項目は、分割領域の位置と、分割領域に描画される図形情報のデータサイズとを記憶するサブ項目を有する。図7で示す図形情報のデータサイズ項目は、レコード701−1〜レコード701−8を有する。分割領域の位置サブ項目には、対象の分割領域を一意に特定する情報が格納される。実施の形態1では、描画領域DISをY座標に従って重複しないように分割するため、Y座標の値により、分割領域DARを一意に特定することができる。以下の説明において、Y=0〜59[画素]の分割領域DARを、分割領域DAR_1とする。同様に、Y=60〜119[画素]の分割領域DARを、分割領域DAR_2とし、…、Y=420〜479[画素]の分割領域DARを、分割領域DAR_8とする。分割領域に描画される図形情報のデータサイズ項目には、対象の分割領域DARに描画される図形情報GINFのデータサイズの累計が格納される。
図形情報以外の描画命令のデータサイズ項目には、図形情報以外の描画命令DCOMのデータサイズが格納される。図形情報以外の描画命令DCOMは、たとえば、図形を回転する命令や、図形に画像を張り付ける命令である。図7で示す図形情報以外の描画命令のデータサイズ項目は、レコード702を有する。
合計データサイズ項目には、分割領域に描画される図形情報のデータサイズの合計と、図形情報以外の描画命令のデータサイズと、を合計した値が格納される。図7にて示す図形情報以外の描画命令の合計データサイズ項目は、レコード703を有する。
次に、図8〜図11を用いて、頂点情報VINFや図形情報以外の描画命令DCOMを受け付けた際の図形情報サイズリスト411の更新例について説明する。
図8は、実施の形態1にかかる図形情報サイズリストの更新例を示す説明図(その1)である。図8に示す図形情報サイズリスト411は、描画装置101が、Y座標の最小値が32[画素]であり、Y座標の最大値が150[画素]である、データサイズが32[バイト]の図形情報GINFを取得して、図形情報サイズリスト411を更新した状態である。具体的に、描画装置101は、取得した図形情報GINFが描画される、下記3つの分割領域DARに描画される図形情報のデータサイズ項目の値に、32[バイト]を追加する。3つの分割領域DARは、Y=0〜59[画素]の分割領域DAR_1と、Y=60〜119[画素]の分割領域DAR_2と、Y=120〜179[画素]の分割領域DAR_3とである。また、描画装置101は、合計データサイズ項目に、各分割領域に描画される図形情報のデータサイズの合計となる32+32+32=96[バイト]と、図形情報以外の描画命令のデータサイズとなる0[バイト]の合計した値96[バイト]を格納する。なお、各分割領域に描画される図形情報のデータサイズの合計を記憶するレジスタがあってもよい。
図9は、実施の形態1にかかる図形情報サイズリストの更新例を示す説明図(その2)である。図9に示す図形情報サイズリスト411は、描画装置101が、CPU201から発行される全ての頂点情報VINFと、図形情報以外の描画命令DCOMを取得して、図形情報サイズリスト411を更新した状態である。描画装置101は、合計データサイズ項目の値と、図形情報バッファ311の記憶容量とを比較して、取得した図形情報GINFおよび図形以外の描画命令の全てが、図形情報バッファ311に書き込めるか否かを判断する。
図9の例では、図形情報バッファ311に書き込み可能な記憶容量が1024[バイト]であり、合計データサイズ項目の値が、1472[バイト]である。したがって、描画装置101は、取得した図形情報GINFおよび図形以外の描画命令の全てが図形情報バッファ311に書き込めず、オーバーフローしたと判断する。図10にて、オーバーフローした場合の処理について説明する。なお、取得した図形情報GINFおよび図形以外の描画命令の全てが図形情報バッファ311に書き込めて、オーバーフローしない場合、描画装置101は、取得した図形情報GINFおよび図形以外の描画命令の全てを図形情報バッファ311に書き込む。
図10は、実施の形態1にかかる図形情報サイズリストの更新例を示す説明図(その3)である。描画装置101は、1024[バイト]に収まる図形情報GINFが描画される分割領域DARを選択する。まず、図形情報以外の描画命令DCOMを実行しないとアプリの期待通りの描画とならないため、描画装置101は、図形情報以外の描画命令DCOMを書き込む領域を確保する。
具体的に、描画装置101は、図形情報バッファ311の1024[バイト]から、図形情報以外の描画命令DCOMのデータサイズ256[バイト]を減算する。減算結果となる768[バイト]が図形情報GINFを書き込める領域となる。次に、描画装置101は、768[バイト]に書き込める図形情報GINFが描画される分割領域DARを選択する。図10の例では、描画装置101は、分割領域DAR_1と、分割領域DAR_2とを選択する。続けて、描画装置101は、選択した分割領域DAR_1と、分割領域DAR_2とに描画される図形の図形情報GINFを、図形情報バッファ311に書き込む。次に、図形情報GINFが書き込めなかった分割領域DAR_3〜DAR8について、図11を用いて説明する。
図11は、実施の形態1にかかる図形情報サイズリストの更新例を示す説明図(その4)である。描画装置101は、書き込めた分割領域DAR_1、DAR_2に描画される図形情報のデータサイズ項目を0に設定し、書き込めなかった分割領域DAR_3〜DAR_8に描画される図形情報のデータサイズ項目の値を、書き込んだデータサイズ分減算する。具体的に、描画装置101は、レコード701−1とレコード701−2の分割領域に描画される図形情報のデータサイズ項目を0[バイト]に設定する。また、描画装置101は、レコード701−3〜レコード701−8の分割領域に描画される図形情報のデータサイズ項目の値から、640[バイト]減算する。
残った図形情報GINFは、レコード701−8が示すとおり、576[バイト]であり、図形情報バッファ311に書き込める記憶容量は、図形情報以外の描画命令DCOMのデータサイズを除いた768[バイト]である。したがって、描画装置101は、Y=0〜119の分割領域DAR_1、DAR_2に描画される図形の図形情報GINFの読み出した後、Y=120〜479の分割領域DAR_3〜DAR_8に描画される図形情報GINFを図形情報バッファ311に書き込む。次に、図12〜図14を用いて、実施の形態1にかかる描画処理のフローチャートを示す。
図12は、実施の形態1にかかる描画処理手順の一例を示すフローチャート(その1)である。また、図13は、実施の形態1にかかる描画処理手順の一例を示すフローチャート(その2)である。描画処理は、CPU201から頂点情報VINFと図形情報以外の描画命令DCOMを取得して、画像を生成する処理である。
描画装置101は、図形情報以外の描画命令DCOMおよび頂点情報VINFのうちの少なくともいずれか一方を取得する(ステップS1201)。次に、描画装置101は、図形情報以外の描画命令DCOMか、頂点情報VINFかのいずれか一方を選択する(ステップS1202)。図13に示すステップS1304、またはステップS1202の処理終了後、描画装置101は、選択した情報を確認する(ステップS1203)。
選択した情報が頂点情報VINFである場合(ステップS1203:頂点情報)、描画装置101は、頂点情報VINFから、図形情報GINFを生成する(ステップS1204)。続けて、描画装置101は、先頭の分割領域DARを選択する(ステップS1205)。次に、描画装置101は、生成した図形情報GINFの図形の一部または全部が選択した分割領域DARに描画されるか否かを判断する(ステップS1206)。生成した図形情報GINFの図形の一部または全部が選択した分割領域DARに描画される場合(ステップS1206:Yes)、描画装置101は、図形情報サイズリスト411のうちの選択した分割領域に描画される図形情報のデータサイズ項目の値を更新する(ステップS1207)。続けて、描画装置101は、合計データサイズ項目を更新する(ステップS1208)。
ステップS1208の処理終了後、または、生成した図形情報GINFの図形が選択した分割領域DARに描画されない場合(ステップS1206:No)、描画装置101は、全ての分割領域DARを選択したか否かを判断する(ステップS1209)。未選択の分割領域DARがある場合(ステップS1209:No)、描画装置101は、次の分割領域DARを選択する(ステップS1210)。ステップS1210の処理終了後、描画装置101は、ステップS1206の処理に移行する。
図形情報以外の描画命令DCOMが選択された場合(ステップS1203:図形情報以外の描画命令)、描画装置101は、図形情報以外の描画命令のデータサイズ項目を更新する(ステップS1211)。次に、描画装置101は、合計データサイズ項目を更新する(ステップS1212)。
ステップS1212の処理終了後、または、全ての分割領域DARを選択した場合(ステップS1209:Yes)、描画装置101は、図13のステップS1301の処理に移行する。
ステップS1212の処理終了後、または、ステップS1209:Yesの場合、描画装置101は、合計データサイズ項目の値がオーバーフローしたか否かを判断する(ステップS1301)。合計データサイズ項目の値がオーバーフローしない場合(ステップS1301:No)、描画装置101は、図形情報バッファ311に図形情報以外の描画命令DCOMまたは図形情報GINFを書き込む(ステップS1302)。
ステップS1302の処理終了後、または合計データサイズ項目の値がオーバーフローした場合(ステップS1301:Yes)、描画装置101は、取得した全ての図形情報以外の描画命令DCOMと全ての頂点情報VINFとを選択したか否かを判断する(ステップS1303)。未選択の図形情報以外の描画命令DCOM、または未選択の頂点情報VINFがある場合(ステップS1303:No)、描画装置101は、次の図形情報以外の描画命令DCOMか、頂点情報VINFかのいずれか一方を選択する(ステップS1304)。ステップS1304の処理終了後、描画装置101は、ステップS1203の処理に移行する。
全ての図形情報以外の描画命令DCOMと全ての頂点情報VINFを選択した場合(ステップS1303:Yes)、描画装置101は、合計データサイズ項目の値がオーバーフローしたか否かを判断する(ステップS1305)。合計データサイズ項目の値がオーバーフローした場合(ステップS1305:Yes)、描画装置101は、オーバーフロー時の描画処理を実行する(ステップS1306)。オーバーフロー時の描画処理の詳細については、図14にて後述する。ステップS1306の処理終了後、描画装置101は、描画処理を終了する。
合計データサイズ項目の値がオーバーフローしない場合(ステップS1305:No)、描画装置101は、既に全ての図形情報以外の描画命令DCOMと全ての頂点情報VINFより生成された図形情報GINFを図形情報バッファ311に格納したため、描画処理を終了する。描画処理を実行することにより、描画装置101は、取得した全ての図形情報以外の描画命令DCOMと全ての頂点情報VINFより生成された図形情報GINFを図形情報バッファ311に格納することができる。
図14は、実施の形態1にかかるオーバーフロー時の描画処理手順の一例を示すフローチャートである。オーバーフロー時の描画処理は、取得した全ての図形情報以外の描画命令DCOMと全ての頂点情報VINFの合計データサイズが、図形情報バッファ311のデータ容量を超えた場合の描画処理である。
描画装置101は、図形情報バッファ311のデータ容量と図形情報サイズリスト411とから、図形情報バッファ311に書き込める図形情報GINFの図形が描画される分割領域DAR群を選択する(ステップS1401)。次に、描画装置101は、全ての図形情報以外の描画命令DCOMおよび全ての頂点情報VINFを取得する(ステップS1402)。続けて、描画装置101は、図形情報以外の描画命令DCOMか頂点情報VINFのいずれか一方を選択する(ステップS1403)。
ステップS1403、またはステップS1414の処理終了後、描画装置101は、選択した情報を確認する(ステップS1404)。頂点情報VINFを選択した場合(ステップS1404:頂点情報)、描画装置101は、頂点情報VINFから、図形情報GINFを生成する(ステップS1405)。続けて、描画装置101は、選択した分割領域DAR群のうちの、先頭の分割領域DARを選択する(ステップS1406)。次に、描画装置101は、生成した図形情報GINFの図形の一部または全部が選択した分割領域DARに描画されるか否かを判断する(ステップS1407)。生成した図形情報GINFの図形の一部または全部が選択した分割領域DARに描画される場合(ステップS1407:Yes)、描画装置101は、図形情報バッファ311に生成した図形情報GINFを書き込む(ステップS1408)。
ステップS1408の処理終了後、または、生成した図形情報GINFの図形が選択した分割領域DARに描画されない場合(ステップS1407:No)、描画装置101は、選択した分割領域DAR群の全てを選択したか否かを判断する(ステップS1409)。未選択の分割領域DARがある場合(ステップS1409:No)、描画装置101は、次の分割領域DARを選択する(ステップS1410)。ステップS1410の処理終了後、描画装置101は、ステップS1407の処理に移行する。
選択した分割領域DAR群の全てを選択した場合(ステップS1409:Yes)、描画装置101は、図形情報のデータサイズ項目の値から書き込んだ図形情報のデータサイズを減算した値で、図形情報のデータサイズ項目の値を更新する(ステップS1411)。ステップS1411の処理は、図11にて示した処理を行う。
また、選択した情報が図形情報以外の描画命令DCOMである場合(ステップS1404:図形情報以外の描画命令)、描画装置101は、図形情報バッファ311に図形情報以外の描画命令DCOMを書き込む(ステップS1412)。
ステップS1411、またはステップS1412の処理終了後、描画装置101は、取得した全ての図形情報以外の描画命令DCOMと全ての頂点情報VINFとを選択したか否かを判断する(ステップS1413)。図形情報以外の描画命令DCOMと頂点情報VINFのうち未選択の情報がある場合(ステップS1413:No)、描画装置101は、次の図形情報以外の描画命令DCOMか、頂点情報VINFかのいずれか一方を選択する(ステップS1414)。ステップS1414の処理実行後、描画装置101は、ステップS1404の処理に移行する。
全ての図形情報以外の描画命令DCOMと全ての頂点情報VINFとを選択した場合(ステップS1413:Yes)、描画装置101は、続けて、選択した分割領域DAR群の全てを選択したか否かを判断する(ステップS1415)。選択した分割領域DAR群のうち未選択の分割領域DARがある場合(ステップS1415:No)、描画装置101は、ステップS1401の処理に移行する。選択した分割領域DAR群を全て選択した場合(ステップS1415:Yes)、描画装置101は、オーバーフロー時の描画処理を終了する。オーバーフロー時の描画処理を実行することにより、描画装置101は、オーバーフローする場合でも、全ての図形情報以外の描画命令DCOMと全ての図形情報GINFを図形情報バッファ311に書き込むことができる。
以上説明したように、実施の形態1にかかる描画装置101によれば、描画領域DISを分割した各分割領域DARに描画される図形を特定する。続けて、描画装置101は、図形の図形情報GINFのデータ量に基づいて、バッファ102から溢れないように選択した分割領域DARの図形情報をバッファに書き込む。これにより、描画装置101は、バッファ102の記憶容量を削減するとともに、アプリから要求された図形を正確に描画することができる。たとえば、描画領域DISの上半分に図形情報GINFが固まったとする。このとき、描画装置101は、描画領域DISの上半分を細分化した分割領域DARごとに図形情報GINFを書き込み、描画領域DISの下半分の分割領域DAR1回分の図形情報GINFを書き込む。このように、描画装置101は、図形情報GINFが描画される領域が固まっても、正常に描画可能となる確度を向上させることができる。
たとえば、描画装置101に含まれる記憶容量は、全体で256[キロバイト]程度に抑えることができる。具体的に、描画装置101の開発者は、図形情報バッファ311と図形情報バッファ312の記憶容量を96[キロバイト]に指定するとともに、ラインバッファ313とラインデプスバッファ314とを30[キロバイト]に指定する。
また、描画装置101によれば、図形情報以外の描画命令DCOMの合計データサイズを算出し、図形情報以外の描画命令DCOMと図形の図形情報GINFのデータ量とに基づいて、図形情報バッファ311から溢れない分割領域DARを選択してもよい。これにより、描画装置101は、図形情報以外の描画命令DCOMを優先して図形情報バッファ311に書き込むことにより、アプリの期待通りの描画が行えるとともに、図形情報バッファ311の記憶容量を削減することができる。
また、描画装置101によれば、描画領域DISのうち、選択済の分割領域DARと、選択済の分割領域DARに含まれる分割領域DARと、を除く残余の分割領域から、新たな描画先となる分割領域を選択してもよい。これにより、描画装置101は、そのまま図形情報GINFを書き込むと図形情報バッファ311がオーバーフローしてしまう場合にも、選択済の分割領域DARの画像が生成された後に、残りの図形情報GINFを書き込むことになり、正常に描画可能となる確度を向上させることができる。
(実施の形態2)
実施の形態1にかかる描画装置101は、描画領域DISをそれぞれが重複しないように分割した。この場合、複数の分割領域DARに跨って描画される図形の図形情報GINFがある場合、分割領域DARごとに、図形情報GINFが複製されることになり、図形情報バッファ311に冗長な情報が格納されてしまう。そこで、実施の形態2にかかる描画装置101は、描画領域DISを、1つの分割領域DARが他の分割領域DARに含まれるように分割する。これにより、複数の分割領域DARに跨る図形情報GINFがあっても、各分割領域DARに描画される図形の図形情報GINFが複製されることを抑制することができ、図形情報バッファ311に冗長な情報が格納されることを減らすことができる。以下、実施の形態2にかかる描画装置101について、図15〜図21を用いて説明する。なお、実施の形態1において説明した箇所と同様の箇所については、同一符号を付して図示および説明を省略する。
また、図4にて説明した図形情報分割領域選択部302の特定部402と、選択部404の機能とは、実施の形態1から変更する。変更する部分について以下に説明する。
実施の形態2にかかる特定部402は、次に示す情報に基づいて、第1および第2の分割領域DARを含む分割領域群のうちの各々の分割領域DARに対応して各々の分割領域DARに描画される一部または全部の図形の図形情報GINFを特定する。次に示す情報とは、取得部401によって取得された図形情報GINFである。第1の分割領域DARは、描画領域DISの一部である。第2の分割領域DARは、描画領域DISの一部または全部であり第1の分割領域を含み第1の分割領域より大きい。
実施の形態2にかかる選択部404は、次に示す情報に基づいて、描画先となる分割領域の候補が第1の分割領域と第2の分割領域となる場合、第2の分割領域を図形の描画先となる分割領域として選択する。次に示す情報とは、図形情報バッファ311のデータ容量と、算出部403によって第1の分割領域に対応して算出された図形情報の合計データサイズと、算出部403によって第2の分割領域に対応して算出された図形情報の合計データサイズである。
図15は、実施の形態2にかかる図形情報の記憶内容の一例を示す説明図である。実施の形態2にかかる図形情報GINF2は、図形の開始位置と、図形の終了位置と、図形の頂点番号とを含む。また、図形情報GINF2は、図形の各辺の式の情報、色の情報、テクスチャ座標の情報、法線ベクトルの情報およびZ方向の情報、図形の表裏情報を有してもよい。実施の形態2では、描画領域DISをY座標に従って分割するため、図形の開始位置および図形の終了位置は、Y座標の値を記憶する。描画領域DISをX座標に従って分割するならば、図形の開始位置および図形の終了位置は、X座標の値を記憶する。
たとえば、図15に示す図形情報GINF2は、レコード1501−1を有する。レコード1501−1は、描画領域DISにおけるY方向の開始位置が160[画素]であり、Y方向の終了位置が250[画素]であり、三角形TR1の頂点11、頂点12、頂点13の頂点番号を記憶する。
次に、図15に示す図形情報GINF2を用いて、図形情報サイズリスト411の更新の一例について、図16〜図18を用いて説明する。
図16は、実施の形態2にかかる図形情報サイズリストの更新例を示す説明図(その1)である。図16で示す図形情報のデータサイズ項目は、レコード1601−1〜レコード1601−8を有する。また、図形情報以外の描画命令のデータサイズ項目は、レコード1602を有する。図16で示す合計データサイズ項目は、レコード1603を有する。
レコード1601−1は、Y=0〜59[画素]の分割領域DAR_1と、1つ目の分割領域DARに描画される図形情報GINF2のデータサイズを記憶する。また、レコード1601−2は、Y=0〜119[画素]の分割領域DAR_1_2と、2つ目の分割領域DARに描画される図形情報GINF2のデータサイズを記憶する。このように、レコード1601−2が示す分割領域DAR1_2は、分割領域DAR_1を含む。たとえば、前述した、第1の分割領域DARが分割領域DAR_1となり、第2の分割領域DARが分割領域DAR_2となる。
たとえば、図15にて示したレコード1501−1で示す図形情報GINF2を取得し、レコード1501−1のデータサイズが32[バイト]であるとする。レコード1501−1のY座標の開始位置が160[画素]であるため、描画装置101は、レコード1601−3〜レコード1601−8が示す分割領域に描画される図形情報のデータサイズ項目の値を、32[バイト]追加する。また、描画装置101は、合計データサイズ項目に、各分割領域に描画される図形情報のデータサイズの合計となる32[バイト]と、図形情報以外の描画命令のデータサイズとなる0[バイト]との合計した値32[バイト]を格納する。
なお、各分割領域DARに描画される図形情報GINF2のデータサイズの合計は、レコード1601−8の分割領域DAR_1_8に描画される図形情報のデータサイズ項目の値と同一である。したがって、各分割領域DARに描画される図形情報のデータサイズを記憶するレジスタは、無くてもよい。
図17は、実施の形態2にかかる図形情報サイズリストの更新例を示す説明図(その2)である。図17に示す図形情報サイズリスト411は、描画装置101が、CPU201から発行される全ての頂点情報VINFと、図形情報以外の描画命令DCOMを取得して、図形情報サイズリスト411を更新した状態である。
描画装置101は、合計データサイズ項目の値と、図形情報バッファ311の記憶容量とを比較して、取得した図形情報GINF2および図形以外の描画命令の全てが、図形情報バッファ311に書き込めるか否かを判断する。図17の例では、図形情報バッファ311に書き込み可能な記憶容量が1024[バイト]であり、合計データサイズ項目の値が、1472[バイト]である。したがって、描画装置101は、取得した図形情報GINF2および図形情報以外の描画命令DCOMの全てが図形情報バッファ311に書き込めず、オーバーフローしたと判断する。
オーバーフローしたと判断した場合、描画装置101は、1024[バイト]に収まる図形情報GINF2が描画される分割領域DARを選択する。まず、図形情報以外の描画命令DCOMを実行しないと期待通りの描画とならないため、描画装置101は、図形情報以外の描画命令DCOMを書き込む領域を確保する。具体的に、描画装置101は、図形情報バッファ311の1024[バイト]から、図形情報以外の描画命令のデータサイズ項目の値256[バイト]を減算する。減算結果となる768[バイト]が図形情報GINF2を書き込める領域となる。
次に、描画装置101は、768[バイト]に書き込む図形情報GINF2の図形が描画される分割領域DARを選択する。図17に示す図形情報サイズリスト411を参照すると、レコード1601−6が示す分割領域DAR_1_6に描画される図形情報のデータサイズの値が768[バイト]である。したがって、描画装置101は、図形情報バッファ311に、書き込む図形情報GINF2の図形が描画される分割領域DARを、レコード1601−6が示す分割領域DAR_1_6に選択する。次に、対応する図形情報GINF2が書き込めなかった分割領域DAR_7と分割領域DAR_8について、図18を用いて説明する。
図18は、実施の形態2にかかる図形情報サイズリストの更新例を示す説明図(その3)である。図18では、描画される図形情報GINF2が書き込めなかったY=360〜479[画素]の分割領域DAR_7と分割領域DAR_8について、分割領域に描画される図形情報のデータサイズ項目の値を更新する。具体的に、描画装置101は、レコード1601−7に示す分割領域DAR_7に描画される図形情報のデータサイズ項目を、1024[バイト]から、書き込んだデータサイズ768[バイト]を減算した値256[バイト]で更新する。同様に、描画装置101は、レコード1601−8に示す分割領域_7_8に描画される図形情報のデータサイズ項目を、1152[バイト]から、書き込んだデータサイズ768[バイト]を減算した値384[バイト]で更新する。
図18で示すとおり、残った図形情報GINF2のデータサイズは、384[バイト]であり、図形情報バッファ311に書き込める記憶容量は、図形情報以外の描画命令のデータサイズを除いた768[バイト]である。したがって、描画装置101は、Y=0〜359の分割領域DAR_1_6の画像が生成された後、レコード1601−8が示すY=360〜479の分割領域DAR_7_8に描画される図形の図形情報GINF2を図形情報バッファ311に書き込む。次に、図19〜図21を用いて、実施の形態2にかかる描画処理のフローチャートを示す。
図19は、実施の形態2にかかる描画処理手順の一例を示すフローチャート(その1)である。また、実施の形態2にかかる描画処理手順の一例を示すフローチャート(その2)は、実施の形態1にかかる描画処理と同一であるため、説明を省略する。また、図19に示すステップS1901〜ステップS1904、ステップS1911の処理については、図12に示したステップS1201〜ステップS1204、ステップS1211と同一の処理であるため、説明を省略する。
描画装置101は、変数ymaxに所定値を設定する(ステップS1905)。ここで、所定値は、コンピュータシステム200、または描画装置101の開発者によって設定される値であり、描画領域DISを、重複しないように分割した際の分割領域DARの大きさとなる。たとえば、描画領域DISが横640[画素]×縦480[画素]であり、描画領域DISをY座標に従って8分割した場合、所定値は、480/8=60となる。
次に、描画装置101は、Y=0〜ymaxの分割領域DARを選択する(ステップS1906)。続けて、描画装置101は、生成した図形情報GINF2の図形の一部または全部が選択した分割領域DARに描画されるか否かを判断する(ステップS1907)。具体的に、描画装置101は、図形情報GINF2の図形の開始位置項目がymaxより小さい、または図形情報GINF2の図形の終了位置項目が0より大きい場合、図形情報GINF2の図形の一部または全部が選択した分割領域DARに描画されると判断する。
生成した図形情報GINF2の図形の一部または全部が選択した分割領域DARに描画される場合(ステップS1907:Yes)、描画装置101は、図形情報サイズリスト411のうちの選択した分割領域DARに描画される図形情報のデータサイズ項目の値を更新する(ステップS1908)。
ステップS1908の実行終了後、または生成した図形情報GINF2の図形が選択した分割領域DARに描画されない場合(ステップS1907:No)、描画装置101は、描画領域DIS全てとなる分割領域DARを選択したか否かを判断する(ステップS1909)。描画領域DISの中に分割領域DARに含まれない領域がある場合(ステップS1909:No)、描画装置101は、ymaxに、所定値を加算する(ステップS1910)。ステップS1910の処理実行後、描画装置101は、ステップS1906の処理に移行する。
また、ステップS1911の処理実行後、または、描画領域DIS全てとなる分割領域DARを選択した場合(ステップS1909:Yes)、描画装置101は、合計データサイズ項目を更新する(ステップS1912)。ステップS1912の処理実行後、描画装置101は、図13に示したステップS1301の処理に移行する。
図20は、実施の形態2にかかるオーバーフロー時の描画処理手順の一例を示すフローチャート(その1)である。また、図21は、実施の形態2にかかるオーバーフロー時の描画処理手順の一例を示すフローチャート(その2)である。図20にて示すステップS2002〜ステップS2005と、ステップS2009の処理は、図14にて示したステップS1402〜ステップS1405と、ステップS1412と同一の処理であるので、説明を省略する。
描画装置101は、変数OverYに0を設定する(ステップS2001)。変数OverYは、オーバーフローして、書き込めなかった分割領域DARのY座標の最小値を示す変数である。次に、描画装置101は、ステップS2002の処理に移行する。
ステップS2005の実行終了後、描画装置101は、図形情報バッファ311のデータ容量と図形情報サイズリスト411とから、図形情報バッファ311に書き込める図形情報GINF2の図形が描画される分割領域DARを選択する(ステップS2006)。次に、描画装置101は、生成した図形情報GINF2の図形の一部または全部が選択した分割領域DARに描画されるか否かを判断する(ステップS2007)。生成した図形情報GINF2の図形の一部または全部が選択した分割領域DARに描画される場合(ステップS2007:Yes)、描画装置101は、図形情報バッファ311に生成した図形情報GINF2を書き込む(ステップS2008)。ステップS2008の実行終了後、または、生成した図形情報GINF2の図形の一部または全部が選択した分割領域DARに描画されない場合(ステップS2007:No)、描画装置101は、図21に示すステップS2101の処理に移行する。
ステップS2007:Noの場合、または、ステップS2008の実行終了後、描画装置101は、ymaxに、所定値を設定する(ステップS2101)。次に、描画装置101は、OverYに、選択した分割領域DARのY座標の最大値に1追加した値を設定する(ステップS2102)。続けて、描画装置101は、OverY〜OverY+ymaxの分割領域DARを選択する(ステップS2103)。
次に、描画装置101は、生成した図形情報GINF2の図形の一部または全部が選択した分割領域DARに描画されるか否かを判断する(ステップS2104)。生成した図形情報GINF2の図形の一部または全部が選択した分割領域DARに描画される場合(ステップS2104:Yes)、描画装置101は、図形情報サイズリスト411のうちの、選択した分割領域DARに描画される図形情報のデータサイズ項目の値を更新する(ステップS2105)。ステップS2105の処理実行後、または、生成した図形情報GINF2の図形の一部または全部が選択した分割領域DARに描画されない場合(ステップS2104:No)、描画装置101は、OverY以降の描画領域DIS全てとなる分割領域DARを選択したか否かを判断する(ステップS2106)。
OverY以降の描画領域DISのうち分割領域DARに含まれない領域がある場合(ステップS2106:No)、描画装置101は、ymaxに、所定値を追加した値を設定する(ステップS2107)。ステップS2107の処理終了後、描画装置101は、ステップS2104の処理に移行する。
OverY以降の描画領域DIS全てとなる分割領域DARを選択した場合(ステップS2106:Yes)、または、ステップS2009の実行終了後、描画装置101は、取得した全ての図形情報以外の描画命令DCOMと全ての頂点情報VINFを選択したか否かを判断する(ステップS2108)。取得した図形情報以外の描画命令DCOMと頂点情報VINFのうち未選択の情報がある場合(ステップS2108:No)、描画装置101は、次の図形情報以外の描画命令DCOMか、頂点情報VINFかのいずれか一方を選択する。選択後、描画装置101は、ステップS2004の処理に移行する。
取得した全ての図形情報以外の描画命令DCOMと全ての頂点情報VINFを選択した場合(ステップS2108:Yes)、描画装置101は、OverYが描画領域DISのY座標の最大値となるか否かを判断する(ステップS2109)。OverYが描画領域DISのY座標の最大値でない場合(ステップS2109:No)、描画装置101は、取得した全ての図形情報以外の描画命令DCOMと全ての頂点情報VINFの選択履歴を消去して、ステップS2003の処理に移行する。
OverYが描画領域DISのY座標の最大値である場合(ステップS2109:Yes)、描画装置101は、オーバーフロー時の描画処理を終了する。オーバーフロー時の描画処理を実行することにより、オーバーフローする場合でも、全ての図形情報以外の描画命令DCOMと全ての図形情報GINF2を図形情報バッファ311に書き込むことができる。
以上説明したように、実施の形態2にかかる描画装置101によれば、描画領域DISを、1つの分割領域DARが他の分割領域DARに含まれるように分割して、それぞれの分割領域DARに描画される図形の図形情報の合計データサイズを算出する。これにより、描画装置101は、複数の分割領域DARに跨る図形情報GINFがあっても、各分割領域DARに描画される図形の図形情報GINFが複製されることを抑制することができる。
なお、本実施の形態で説明した描画方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本描画プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本描画プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明した描画装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。たとえば、描画装置101の座標変換部301〜ラインデプスバッファ314をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、描画装置101を製造することができる。また、描画装置101が、処理量の多い、生成部304の機能を有し、座標変換部301、図形情報分割領域選択部302を、CPU201が実行してもよい。
上述した実施の形態1、2に関し、さらに以下の付記を開示する。
(付記1)描画領域に描画される図形の頂点の座標位置を含む図形情報を取得する取得部と、
前記取得部によって取得された前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定する特定部と、
前記図形情報のデータサイズに基づいて、前記特定部によって特定された前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出する算出部と、
前記取得部によって取得された前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択する選択部と、
前記選択部によって選択された前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込む書込部と、
前記書込部によって前記記憶領域に書き込まれた前記図形情報に基づいて、前記描画先となる分割領域の画像を生成する生成部と、
を有することを特徴とする描画装置。
(付記2)前記取得部は、
前記描画領域に描画される図形に影響を与える命令を取得し、
前記算出部は、
前記取得部によって取得された前記命令に基づいて、前記命令の合計データサイズを算出し、
前記選択部は、
前記記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記図形情報の合計データサイズと、前記算出部によって算出された前記命令の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
前記書込部は、
前記選択部によって選択された前記描画先となる分割領域に描画される図形の図形情報と前記命令とを前記記憶領域に書き込むことを特徴とする付記1に記載の描画装置。
(付記3)前記特定部は、
前記取得部によって取得された図形情報に基づいて、前記描画領域の一部である第1の分割領域と、前記描画領域の一部または全部であり前記第1の分割領域を含み前記第1の分割領域より大きい第2の分割領域を含む分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記選択部は、
前記記憶領域のデータ容量と、前記算出部によって前記第1の分割領域に対応して算出された前記図形情報の合計データサイズと、前記算出部によって前記第2の分割領域に対応して算出された前記図形情報の合計データサイズとに基づいて、前記描画先となる分割領域の候補が前記第1の分割領域と前記第2の分割領域となる場合、前記第2の分割領域を前記図形の描画先となる分割領域として選択することを特徴とする付記1または2に記載の描画装置。
(付記4)前記選択部は、
前記記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記合計データサイズとに基づいて、前記分割領域群のうちの前記選択部によって選択された前記描画先となる分割領域と前記描画先となる分割領域に含まれる分割領域とを除く残余の分割領域から前記描画対象となる図形の新たな描画先となる分割領域を選択し、
前記書込部は、
前記生成部によって前記描画先となる分割領域の画像が生成された結果、前記選択部によって選択された前記新たな描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込み、
前記生成部は、
前記書込部によって前記記憶領域に書き込まれた前記図形情報に基づいて、前記新たな描画先となる分割領域の画像を生成することを特徴とする付記1〜3のいずれか一つに記載の描画装置。
(付記5)コンピュータが、
描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、
取得した前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記図形情報のデータサイズに基づいて、特定した前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出し、
取得した前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記各々の分割領域に対応して算出した前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
選択した前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込み、
前記記憶領域に書き込んだ前記図形情報に基づいて、前記描画先となる分割領域の画像を生成する、
処理を実行することを特徴とする描画方法。
(付記6)コンピュータに、
描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、
取得した前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記図形情報のデータサイズに基づいて、特定した前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出し、
取得した前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記各々の分割領域に対応して算出した前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
選択した前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込む、
処理を実行させることを特徴とする描画プログラム。
(付記7)描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、
取得した前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記図形情報のデータサイズに基づいて、特定した前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出し、
取得した前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記各々の分割領域に対応して算出した前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
選択した前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込む、
処理をコンピュータに実行させる描画プログラムを記録したことを特徴とする記録媒体。
101 描画装置
102 バッファ
304 生成部
326 書込部
401 取得部
402 特定部
403 算出部
404 選択部
411 図形情報サイズリスト

Claims (6)

  1. 描画領域に描画される図形の頂点の座標位置を含む図形情報を取得する取得部と、
    前記取得部によって取得された前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定する特定部と、
    前記図形情報のデータサイズに基づいて、前記特定部によって特定された前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出する算出部と、
    前記取得部によって取得された前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択する選択部と、
    前記選択部によって選択された前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込む書込部と、
    前記書込部によって前記記憶領域に書き込まれた前記図形情報に基づいて、前記描画先となる分割領域の画像を生成する生成部と、
    を有することを特徴とする描画装置。
  2. 前記取得部は、
    前記描画領域に描画される図形に影響を与える命令を取得し、
    前記算出部は、
    前記取得部によって取得された前記命令に基づいて、前記命令の合計データサイズを算出し、
    前記選択部は、
    前記記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記図形情報の合計データサイズと、前記算出部によって算出された前記命令の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
    前記書込部は、
    前記選択部によって選択された前記描画先となる分割領域に描画される図形の図形情報と前記命令とを前記記憶領域に書き込むことを特徴とする請求項1に記載の描画装置。
  3. 前記特定部は、
    前記取得部によって取得された図形情報に基づいて、前記描画領域の一部である第1の分割領域と、前記描画領域の一部または全部であり前記第1の分割領域を含み前記第1の分割領域より大きい第2の分割領域を含む分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
    前記選択部は、
    前記記憶領域のデータ容量と、前記算出部によって前記第1の分割領域に対応して算出された前記図形情報の合計データサイズと、前記算出部によって前記第2の分割領域に対応して算出された前記図形情報の合計データサイズとに基づいて、前記描画先となる分割領域の候補が前記第1の分割領域と前記第2の分割領域となる場合、前記第2の分割領域を前記図形の描画先となる分割領域として選択することを特徴とする請求項1または2に記載の描画装置。
  4. 前記選択部は、
    前記記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記合計データサイズとに基づいて、前記分割領域群のうちの前記選択部によって選択された前記描画先となる分割領域と前記描画先となる分割領域に含まれる分割領域とを除く残余の分割領域から前記描画対象となる図形の新たな描画先となる分割領域を選択し、
    前記書込部は、
    前記生成部によって前記描画先となる分割領域の画像が生成された結果、前記選択部によって選択された前記新たな描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込み、
    前記生成部は、
    前記書込部によって前記記憶領域に書き込まれた前記図形情報に基づいて、前記新たな描画先となる分割領域の画像を生成することを特徴とする請求項1〜3のいずれか一つに記載の描画装置。
  5. コンピュータが、
    描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、
    取得した前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
    前記図形情報のデータサイズに基づいて、特定した前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出し、
    取得した前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記各々の分割領域に対応して算出した前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
    選択した前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込み、
    前記記憶領域に書き込んだ前記図形情報に基づいて、前記描画先となる分割領域の画像を生成する、
    処理を実行することを特徴とする描画方法。
  6. コンピュータに、
    描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、
    取得した前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
    前記図形情報のデータサイズに基づいて、特定した前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出し、
    取得した前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記各々の分割領域に対応して算出した前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
    選択した前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込む、
    処理を実行させることを特徴とする描画プログラム。
JP2012265825A 2012-12-04 2012-12-04 描画装置、描画方法、および描画プログラム Pending JP2014110036A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012265825A JP2014110036A (ja) 2012-12-04 2012-12-04 描画装置、描画方法、および描画プログラム
US14/086,028 US9177354B2 (en) 2012-12-04 2013-11-21 Rendering apparatus, rendering method, and computer product
EP13194499.3A EP2741257A2 (en) 2012-12-04 2013-11-26 Rendering apparatus, rendering method, and rendering program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012265825A JP2014110036A (ja) 2012-12-04 2012-12-04 描画装置、描画方法、および描画プログラム

Publications (1)

Publication Number Publication Date
JP2014110036A true JP2014110036A (ja) 2014-06-12

Family

ID=49724461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012265825A Pending JP2014110036A (ja) 2012-12-04 2012-12-04 描画装置、描画方法、および描画プログラム

Country Status (3)

Country Link
US (1) US9177354B2 (ja)
EP (1) EP2741257A2 (ja)
JP (1) JP2014110036A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10644968B1 (en) * 2016-12-09 2020-05-05 Tableau Software, Inc. Sampling in sliding windows with tight optimality and time decayed design
CN113936084B (zh) * 2021-10-28 2022-10-28 广州益聚未来网络科技有限公司 一种虚拟天空中目标元素的生成方法及相关设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11119928A (ja) * 1997-10-16 1999-04-30 Fuji Xerox Co Ltd 印刷処理装置および方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7102646B1 (en) * 1997-11-25 2006-09-05 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
JP3334661B2 (ja) 1999-02-24 2002-10-15 日本電気株式会社 画像形成装置及び方法
JP2001047673A (ja) 1999-08-10 2001-02-20 Canon Inc データ処理装置およびデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
EP1251460A1 (en) * 2001-04-19 2002-10-23 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Adaptive method for allocation of random access memory
JP2007079934A (ja) 2005-09-14 2007-03-29 Fuji Xerox Co Ltd 画像処理装置
KR100803220B1 (ko) * 2006-11-20 2008-02-14 삼성전자주식회사 다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치
KR100901273B1 (ko) * 2007-12-15 2009-06-09 한국전자통신연구원 렌더링 시스템 및 이를 이용한 데이터 처리 방법
JP4886718B2 (ja) 2008-03-04 2012-02-29 株式会社リコー 画像処理装置、プログラム、および画像処理方法
GB201004675D0 (en) * 2010-03-19 2010-05-05 Imagination Tech Ltd Memory management system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11119928A (ja) * 1997-10-16 1999-04-30 Fuji Xerox Co Ltd 印刷処理装置および方法

Also Published As

Publication number Publication date
US9177354B2 (en) 2015-11-03
EP2741257A2 (en) 2014-06-11
US20140152681A1 (en) 2014-06-05

Similar Documents

Publication Publication Date Title
CN110009721B (zh) 生成由曲线表示的图像的三角网格
CN100585631C (zh) 图形绘制设备
US8773439B2 (en) Approximation of stroked higher-order curved segments by quadratic bèzier curve segments
TWI584223B (zh) 藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體
US10496239B2 (en) Three-dimensional model look-at-point rotation and viewport modes
US10204391B2 (en) Method of and apparatus for processing graphics
JP6869249B2 (ja) 2つのタイプのインクベクトルデータを生成して選択的に出力する方法及びシステム
CN103886633B (zh) 基于图块的计算机图形渲染中细分面数据的面片
EP4120199A1 (en) Image rendering method and apparatus, and electronic device and storage medium
Wu et al. ViSizer: a visualization resizing framework
KR20110093404A (ko) 3차원 그래픽스 랜더링 장치 및 그 방법
CN104933749B (zh) 图形图元的裁剪
KR20150039495A (ko) 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
CA2947533C (en) Integrating external algorithms into a flexible framework for imaging visualization data
JPH0610812B2 (ja) 表示装置
EP0607136B1 (en) Graphics output system with bounded updating
JP2009217000A (ja) 描画処理装置、描画処理プログラムおよび描画処理方法
JP2014110036A (ja) 描画装置、描画方法、および描画プログラム
US8665293B2 (en) Automatic draw order
JPWO2009104218A1 (ja) 地図表示装置
US7916141B2 (en) Image processing system using vector pixel
JP2008305347A (ja) 干渉判定情報の生成方法及び装置
Wu et al. Correct resolution rendering of trimmed spline surfaces
JP4425734B2 (ja) 隠線を消去したベクトルイメージを提供する方法
JP6590606B2 (ja) 画像処理装置、画像処理方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161206