JP4541533B2 - 描画装置 - Google Patents

描画装置 Download PDF

Info

Publication number
JP4541533B2
JP4541533B2 JP2000357931A JP2000357931A JP4541533B2 JP 4541533 B2 JP4541533 B2 JP 4541533B2 JP 2000357931 A JP2000357931 A JP 2000357931A JP 2000357931 A JP2000357931 A JP 2000357931A JP 4541533 B2 JP4541533 B2 JP 4541533B2
Authority
JP
Japan
Prior art keywords
polygon
vertex
partial
data
vertices
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.)
Expired - Fee Related
Application number
JP2000357931A
Other languages
English (en)
Other versions
JP2002163665A (ja
Inventor
圭一 仙田
重夫 浅原
健二 西村
均 荒木
正人 湯田
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2000357931A priority Critical patent/JP4541533B2/ja
Priority to US09/988,325 priority patent/US6977652B2/en
Publication of JP2002163665A publication Critical patent/JP2002163665A/ja
Application granted granted Critical
Publication of JP4541533B2 publication Critical patent/JP4541533B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、描画装置に関し、より特定的には、描画処理、つまり、表示装置が表示すべき多角形を表す画像データを作成する描画装置に関する。
【0002】
【従来の技術】
上記のような描画装置は、従来より多数の文献で開示されている。図11は、従来の描画装置CUrendの基本的な構成を示すブロック図である。図11の描画装置CUrendは、多角形データ記憶部701と、凹多角形判定部702と、第1の三角形分割部703と、第2の三角形分割部704と、三角形描画部705と、表示部706とを備える。
【0003】
以下、描画装置CUrendの動作について説明する。多角形データ記憶部701には、いくつかの多角形データDpolyが格納されている。1つの多角形データDpolyは、描画対象となる1つの多角形Pが有するn個(nは3以上の自然数)の頂点座標P1 〜Pn を少なくとも含む。ここで、頂点座標P1 〜Pn は、2次元座標または3次元座標の値で示される。ただし、3次元座標の場合には、すべての頂点座標P1 〜Pn は、同一平面に含まれる必要がある。また、多角形データDpolyは、頂点座標P1 〜Pn 以外にも、様々な付随情報を含む場合もある。付随情報については、以下の説明において適時説明する。
【0004】
凹多角形判定部702は、多角形データ記憶部701から多角形データDpolyを受け取って、それに含まれる頂点座標P1 〜Pn が三次元座標で表されている場合には、予め定められた二次元平面(以下の説明ではxy平面)Ft 上への相似変換処理を行う。
【0005】
今、多角形データDpolyは、多角形Pの頂点座標P1 (x1 ,y1 ,z1 ),P2 (x2 ,y2 ,z2 ),…,Pn (xn ,yn ,zn )を含むとする。凹多角形判定部702は、相似変換処理において、まず、多角形Pに対する法線ベクトルNを求める。凹多角形判定部702は、法線ベクトルNがz軸に平行であれば、すべての頂点座標P1 〜Pn のz成分のみを0に置換して、多角形Pをxy平面Ft に正投影した時の各座標Q1 (x1 ,y1 ,0)〜Qn (xn ,yn ,0)を導出する。
【0006】
一方、法線ベクトルNがz軸に平行でない場合の相似変換処理については、図12を参照して説明する。かかる場合、凹多角形判定部702は、図12に示す交線Lおよび角度αを求める。ここで、交線Lは、xy平面Ft と、多角形Pを含む平面Fp とが交わる線である。また、角度αは、xy平面Ft および平面Fp とがなす角の値である。交線Lおよび角度αを求めた後、凹多角形判定部702は、平面Fp 上の各頂点座標P1 (x1 ,y1 ,z1 )〜Pn (xn ,yn ,zn )を、直線Lを回転中心として、角度αだけ回転させることにより、座標Q'1(x'1 ,y'1 ,0)〜Q'n(x'n ,y'n ,0)を導出する。
【0007】
以上から分かるように、多角形Qは、頂点座標Q1 (x1 ,y1 ,0)〜Qn (xn ,yn ,0)を頂点座標とする多角形、または頂点座標Q'1(x'1 ,y'1 ,0)〜Q'n(x'n ,y'n ,0)を頂点座標とする。ただし、以下には、頂点座標Q'1〜Q'nから構成される多角形Qに対する処理のみを説明し、頂点座標Q1 〜Qn からなるものについては、頂点座標Q'1〜Q'nと同様であるため、その説明を省略する。
【0008】
凹多角形判定部702は、凹凸判定処理を行って、多角形Qが凹多角形か否かを判定する。図13は、上記凹凸判定処理の一例を説明するための図である。なお、上記相似変換処理ではn=6の場合を説明したが、凹凸判定処理では、便宜上、n=4の場合について説明する。
【0009】
凹凸判定処理において、凹多角形判定部702は、まず、多角形Qについてのすべての辺を表す三次元辺ベクトルV1 (a1 ,b1 ,c1 )〜Vn (an ,bn ,cn )を求める。各三次元辺ベクトルV1 〜Vn において、z方向成分c1 〜cn は0である。また、三次元辺ベクトルV1 は頂点座標Q'1およびQ'2とから求められ、(a1 ,b1 ,c1 )は(x'2−x'1 ,y'2−y'1 ,0)に等しい。以降同様に、2≦i≦n−1の場合、三次元辺ベクトルVi は頂点座標Q'iおよびQ'(i+1)とから求められ、(ai ,bi ,ci )は(x'(i+1)−x'i ,y'(i+1)−y'i ,0)に等しい。また、i=nの場合、三次元辺ベクトルVn は、頂点座標Q'nとQ'1とから求められ、(an ,bn ,cn )は(x'1−x'n
,y'1−y'n ,0)に等しい。
【0010】
全三次元辺ベクトルV1 〜Vn を求めた後、凹多角形判定部702は、多角形Qにおいて互いに交わる2辺の外積ベクトルV1 ×V2 ,V2 ×V3 ,…,V(n-1) ×Vn ,Vn ×V1 を順番に算出する。その後、凹多角形判定部702は、算出された外積ベクトルV1 ×V2 ,V2 ×V3 ,…,V(n-1) ×Vn ,Vn ×V1 のz方向成分が同符号または0であれば、多角形Qが凸多角形であり、同符号または0でなければ凹多角形と判定する。
【0011】
多角形Pは多角形Qの基礎であるから、凹多角形判定部702は、多角形Qが凸多角形であれば、多角形Pも凸多角形であると判定し、多角形データ記憶部701から受け取った多角形データDpolyを、第1の三角形分割部703に渡す。一方、凹多角形判定部702は、多角形Pが凹多角形であると判定した場合には、多角形データDpolyを第2の三角形分割部704に渡す。
【0012】
なお、多角形データDpolyが、付随情報として、多角形Pの凹凸属性を示す情報を含んでいる場合には、凹多角形判定部702は、以上の外積を用いた凹凸判定処理ではなく、当該凹凸属性に従って多角形Q(つまり多角形P)が凹多角形であるか否かを判定する。
【0013】
第1の三角形分割部703は、受け取った多角形データDpolyに、第1の三角形分割処理を行って、凸多角形Pを複数の独立した三角形で表現する。第1の三角形分割処理において、まず、第1の三角形分割部703は、受け取った多角形データDpolyから、頂点座標P1 、P2 およびP3 を選択し、これら3つの頂点座標P1 、P2 およびP3 からなる三角形データDtri1を作成する。これによって、概念的には、凸多角形Pは、頂点座標P1 、P2 およびP3 からなる三角形△P1 P2 P3 に分割される。
【0014】
次に、第1の三角形分割部703は、3つの頂点座標P1 、P3 およびP4 を選択して、これら頂点座標P1 、P3 およびP4 からなる三角形データDtri2を作成する。以降同様に、3≦i≦n−2の場合、第1の三角形分割部703は、頂点座標P1 、P(i+1) およびP(i+2) を選択して、これら頂点座標P1 、P(i+1) およびP(i+2) からなる三角形データDtri3〜Dtri(n-2)を作成する。これによって、概念的には、凸多角形Pは、(n−2)個の三角形に分割される。第1の三角形分割部703は、作成した(n−2)個の三角形データDtri1〜Dtri(n-2)を三角形描画部705に渡す。また、第1の三角形分割部703は、受け取った多角形データDpolyに付随情報が含まれる場合には、それも三角形描画部705に渡す。
【0015】
また、第2の三角形分割部704は、受け取った多角形データDpolyを保持し、当該多角形データDpolyに対して、図14に手順を示す第2の三角形分割処理を行って、凹多角形Pを複数の独立した三角形で表現する。図14において、第2の三角形分割部704は、凹多角形Pの各頂点が凹頂点か凸頂点かを調べた後に、凹頂点の数Nc を計数する(ステップS1001)。ここで、凹頂点とは、凹多角形Pにおいて、180°を超える内角を持つ頂点を意味する。また、凸頂点とは、凹多角形Pにおいて、180°未満の内角を持つ頂点を意味する。
【0016】
ステップS1001をより具体的に説明すると、凹多角形判定部702の凹凸判定処理と同様の処理がまず行われる。つまり、第2の三角形分割部704は、凹多角形Pの各頂点Pi (i=1,2,…,n)につながる両辺を表すベクトル同士の外積を算出し、算出した外積のz成分の符号を基礎として、対象となる頂点Pi の凹凸を判定する。なお、外積のz成分が0である頂点Pi に関しては、凹頂点と判定してもよいし、凸頂点と判定してもよい。
【0017】
ステップS1001において、さらに、第2の三角形分割部704は、凹凸の判定結果を基に、凹多角形Pに含まれる凹頂点の個数Nc を計数し、その後、ステップS1002に進む。なお、以下では、本ステップで凹頂点と判定された頂点Pi を凹頂点CPi と記し、そうでないものを凸頂点VPi と記す。
【0018】
第2の三角形分割部704は、個数Nc が0でなければ(ステップS1002)、凸頂点VPi の内の1つを、基準頂点Pb を1つ選択する(ステップS1003)。次に、第2の三角形分割部704は、頂点座標P1 〜Pn の中から、基準頂点Pb の両隣に位置する頂点座標Pk および Pj (k=1,2,…,n、j=1,2,…,n、k≠j)を選択する。これによって、第2の三角形分割部704は、基準頂点Pb 、頂点Pk および頂点Pj からなる部分三角形△Pb Pk Pj を形成する(ステップS1004)。
【0019】
次に、第2の三角形分割部704は、部分三角形△Pb Pk Pj の内部に、頂点Pb 、Pk およびPj を除く他の頂点P1 〜Pn が含まれるか否かを判定する(ステップS1005)。
第2の三角形分割部704は、他の頂点P1 〜Pn が含まれると判定した場合、三角形描画部705が正しい多角形Pを表示可能な画像データDimage を作成できないとみなす。つまり、ステップS1004で形成した部分三角形△Pb Pk Pj は、正しい多角形Pの描画に不適格であると判断して、第2の三角形分割部704はステップS1003に戻る。そして、第2の三角形分割部704は、未選択の凸頂点VPi を基準頂点Pb として選択し(ステップS1003)、その後、ステップS1004およびS1005を実行する。
【0020】
一方、第2の三角形分割部704は、ステップS1005において、他の頂点頂点P1 〜Pn が含まれていないと判定した場合、ステップS1004で形成した部分三角形△Pb Pk Pj は、正しい多角形Pを描画できるとして、ステップS1006に進む。そして、第2の三角形分割部704は、部分三角形△Pb Pk Pj の頂点座標Pb 、Pk 、およびPj からなる三角形データDtri を作成し、保持する(ステップS1006)。
【0021】
次に、第2の三角形分割部704は、現在保持する多角形データDpolyから、多角形データDpoly’を作成できるか否かを判断する(ステップS1007)。より具体的には、第2の三角形分割部704は、多角形データDpolyの中から、ステップS1003で選択した基準頂点座標Pb を除去する。基準頂点座標Pb を除去した結果、残りの頂点の数が0個の場合には、多角形データDpoly’の作成が不可能と判断して、ステップS1010に進む。そして、第2の三角形分割部704は、ステップS1006で作成した少なくとも1つの三角形データDtri を三角形描画部705に渡す。また、第2の三角形分割部704は、最初に受け取った多角形データDpolyに付随情報が含まれる場合には、それも三角形描画部705に渡す。
【0022】
一方、基準頂点座標Pb を除去した結果、残りの頂点の数が0個でない場合には、多角形データDpoly’の作成が可能と判断して、ステップS1008に進む。そして、第2の三角形分割部704は、多角形データDpoly’を作成する。したがって、多角形データDpoly’が表す多角形P’は、多角形Pの内、基準頂点Pb を除いた各頂点P1 〜Pn から形成される。
【0023】
次に、第2の三角形分割部704は、作成した多角形データDpoly’を多角形データDpolyとして設定し(ステップS1008)、その後、ステップS1001に戻る。したがって、今回、第2の三角形分割部704は、上述の多角形P’が有する凹頂点CPi の個数Nc を計数する(ステップS1001)。その後、第2の三角形分割部704は、個数Nc が0か否かを判定し、0でなければ、新しく設定された多角形データDpolyに対して上述したステップS1003〜S1008を行う。
【0024】
一方、個数Nc が0であれば、多角形P’は凸多角形となり、第2の三角形分割部704は、当該多角形P’に対して第1の三角形分割処理を行う(ステップS1009)。その結果、第2の三角形分割部704は、多角形P’の頂点数をNv とした場合には、(Nv −2)個の三角形データDtri1〜Dtri(Nv-2)を作成する。
【0025】
次に、第2の三角形分割部704は、ステップS1006で作成した少なくとも1つの三角形データDtri と、ステップS1009で作成した(Nv −2)個の三角形データDtri1〜Dtri(Nv-2)とを、三角形描画部705に渡す(ステップS1010)。また、第2の三角形分割部704は、最初に受け取った多角形データDpolyに付随情報が含まれる場合には、それも三角形描画部705に渡す。
【0026】
三角形描画部705には、第1の三角形分割部703または第2の三角形分割部704から、いくつかの三角形データDtri を受け取る。また、三角形描画部705は、多角形データDpolyの付随情報を受け取る場合もある。三角形描画部705は、受け取った1つ三角形データDtri を構成する3つの頂点座標Pr (r=1,2,…n)、Ps (s=1,2,…n)およびPt (t=1,2,…n、ただし、r≠s≠t)で囲まれる領域を、付随情報の一部としての色情報に従って塗りつぶす。その後、三角形描画部705は、残りの三角形データDtri から1つの選択しては、選択した三角形データDtri を構成する3つの頂点座標Pr 、Ps およびPt で囲まれる領域を塗りつぶすという描画処理を、すべての三角形データDtri を選択するまで繰り返す。その結果、三角形描画部705の内部メモリには、多角形Pを表す画像データDimage が作成され、表示部706は、作成された画像データDimage に従って表示処理を行って、自身の画面上に多角形Pを表示する。
【0027】
【発明が解決しようとする課題】
以上のように、従来の描画装置CUrendでは、三角形描画部705が三角形単位で描画処理を行うために、多角形データDpolyから、いくつかの三角形データDtri が作成される。しかしながら、描画対象の多角形Pの頂点数が多くなればなるほど、作成される三角形データDtri の数が多くなりため、三角形描画部705における描画処理に時間がかかるという問題点があった。
【0028】
特に、描画対象が凹多角形Pの場合、第2の三角形分割処理(図14参照)が必要となり、第1の三角形分割処理のように簡単には三角形に分割することができないので、従来の描画装置CUrendは、凹多角形Pの描画までにかなりの時間を要していた。
【0029】
それ故に、本発明の目的は、多角形を高速に描画することができる描画装置を提供することである。
【0030】
【課題を解決するための手段および発明の効果】
第1の発明は、多角形を描画するための装置であって、描画対象の多角形を特定する多角形データに基づいて、それぞれが当該多角形を分割した1つの部分多角形を特定する部分多角形データを複数個作成する多角形分割部と、描画処理を行って、多角形分割部により作成された各部分多角形データに基づいて、描画対象の多角形の画像を表す画像データを作成する部分多角形描画部とを備える。
【0031】
さらに、第1の発明において、各部分多角形は、描画対象の多角形の1つの頂点を含む複数の三角形の集合であって、各部分多角形に属する各三角形は、同じ部分多角形に属する残りの三角形のいずれかと少なくとも1つの辺を共有する。
【0032】
上記第1の発明では、上記のような部分多角形単位で、部分多角形描画部は描画処理を行う。そのため、従来の三角形単位で行われる描画処理と比較して、部分多角形描画部が処理するデータ量が少なくなる。これによって、描画対象の多角形を従来よりも高速に描画することが可能となる。
【0033】
第2の発明は、第1の発明に従属しており、多角形データは、描画対象の多角形を特定するための座標を含んでおり、描画装置は、多角形データに不要点除去処理を行って、不要な座標が除去された多角形データを作成する不要点除去部をさらに備え、多角形分割部は、不要点除去部により処理された多角形データに基づいて、部分多角形データを作成する。
【0034】
上記第2の発明では、不要点除去部は、不要な座標を除去した多角形データを作成する。したがって、多角形分割部は、必要最小限の座標のみを含む多角形データから部分多角形データを作成する。その結果、多角形分割部および部分多角形描画部が処理するデータ量が少なくなり、描画対象の多角形をさらに高速に描画することが可能となる。
【0035】
第3の発明は、第1の発明に従属しており、描画装置は、多角形データが凹多角形を特定しているか否かを判定する凹多角形判定部をさらに備え、多角形分割部は、凹多角形判定部により凹多角形を特定すると判定された多角形データに基づいて、部分多角形データを作成する。
【0036】
凹多角形を三角形に分割するのは、従来技術の欄でも述べたように、複雑な処理が必要となり、さらに、凹多角形の頂点数が多くなればなるほど、多くの三角形データができてしまう。そこで、上記第3の発明では、このような凹多角形を特定する多角形データから、相対的にデータ量の少ない部分多角形データが作成される。このように、第3の発明によれば、凹多角形の描画に適した描画装置を提供することができる。
【0037】
さらに、第3の発明によれば、付加的な効果として、凹多角形判定部により凹多角形ではないと判定された多角形データに対しては、単純な第1の三角形分割(従来の技術の欄を参照)を適用することも可能になる。その結果、多角形の凹凸に応じて、最適な処理を行うことができる描画装置を実現することが可能となる。
【0038】
第4の発明は、第1の発明に従属しており、部分多角形描画部は、多角形分割部により作成された部分多角形データに基づいて、透視投影変換処理を行って、予め定められた視点から描画対象の多角形を見たときの画像を表す画像データを作成する。
上記第4の発明によれば、透視投影処理により、描画対象の多角形を様々な方向から見た時の画像データを作成することができるので、より使い勝手のいい描画装置を提供することができる。
【0039】
第5の発明は、第1の発明に従属しており、多角形データには、描画対象の多角形が有するn個の各頂点座標P1 〜Pn が、当該多角形を一筆書き可能な方向である順方向に沿って並んでおり、多角形分割部は、まず、多角形データの頂点座標P1 〜Pn の1つを、基準頂点Pb (b=1,2,…,n)として選択し、さらに、順方向に沿って当該基準頂点Pb の隣に位置する頂点Pc およびP(c+1) を選択する。ここで、当該頂点Pb 、Pc およびP(c+1) からなる△Pb Pc P(c+1) の内部には、描画対象の多角形に属しかつ未選択である他の頂点Pi (i=1,2,…nかつi≠b,i≠c,i≠c+1)はなく、さらに、当該頂点Pb 、Pc およびP(c+1) からなる∠Pb Pc P(c+1) は凸である。
【0040】
さらに、第5の発明において、多角形分割部は、基準頂点Pb および頂点P(c+1) に加えて、順方向に沿って当該頂点P(c+1) の隣に位置する頂点P(c+2) を選択する。ここで、当該頂点Pb 、P(c+1) およびP(c+2) からなる△Pb P(c+1) P(c+2) の内部には、描画対象の多角形に属しかつ未選択である他の頂点Pj (j=1,2,…nかつj≠b,j≠c,j≠c+1,j≠c+2)はなく、さらに、当該頂点Pb 、P(c+1) およびP(c+2) からなる∠Pb P(c+1) (c+2) は凸である。
【0041】
さらに、第5の発明において、多角形分割部は、自身が選択した基準頂点Pb ならびに頂点Pc 、P(c+1) およびP(c+2) で少なくとも構成される部分多角形を特定する部分多角形データを作成する。
【0042】
上記第5の発明では、部分多角形は、少なくとも、基準頂点Pb と、当該基準頂点Pb から順方向に沿って並ぶ3つの頂点Pc 、P(c+1) およびP(c+2) とから構成される。ここで、△Pb Pc P(c+1) および△Pb P(c+1) P(c+2) の内部には、描画対象の多角形の他の頂点Pi は存在しない。さらに、∠Pb Pc P(c+1) および∠Pb P(c+1) P(c+2) は凸である。これによって、描画対象が凹多角形であっても正確に描画することが可能になる。
【0043】
第6の発明は、第5の発明に従属しており、多角形分割部は、自身が選択した頂点P(c+2) が、△Pb P(c+1) P(c+2) の内部に他の頂点Pj がなく、かつ∠Pb P(c+1) (c+2) が凸であるという条件を満たす場合には、さらに、頂点P(c+2) を頂点P(c+1)に設定する。
【0044】
その後、多角形分割部は、基準頂点Pb および、新たに設定された頂点P(c+1) に加えて、当該頂点P(c+1) の隣に位置する頂点P(c+2) を新たに選択するという動作を、上記条件を満たさなくなるまで続け、基準頂点Pb 、頂点Pc およびP(c+1) ならびに、少なくとも1つの頂点P(c+2) からなる部分多角形を特定する部分多角形データを作成する。
【0045】
上記第6の発明では、多角形分割部は、上記条件を満たさなくなるまで、頂点P(c+2) を選択し続ける。そのため、部分多角形は、正確に描画ができる最大の数の頂点からなる。これによって、多角形分割部は、描画対象の多角形を最小数の部分多角形に分割することができる。これによって、描画対象の多角形を、高速かつ最も効率的に描画することが可能となる。
【0046】
第7の発明は、多角形を描画するための方法であって、描画対象の多角形を特定する多角形データに基づいて、それぞれが当該多角形を分割した1つの部分多角形を特定する部分多角形データを複数個作成する多角形分割ステップと、描画処理を行って、多角形分割ステップで作成された各部分多角形データに基づいて、描画対象の多角形の画像を表す画像データを作成する部分多角形描画ステップとを備える。
【0047】
さらに、第7の発明において、各部分多角形は、描画対象の多角形の1つの頂点を含む複数の三角形の集合であって、各部分多角形に属する各三角形は、同じ部分多角形に属する残りの三角形のいずれかと少なくとも1つの辺を共有する。
【0048】
第8の発明は、第7の発明に従属しており、多角形データには、描画対象の多角形が有するn個の各頂点座標P1 〜Pn が、当該多角形を一筆書き可能な方向である順方向に沿って並んでいる。多角形分割ステップは、多角形データの頂点座標P1 〜Pn の1つを、基準頂点Pb (b=1,2,…,n)として選択し、さらに、順方向に沿って当該基準頂点Pb の隣に位置する頂点Pc およびP(c+1) を選択する第1の選択ステップを含む。ここで、頂点Pb 、Pc およびP(c+1) からなる△Pb Pc P(c+1) の内部には、描画対象の多角形に属しかつ未選択である他の頂点Pi (i=1,2,…nかつi≠b,i≠c,i≠c+1)はなく、さらに、当該頂点Pb 、Pc およびP(c+1) からなる∠Pb Pc P(c+1) は凸である。
【0049】
第8の発明において、多角形分割ステップは、第1の選択ステップの後、基準頂点Pb および頂点P(c+1) に加えて、順方向に沿って当該頂点P(c+1) の隣に位置する頂点P(c+2) を選択する第2の選択ステップをさらに含む。ここで、頂点Pb 、P(c+1) およびP(c+2) からなる△Pb P(c+1) P(c+2) の内部には、描画対象の多角形に属しかつ未選択である他の頂点Pj (j=1,2,…nかつj≠b,j≠c,j≠c+1,j≠c+2)はなく、さらに、当該頂点Pb 、P(c+1) およびP(c+2) からなる∠Pb P(c+1) (c+2) は凸である。
【0050】
第8の発明において、多角形分割ステップでは、第1の選択ステップで選択された頂点Pb 、Pc およびP(c+1) と、第2の選択ステップで選択された頂点P(c+2) とで少なくとも構成される部分多角形を特定する部分多角形データが作成される。
【0051】
第9の発明は、第8の発明において、多角形分割ステップはさらに、第2の選択ステップで選択された頂点P(c+2) が、△Pb P(c+1) P(c+2) の内部に他の頂点Pj がなく、かつ∠Pb P(c+1) (c+2) が凸であるという条件を満たす場合に、頂点P(c+2) を頂点P(c+1)に設定する設定ステップをさらに含む。
【0052】
第2の選択ステップにおいては、第1の選択ステップで選択された基準頂点Pb および、設定ステップにおいて設定された頂点P(c+1) に加えて、当該頂点P(c+1) の隣に位置する頂点P(c+2) を新たに選択するという動作が、条件を満たさなくなるまで続けられる。
さらに、第9の発明において、多角形分割ステップでは、第1のステップで選択された基準頂点Pb 、頂点Pc およびP(c+1) と、第2の選択ステップで選択された頂点P(c+2) からなる部分多角形を特定する部分多角形データが作成される。
【0053】
第10の発明は、多角形を描画するためのプログラムを記録した記録媒体であって、描画対象の多角形を特定する多角形データに基づいて、それぞれが当該多角形を分割した1つの部分多角形を特定する部分多角形データを複数個作成する多角形分割ステップと、描画処理を行って、多角形分割ステップで作成された各部分多角形データに基づいて、描画対象の多角形の画像を表す画像データを作成する部分多角形描画ステップとを含む。
【0054】
さらに、第10の発明において、各部分多角形は、描画対象の多角形の1つの頂点を含む複数の三角形の集合であって、各部分多角形に属する各三角形は、同じ部分多角形に属する残りの三角形のいずれかと少なくとも1つの辺を共有する。
【0055】
第11の発明は、第10の発明に従属しており、多角形データには、描画対象の多角形が有するn個の各頂点座標P1 〜Pn が、当該多角形を一筆書き可能な方向である順方向に沿って並んでいる。多角形分割ステップは、多角形データの頂点座標P1 〜Pn の1つを、基準頂点Pb (b=1,2,…,n)として選択し、さらに、順方向に沿って当該基準頂点Pb の隣に位置する頂点Pc およびP(c+1) を選択する第1の選択ステップを含む。ここで、頂点Pb 、Pc およびP(c+1) からなる△Pb Pc P(c+1) の内部には、描画対象の多角形に属しかつ未選択である他の頂点Pi (i=1,2,…nかつi≠b,i≠c,i≠c+1)はなく、さらに、当該頂点Pb 、Pc およびP(c+1) からなる∠Pb Pc P(c+1) は凸である。
【0056】
また、第11の発明において、多角形分割ステップは、第1の選択ステップの後、基準頂点Pb および頂点P(c+1) に加えて、順方向に沿って当該頂点P(c+1) の隣に位置する頂点P(c+2) を選択する第2の選択ステップをさらに含む。ここで、頂点Pb 、P(c+1) およびP(c+2) からなる△Pb P(c+1) P(c+2) の内部には、描画対象の多角形に属しかつ未選択である他の頂点Pj (j=1,2,…nかつj≠b,j≠c,j≠c+1,j≠c+2)はなく、さらに、当該頂点Pb 、P(c+1) およびP(c+2) からなる∠Pb P(c+1) (c+2) は凸である。
【0057】
さらに、第11の発明において、多角形分割ステップでは、第1の選択ステップで選択された頂点Pb 、Pc およびP(c+1) と、第2の選択ステップで選択された頂点P(c+2) とで少なくとも構成される部分多角形を特定する部分多角形データが作成される。
【0058】
第12の発明は、第11の発明に従属しており、多角形分割ステップはさらに、第2の選択ステップで選択された頂点P(c+2) が、△Pb P(c+1) P(c+2) の内部に他の頂点Pj がなく、かつ∠Pb P(c+1) (c+2) が凸であるという条件を満たす場合に、頂点P(c+2) を頂点P(c+1)に設定する設定ステップをさらに含む。
【0059】
また、第12の発明において、第2のステップでは、第1の選択ステップで選択された基準頂点Pb および、設定ステップにおいて設定された頂点P(c+1) に加えて、当該頂点P(c+1) の隣に位置する頂点P(c+2) を新たに選択するという動作が、上記条件を満たさなくなるまで続けられる。
【0060】
さらに、第12の発明において、多角形分割ステップでは、第1のステップで選択された基準頂点Pb 、頂点Pc およびP(c+1) と、第2の選択ステップで選択された頂点P(c+2) からなる部分多角形を特定する部分多角形データが作成される。
【0061】
第13の発明は、多角形を描画するためのプログラムであって、描画対象の多角形を特定する多角形データに基づいて、それぞれが当該多角形を分割した1つの部分多角形を特定する部分多角形データを複数個作成する多角形分割ステップと、描画処理を行って、多角形分割ステップで作成された各部分多角形データに基づいて、描画対象の多角形の画像を表す画像データを作成する部分多角形描画ステップとを含む。
【0062】
さらに、第13の発明において、各部分多角形は、描画対象の多角形の1つの頂点を含む複数の三角形の集合であって、各部分多角形に属する各三角形は、同じ部分多角形に属する残りの三角形のいずれかと少なくとも1つの辺を共有する。
【0063】
【発明の実施の形態】
図1は、本発明の一実施形態に係る描画装置Urendを組み込んだ端末装置Dtermの構成を示すブロック図である。図1の端末装置Dtermにおいて、描画装置Urendは、記憶装置Ustorおよび表示装置Udispと通信可能に接続される。
描画装置Urendは、プロセッサ1、プログラムメモリ2およびワーキングエリア3を備えている。プロセッサ1は、典型的には、CPU(Central Processing Unit) またはMPU(Micro Processing Unit) から構成される。プログラムメモリ2は、典型的には、ROM(Read Only Memory)から構成されており、レンダリング用のプログラム21を格納している。ワーキングエリア3は、典型的には、RAM(Random Access Memory)から構成される。なお、以上のプロセッサ1、プログラムメモリ2およびワーキングエリア3の組み合わせは、描画装置Urendだけでなく、請求項における不要点除去部および凹多角形判定部を構成する。
【0064】
以上の構成の描画装置Urendにおいて、プロセッサ1は、プログラム21に従って処理を行って、記憶装置Ustorに格納された多角形データDpolyを基礎として、画像データDimage をワーキングエリア3上で作成する。
また、記憶装置Ustorは、それぞれが描画対象となる多角形Pを特定するいくつかの多角形データDpolyを格納している。1つの多角形データDpolyは、好ましくは、図2に示すように、描画対象となる1つの多角形Pが有するn個の頂点座標P1 〜Pn を含んでおり、これによって、当該多角形Pを特定する。ここで、頂点座標P1 〜Pn は、2次元座標または3次元座標の値で示される。ただし、3次元座標の場合には、すべての頂点座標P1 〜Pn は、同一平面に含まれる必要がある。
【0065】
また、多角形データDpolyはさらに、多角形Pの形状を特定するために、頂点P1 〜Pn がどのようにつながるかを特定する接続情報も含む。本実施形態においては、好ましい例として、頂点座標P1 〜Pn が並ぶ順番が接続情報であるとする。より具体的には、多角形データDpolyには、多角形Pを一筆書き可能な方向である順方向に沿うように、頂点座標P1 〜Pn が順番に並べられる。また、頂点座標P1 はペンダウンおよびペンアップの位置を示す。なお、以上の多角形データDpolyは、上記以外にも様々な付随情報を含んでいるが、付随情報については、本発明に必須ではないため、以下において適時説明する。
【0066】
表示装置Udispは、ワーキングエリア3から転送されてくる画像データDimage に従って表示処理を行って、自身の画面上に、当該画像データDimage により表される多角形Pを表示する。
次に、以上の構成の端末装置Dtermの動作について、描画装置Urendの動作を中心に説明する。ここで、図3は、プログラム21に記述されたプロセッサ1の処理手順を示すメインフローチャートである。プロセッサ1は、プログラム21の実行開始直後に、描画対象となる多角形Pを特定する多角形データDpolyを、必要な数だけ、記憶装置Ustorから読み出して、ワーキングエリア3上に転送し、これによって、当該多角形データDpolyを取得する(ステップS31)。本実施形態では、説明を簡素化するため、プロセッサ1は1つの多角形データDpolyを取得するものとする。
【0067】
次に、プロセッサ1は、ワーキングエリア3上の多角形データDpolyに対して不要点除去処理を行って(ステップS32)、それに含まれる全頂点座標P1 〜Pn から、多角形Pの描画に不要な頂点座標Pi (iは1,2,…,n)を除去する。なお、本ステップS32が、請求項における不要点除去部に相当する。
【0068】
以下、本ステップ32をより詳細に説明する。原則として、各頂点座標P1 〜Pn は、多角形Pの各辺の端を規定する。しかしながら、なんらかの事情で、ある頂点座標Pi が多角形Pの辺上に乗ってしまう場合がある。このように辺の途中に位置する頂点Pi は多角形Pの描画に不要であるばかりか、後の各処理を非効率的にしてしまう。以上のような理由から、プロセッサ1は、ステップS32の不要点除去処理を行う。具体的には、今、多角形データDpolyが、三次元座標である頂点座標P1 (x1 ,y1 ,z1 ),P2 (x2 ,y2 ,z2 ),…,Pn (xn ,yn ,zn )を含むと仮定する。この仮定下で、プロセッサ1は、まず、多角形Pのすべての辺に対する三次元辺ベクトルVi (i=1,2,…,n)を求める。ここで、i≠nの場合、三次元辺ベクトルVi は、頂点Pi から頂点P(i+1) に向かうベクトルである。また、i=nの場合、三次元辺ベクトルVn は、頂点Pn から頂点P1 に向かうベクトルである。
【0069】
次に、プロセッサ1は、多角形Pにおいて互いに接する2辺の外積ベクトルの大きさ、つまり、n個の外積ベクトルV1 ×V2 ,V2 ×V3 ,…,Vi ×V(i+1) ,…Vn ×V1 の大きさを順次計算する。ここで、例えば、Vi ×V(i+1) の大きさが0であれば、頂点P(i-1) 、Pi およびP(i+1) は一直線上にあることになるで、頂点Pi が不要となるので、プロセッサ1は、ワーキングエリア3上の多角形データDpolyから当該不要な頂点Pi を除去し、当該多角形データDpolyが付随情報として頂点数を含む場合には、当該頂点数を1だけデクリメントする。一方、不要な頂点座標Pi がなければ、多角形データDpolyをワーキングエリア3上にそのままにしておく。
【0070】
なお、多角形データDpolyが、各頂点P1 〜Pn に割り当てられる付随情報を含む場合、または、多角形データDpolyに同じ頂点座標Pがいくつも連続する時に、何らかの特殊な処理が行われる場合には、上記のような不要点除去処理は行われなくともよい。
また、以下には、ステップS32において不要な頂点Pi がなかった場合について説明する。なお、ステップS32において不要な頂点Pi が除去された場合も、本質的には以下の説明をそのまま適用できるので、その場合の説明を省略する。
次に、プロセッサ1は、ワーキングエリア3上の多角形データDpolyに対して、例えば、図11の凹多角形判定部702と同様の処理を行って、多角形データDpolyが特定する多角形Pが凹多角形か否かを判定する(ステップS33)。なお、本ステップS33が、請求項における凹多角形判定部に相当する。
【0071】
描画対象の多角形Pが凸多角形であると判定された場合、プロセッサ1は、例えば、第1の三角形分割部703と同様の処理を行って(ステップS34)、いくつかの三角形データDtri をワーキングエリア3上で作成する。その後、プロセッサ1は、三角形描画部705と同様の処理を行って(ステップS35)、ワーキングエリア3上に、付随情報の一部としての色情報により特定される色で塗りつぶされた多角形Pを表す画像データDimage を作成する。以上、ステップS34およびS35により、プロセッサ1は、凸多角形Pを特定する多角形データDpolyに対しては、より単純な処理である第1の三角形分割を適用することで、描画装置Urendは、さほどの処理負担なく凸多角形Pを描画することができる。
【0072】
以上のステップS35が終わった後、プロセッサ1は、ワーキングエリア3上で作成した画像データDimage を表示装置Udispに転送する(ステップS38)。表示装置Udispは、転送されてきた画像データDimage に従って、表示制御を行って、自身の画面上に、多角形Pを表示する。
【0073】
一方、プロセッサ1は、描画対象の多角形Pが凹多角形であると判定された場合、多角形Pを複数の部分多角形PPに分割するための部分多角形分割処理を行う(ステップS36)。本ステップS36が請求項における多角形分割部に相当する。ここで、図4および図5は、部分多角形分割処理の詳細な処理手順の前半部分および後半部分を示すフローチャートである。まず、図4において、プロセッサ1は、ワーキングエリア3上の多角形データDpolyに含まれる頂点P1 〜Pn のいずれかを、基準頂点Pb (b=1,2,…,n)として選択する(ステップS401)。
【0074】
次に、プロセッサ1は、ワーキングエリア3上の頂点P1 〜Pn の中から、頂点Pc およびP(c+1) を選択する(ステップS402)。本ステップS402において、頂点Pc は、多角形データDpolyにおいて、基準頂点Pb の次に配置されており、前述の順方向に従って多角形Pを一筆書きする場合に、基準頂点Pb の次に描かれる。また、頂点P(c+1) は、多角形データDpolyにおいて頂点Pc の次に配置されており、順方向に従って多角形Pを一筆書きする場合に、頂点Pc の次に描かれる。
なお、上記ステップS401およびS402の組み合わせが、請求項における第1の選択ステップに相当する。
【0075】
次に、プロセッサ1は、下記の第1および第2の条件を満たすか否かを判定する(ステップS403)。第1の条件は、現在の基準頂点Pb 、頂点Pc および頂点P(c+1) からなる三角形△Pb Pc P(c+1) の内部に、他の頂点Pi が位置しないという条件である。第1の条件において、他の頂点Pi とは、頂点P1 〜Pn の中の少なくとも1つであり、かつステップS401およびS402で選択されていないものを意味する。つまり、ステップS403においては、i≠b,i≠c,i≠c+1である。
【0076】
第2の条件は、現在の基準頂点Pb 、頂点Pc および頂点P(c+1) とがなす角∠Pb Pc P(c+1) が凸であるという条件である。∠Pb Pc P(c+1) の凹凸判定に関しては、従来の技術の欄における凹多角形判定部702と同様の処理を行えばよいので、ここでは詳しい説明を省略する。
以上の第1および第2の両条件を満たさない場合、プロセッサ1は、今回の基準頂点Pb が、後述する部分多角形PPのものとして不適切であるとみなして、ステップS401に戻り、別の基準頂点Pb を選択する。
【0077】
一方、ステップS403において、第1および第2の両条件を満たす場合、プロセッサ1は、現在の基準頂点Pb 、頂点Pc および頂点P(c+1) を、後述する部分多角形PPの頂点として、ワーキングエリア3に登録する。さらに、カウンタ(図示せず)の値Vtri を1だけインクリメントして、その初期値0から1に変更する(ステップS404)。ここで、値Vtri は、後述する部分多角形PPに含まれる三角形(つまり、△Pb Pc P(c+1) または△Pb P(c+1) P(c+2) )の現在の個数を示す。
【0078】
次に、プロセッサ1は、現在のカウンタ値Vtri が(n−2)と等しいか否かを判定する(ステップ405)。多角形Pが含むn個の頂点P1 〜Pn から、3つの頂点Pを選んで三角形を作った時、当該三角形の総数は(n−2)個となる。したがって、カウンタ値Vtri =(n−2)であれば、今回の多角形Pからは、次のステップS406で選択しうる頂点Pb 、頂点P(c+1) および頂点P(c+2) の組み合わせをすべて選択し尽くしたことになる。一方、カウンタ値Vtri ≠(n−2)であれば、今回の多角形Pから、次のステップS406で選択しうる頂点Pb 、頂点P(c+1) および頂点P(c+2) の組み合わせがまだ残っていることになる。
【0079】
以上のことから、Vtri =(n−2)の場合には、プロセッサ1は、描画対象の多角形Pを複数の部分多角形PPに完全に分割し終えたとみなして、ステップS414に進む。ただし、ステップS414については後で説明した方が分かり易いので、ここではその説明をしない。
【0080】
一方、Vtri ≠(n−2)であれば、プロセッサ1は、描画対象の多角形Pを完全に分割し終えていないとして、ステップS406に進む。そして、プロセッサ1は、ワーキングエリア3上の頂点P1 〜Pn の中から、現在の基準頂点Pb 、頂点P(c+1) および頂点P(c+2) を選択する(ステップS406)。ただし、頂点P(c+1) として頂点Pn が選択されている場合には、頂点P(c+2) としては頂点P1 が選択される。なお、本ステップS406が、請求項における第2の選択ステップに相当する。
【0081】
また、頂点P(c+1) は、ワーキングエリア3上の多角形データDpolyにおいて、現在の頂点Pc の直後に設定されており、前述の順方向に従って多角形Pを一筆書きした場合に、当該頂点Pc の次に描かれる。また、頂点P(c+2) は、多角形データDpolyにおいて頂点P(c+1) の次に設定されており、順方向に従って多角形Pを一筆書きする場合に、当該頂点P(c+1) の次に描かれる。
【0082】
ステップS406の次に、プロセッサ1は、下記の第3および第4の条件を満たすか否かを判定する(ステップS407)。第3の条件は、現在の基準頂点Pb 、頂点P(c+1) および頂点P(c+2) からなる三角形△Pb P(c+1) P(c+2) の内部に、他の頂点Pj が位置しないという条件である。第3の条件において、他の頂点Pj とは、多角形データDpolyに含まれる頂点P1 〜Pn の中の少なくとも1つであり、かつステップS406で未選択のものを意味する。つまり、ステップS407においては、j≠b,j≠c+1,j≠c+2である。
【0083】
第4の条件は、現在の基準頂点Pb 、頂点P(c+1) および頂点P(c+2) がなす角∠Pb P(c+1) P(c+2) が凸であるという条件である。角∠Pb P(c+1) P(c+2) の凹凸判定は、上述の通り周知技術を適用できるため、その詳しい説明を省略する。
第3および第4の条件の両方を満たす場合、プロセッサ1は、現在の頂点P(c+2) を、後述する部分多角形PPの頂点として、ワーキングエリア3の所定領域に追加登録する。さらに、カウンタ(図示せず)の値Vtri を1だけインクリメントする(ステップS408)。なお、第3および第4の条件の両方を満たさない場合については、後で説明する。
【0084】
さて、ステップS408の次に、プロセッサ1は、現在の頂点P(c+2) を新しい頂点P(c+1) として設定する(ステップS409)。本ステップS409が請求項における設定ステップに相当する。その後、プロセッサ1は、ステップS405に戻り、ステップS405でVtri =(n−2)と判定するまで、またはステップS407において第3および第4の両条件を満たさないと判定するまで、ステップS405〜S409からなるループを繰り返し実行する。
【0085】
ここで、かかるループに含まれるステップS405において、Vtri =(n−2)を満たす場合には、上述したように、プロセッサ1は、描画対象の多角形Pを複数の部分多角形PPに完全に分割し終えたとみなして、ステップS414に進む。ステップS414に部分多角形分割処理が進んだ時、ワーキングエリア3上には、最後の部分多角形PPを構成する頂点が登録されている。最後の部分多角形PPの頂点は、ステップS404で登録された現在の基準頂点Pb 、頂点Pc および頂点P(c+1) だけ、または、当該基準頂点Pb 、当該頂点Pc および当該頂点P(c+1) ならびにステップS408で追加登録された少なくとも1つの頂点P(c+2) である。プロセッサ1は、以上の基準頂点Pb 、頂点Pc および頂点P(c+1) だけ、または、これら3つの頂点Pおよび少なくとも1つの頂点P(c+2) からなる部分多角形データDpartを作成し(ステップS414)、その後、図4および図5に示す部分多角形分割処理から抜ける。つまり、プロセッサ1は、図3のステップS36から抜けて、ステップS37に進む。
【0086】
ステップS414で作成された部分多角形データDpartは部分多角形PPを特定する。ここで、部分多角形PPは、描画対象の多角形Pの一部であり、より具体的には、描画対象の多角形Pの現在の基準頂点Pb を含む△Pb Pc P(c+1) だけ、または、当該△Pb Pc P(c+1) および少なくとも1つの△Pb P(c+1) P(c+2) からなる。ここで、部分多角形PPが複数の三角形の集合からなる場合には、部分多角形PPに属する△Pb Pc P(c+1) および△Pb P(c+1) P(c+2) は、同じ部分多角形PPに属する他の△Pb Pc P(c+1)、および△Pb P(c+1) P(c+2) のいずれかと少なくとも1つの辺を共有する。
【0087】
ステップS407において第3および第4の両条件を満たさないと判定された場合、プロセッサ1は、現在の頂点P(c+2) が今回の部分多角形PPの頂点として不適切であり、さらに、描画対象の多角形Pから1つの部分多角形PPを分割し終えたとみなして、図5のステップS410に進む。ここで、第3および第4の両条件を満たさない場合、頂点P(c+2) が多角形PPの頂点として不適切な理由は後で説明する。
【0088】
ステップS410に部分多角形分割処理が進んだ時、ワーキングエリア3上には1つの部分多角形PPを構成する頂点が登録されている。部分多角形PPの頂点は、ステップS404で登録された基準頂点Pb 、頂点Pc および頂点P(c+1) だけ、または、当該基準頂点Pb 、当該頂点Pc 、当該頂点P(c+1) およびステップS408で追加登録された少なくとも1つの頂点P(c+2) である。プロセッサ1は、基準頂点Pb 、頂点Pc および頂点P(c+1) のみからなる、または、これら3頂点Pおよび少なくとも1つの頂点P(c+2) からなる部分多角形データDpartを作成し、さらに、当該部分多角形データDpartをワーキングエリア3上で保持する。本ステップS410で作成された部分多角形データDpartは、ステップS414で作成されたものと同様の部分多角形PPを特定する。さらに、1つの部分多角形PPを作成し終わったことになるので、次の部分多角形PPに含まれる三角形の個数を計数するための準備として、カウンタの値Vtri を0にリセットする(ステップS410)。
【0089】
次に、プロセッサ1は、ワーキングエリア3上の多角形データDpolyから、多角形データDpoly’を作成する(ステップS411)。より具体的には、プロセッサ1は、多角形データDpolyが含む頂点座標P1 〜Pn から、ステップS402およびS406で選択された頂点Pc 、P(c+1) およびP(c+2) を除去する。ただし、最後に選択された頂点P(c+2) (つまり、現在の頂点P(c+2) )は、後のステップS413で新しい基準頂点Pb として選択されるので除去されない。さらに、基準頂点Pb も多角形データDpoly’を構成するために必要であるから除去されない。そして、プロセッサ1は、後の処理での便宜のため、現在残っている頂点座標Pを並び替えて、現在の頂点座標P(c+2) 〜頂点座標Pn および頂点座標Pb がその内部に順番に並んでいる多角形データDpoly’を作成する。つまり、多角形データDpoly’は、現在の頂点座標P(c+2) 〜頂点座標Pn および基準頂点座標Pb からなる多角形を一筆書きできるようなデータ構造を有する。なお、多角形データDpolyが含む付随情報については、多角形データDpoly’にそのまま設定されてもよいし、ワーキングエリア3の他の領域に退避されてもよい。
【0090】
次に、プロセッサ1は、多角形データDpoly’を、新しい多角形データDpolyに設定し(ステップS412)、さらに、現在の頂点P(c+2) を新しい基準頂点Pb に設定する(ステップS413)。その後、プロセッサ1は、図4のステップS402に戻って、以降の処理を進める。
【0091】
以上、部分多角形分割処理を、図4および図5を参照して説明した。以下には、その理解をより深めるために、図6(a)に示すような凹多角形Pを特定する多角形データDpolyに対する部分多角形分割処理ついて説明する。また、図6(a)の凹多角形Pを特定するために、処理対象となる多角形データDpolyには、図6(b)に示すように、頂点座標P1 〜P14が順番に並んでいる。
【0092】
まず、ステップS401では、図7(a)の星印で示すように、頂点P1 が基準頂点Pb として選択される。次のステップS402では、頂点P2 が頂点Pc として選択され、頂点P3 が頂点P(c+1) として選択される。ここで、ステップS403において、△P1 P2 P3 が第1の条件を満たし、かつ∠P1 P2 P3 が第2の条件を満たすと仮定すると、ステップS404において、頂点P1 〜P3 が部分多角形PPの頂点として登録され、さらに、カウンタ値Vtri が初期値0から1に変更される。
【0093】
頂点P1 〜P3 だけが部分多角形PPの頂点として登録されている条件下では、Vtri =1であり、さらに、現在、(n−2)=12であるから、ステップS405ではVtri ≠(n−2)と判断されるので、ステップS406において、基準頂点Pb 、頂点P(c+1) および頂点P(c+2) の組み合わせとして、頂点P1 、頂点P3 および頂点P4 の組み合わせが選択される。今、ステップS407において、△P1 P3 P4 が第3の条件を満たし、かつ∠P1 P3 P4 が第4の条件を満たすと仮定すると、ステップS408において、部分多角形PPの頂点として、頂点P4 が追加登録され、さらにカウンタの値Vtri が1から2に更新される。その後のステップS409において、現在の頂点P(c+2) である頂点P4 が新しい頂点P(c+1) として設定される。
【0094】
そして、ステップS405でVtri ≠(n−2)と判断された後、ステップS406が行われる。現在の基準頂点Pb および頂点P(c+1) は頂点P1 および頂点P4 であるから、ステップS406では、頂点P(c+2) として頂点P5 が選択される。今、ステップS407において、△P1 P4 P5 が第3の条件を満たし、かつ∠P1 P4 P5 が第4の条件を満たすと仮定すると、ステップS408において、部分多角形PPの頂点として、頂点P5 が追加登録され、さらにカウンタの値Vtri が2から3に更新される。その後のステップS409において、現在の頂点P(c+2) である頂点P5 が新しい頂点P(c+1) として設定される。
【0095】
そして、ステップS405でVtri ≠(n−2)であると判断された後、ステップS406において、頂点P6 が頂点P(c+2) として選択される。今、ステップS407において、△P1 P5 P6 が第3の条件を満たし、かつ∠P1 P5 P6 が第4の条件を満たすと仮定すると、頂点P6 は、ステップS408において追加登録され、さらにカウンタの値Vtri が4に更新される。さらに、頂点P6 は、ステップS409において、新しい頂点P(c+1) として設定される。
【0096】
その後、ステップS405でVtri ≠(n−2)であると判断され、ステップS406で、頂点P7 が頂点P(c+2) として選択される。ここで、∠P1 P6 P7 は凹であるとすると、第4の条件は満足しない。したがって、プロセッサ1は、現在の頂点P(c+2) つまり頂点P7 が部分多角形PPの頂点として不適切であるとみなす。頂点P7 が多角形PPの頂点として不適切であるのは、∠Pb P(c+1) P(c+2) としての∠P1 P6 P7 が凹であると、頂点P5 から頂点P6 へと向かう線分に対して、頂点P6 から頂点P7 へと向かう線分が逆戻りするようになってしまい、正確な部分多角形PPが、後で行われるステップS37で描画されないからである。なお、第3の条件を満たさない場合も、同様の理由で、頂点P(c+2) が多角形PPの頂点として不適切であると判断される。
【0097】
以上のように、第3および第4の両条件を満たさないと判定されると、プロセッサ1が多角形Pから1つの部分多角形PPを分割し終えたとみなし、ステップS410が行われる。今回のステップS410では、頂点座標P1 〜頂点座標P6 を含む部分多角形データDpartが作成され保持される。さらに、ステップS410では、カウンタ値Vtri (=4)が0にリセットされる。ここで、便宜上、今回作成された部分多角形データDpartを部分多角形データDpart1 と称する。部分多角形データDpart1 は、図7(a)の斜線を付けた部分に示すように、頂点P1 〜P6 からなる部分多角形PP1 を特定する。
【0098】
ここで、部分多角形PP1 は、それぞれが基準頂点Pb (=P1 )を含む三角形△P1 P2 P3 、△P1 P3 P4 、△P1 P4 P5 および△P1 P5 P6 との集合である。さらに、△P1 P2 P3 は、△P1 P3 P4 と、辺P1 P3 を共有する。他の△P1 P3 P4 、△P1 P4 P5 および△P1 P5 P6 もまた、部分多角形PP1 に属しておりかつ自身を除いた他の三角形のいずれかと少なくとも1つの辺を共有する。
【0099】
次に、ステップS411では、前述したように、頂点座標P1 〜Pn から、頂点Pc 、頂点P(c+1) および、現在の頂点P(c+2) を除く他の頂点P(c+2) が除去される。したがって、ワーキングエリア3上の多角形データDpolyから頂点座標P2 〜P5 が除去された後、頂点座標Pの並び替えが行われ、これによって、図7(b)に示すように、その内部に10個の頂点座標P6 〜P14およびP1 が順番に並んでいる多角形データDpoly’が作成され、ステップS412において、当該多角形データDpoly’が、新しい多角形データDpolyとして設定される。その後、ステップS413において頂点P6 が基準頂点Pb として設定される。
【0100】
基準頂点Pb が頂点P6 の時には、頂点P(c+1) が頂点P11でありかつ頂点P(c+2) が頂点P12である場合にはじめて、第3および第4の両条件を満たさなくなるので(ステップS407)、図8(a)に示すような部分多角形PP2 (右下がりの斜線を付けた部分参照)を特定する部分多角形データDpart2 が作成され保持される(ステップS410)。そして、ステップS411において、ワーキングエリア3上の多角形データDpolyから頂点座標P7 〜P10が除去された後、頂点座標Pの並び替えが行われ、これによって、図8(b)に示すように、6個の頂点座標P11〜P14ならびに頂点座標P1 およびP6 が、順番に並んでいる多角形データDpoly’が作成され、ステップS412において、当該多角形データDpoly’が新しい多角形データDpolyとして設定される。
【0101】
さらに、ステップS413において、図8(a)に示すように、頂点P11が基準頂点Pb として設定された後、部分多角形分割処理はステップS402に戻る。ステップS402では、頂点P12が頂点Pc として選択され、頂点P13が頂点P(c+1) として選択される。ここで、ステップS403において、△P11P12P13が第1の条件を満たし、かつ∠P11P12P13が第2の条件を満たすと仮定すると、ステップS404において、頂点P11〜P13が登録され、さらに、カウンタ値Vtri が1に更新される。
【0102】
頂点P11〜P13だけが部分多角形PPの頂点として登録されている条件下では、Vtri =1であり、さらに、現在、(n−2)=4であるから、ステップS405ではVtri ≠(n−2)と判断されるので、ステップS406において、基準頂点Pb 、頂点P(c+1) および頂点P(c+2) の組み合わせとして、頂点P11、頂点P13および頂点P14の組み合わせが選択される。今、ステップS407において、△P11P13P14が第3の条件を満たし、かつ∠P11P13P14が第4の条件を満たすと仮定すると、ステップS408において頂点P14が追加登録され、さらにカウンタの値Vtri が2に更新される。その後のステップS409において、現在の頂点P(c+2) である頂点P14が新しい頂点P(c+1) として設定される。
【0103】
そして、ステップS405でVtri ≠(n−2)と判断された後、ステップS406が行われる。現在の基準頂点Pb および頂点P(c+1) は頂点P11および頂点P14であり、さらに、現在の多角形データDpolyにおいて頂点P14の直後には頂点P1 が設定されているので、ステップS406では、頂点P(c+2) として頂点P1 が選択される。今、ステップS407において、△P11P14P1 が第3の条件を満たし、かつ∠P11P14P1 が第4の条件を満たすと仮定すると、ステップS408において頂点P1 が追加登録され、さらにカウンタの値Vtri が3に更新される。その後のステップS409において、現在の頂点P(c+2) である頂点P1 が新しい頂点P(c+1) として設定される。
【0104】
そして、ステップS405でVtri ≠(n−2)であると判断された後、ステップS406において、現在の多角形データDpolyにおいて、頂点P1 の直後に設定されている頂点P6 が頂点P(c+2) として選択される。今、ステップS407において、△P11P1 P6 が第3の条件を満たし、かつ∠P11P1 P6 が第4の条件を満たすと仮定すると、頂点P6 は、ステップS408において追加登録され、さらにカウンタの値Vtri が4に更新される。さらに、頂点P6 は、ステップS409において、新しい頂点P(c+1) として設定される。
【0105】
その後、ステップS405でVtri =(n−2)であると判断されので、プロセッサ1が描画対象の多角形Pから部分多角形PPを完全に分割し終えたとみなし、多角形分割処理は、ステップS414に進む。ステップS414では、現在ワーキングエリア3に登録されている頂点座標P11〜P14、ならびに頂点座標P1 およびP6 を含む部分多角形データDpartが作成され保持される。便宜上、今回作成された部分多角形データDpartを部分多角形データDpart3 と称する。部分多角形データDpart3 は、図8(b)の格子状のハッチングを付けた部分に示すような部分多角形PP3 を特定する。
【0106】
以上、図6〜図8を参照して、部分多角形分割処理の具体例について説明した。かかる具体例では、ワーキングエリア3上には、3つの部分多角形データDpart1 〜Dpart3 が作成される。その後、プロセッサ1は、図4および図5に示す部分多角形分割処理から抜けて、図3のステップS37に進む。
【0107】
ステップS37において、プロセッサ1は、ステップS36で作成された1つの部分多角形データDpartを選択した後、多角形データDpolyの付随情報としての色情報に従って、ワーキングエリア3上で、部分多角形PPを表す部分画像データを作成する。より具体的には、部分画像データは、部分多角形PPの形状を表しており、かつ色情報により特定される色で当該部分多角形PPが塗りつぶされたデータを意味する。プロセッサ1は、以上のような部分多角形描画処理を他の部分多角形データDpartに対しても行い、これによって、描画対象となる多角形Pを形状を表しかつ当該多角形Pの内部が色情報に従って塗りつぶされた画像データDimage をワーキングエリア3上に作成する(ステップS37)。以上のステップS37は、請求項における部分多角形描画部に相当する。
【0108】
ここで、ステップS37において、プロセッサ1はさらに、図9に示すように、ステップS36で作成された各部分多角形データDpartに透視投影変換処理を行ってもよい。透視投影変換処理においては、各部分多角形データDpartが座標変換されることにより、各部分多角形PPは、三次元空間上において予め定められた視点VPを含む視線ベクトルに対して垂直なスクリーンSR上に投影され、その結果、スクリーンSR上には多角形P’が表示される。
以上のステップS37が終わった後、プロセッサ1は、ワーキングエリア3上で作成した画像データDimage を表示装置Udispに転送する(ステップS38)。表示装置Udispは、転送されてきた画像データDimage に従って、表示制御を行って、自身の画面上に、多角形Pを表示する。
【0109】
以上説明したように、本実施形態に係る描画装置Urendによれば、部分多角形分割処理(ステップS36)により、描画対象の凹多角形Pは部分多角形PPに分割される。そのため、ステップS37では、部分多角形PPを単位として、部分多角形描画処理が行われ、凹多角形Pを表す画像データDimage が作成される。そのため、従来の三角形単位で行われる凹多角形Pの描画処理と比較して、部分多角形描画処理において処理されるデータ量、特に頂点座標Pの数が格段に少なくなる。これによって、描画対象の凹多角形Pを従来よりも高速に描画することが可能となる。
【0110】
なお、以上の説明では、ステップS36およびS37は、凹多角形Pを特定する多角形データDpolyに対して行われたが、凸多角形Pの多角形データDpolyに対して行われてもよい。
また、以上の実施形態では、プロセッサ1は、ステップS31において、多角形データDpolyを、端末装置Dtermが内部に備える記憶装置Ustorからワーキングエリア3に読み出して、後の処理を行うと説明した。しかし、これに限らず、プロセッサ1は、ネットワークやバスに代表される通信路を通じて送信されてきた多角形データDpolyをワーキングエリア3に転送し、当該多角形データDpolyに対して、ステップS32〜S38を行ってもよい。つまり、記憶装置Ustorは必ずしも、描画装置Urendの必須の構成とはならない。
【0111】
また、以上の実施形態では、プロセッサ1は、ステップS38において、画像データDimage を、ワーキングエリア3から端末装置Dtermが内部に備える表示装置Udispに転送すると説明した。しかし、これに限らず、プロセッサ1は、上記通信路を通じて、端末装置Dtermの外部に設置された表示装置に画像データDimageを転送するようにしてもよい。つまり、表示装置Udispは必ずしも、描画装置Urendの必須の構成とはならない。
【0112】
また、以上の実施形態では、多角形データDpolyは、描画対象となる多角形Pを一筆書きできる順番に、頂点座標P1 〜Pn を含むと説明した。しかしながら、多角形データDpolyに、多角形Pを一筆書きできる順番に頂点座標Pが並んでいない場合には、プロセッサ1は、付随情報としての接続情報に従って、多角形Pを一筆書きできる順番に頂点座標P1 〜Pn を並び替えた後に、ステップS36を行えばよい。
【0113】
さらに、以上の実施形態では、記憶装置Ustor内の部分多角形データDpartは、部分多角形PPが複数の三角形の集合からなる場合には、基準頂点Pb を含む三角形△Pb Pc P(c+1) および少なくとも1つの三角形△Pb P(c+1) P(c+2) からなる部分多角形PPを特定する頂点座標Pからなっていた。しかし、プロセッサ1は、自身の処理能力によっては、部分多角形PPを描くことができず、単なる四角形しか描けない場合がある。このような場合、プロセッサ1は、部分多角形データDpartとして、基準頂点Pb を含む四角形□Pb Pc P(c+1) Pb および少なくとも1つの四角形□Pb P(c+1) P(c+2) Pb からなる部分多角形PPを特定する頂点座標Pからなるものを作成すればよい。プロセッサ1がかかる部分多角形データDpartに従って部分多角形描画処理(ステップS37)を行うと、形式的には、図10(a)に示すように、四角形□Pb Pc P(c+1) Pb および四角形□Pb P(c+1) P(c+2) Pb を描くこととなるが、両四角形において、基準頂点Pb が重複するので、結果として、図10(b)に示すような部分多角形PPを描画することとなる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る描画装置Urend の構成を示すブロック図である。
【図2】多角形データDpolyのデータ構造の一例を示す図である。
【図3】プロセッサ1の処理手順を示すメインフローチャートである。
【図4】ステップS26の詳細な処理手順を示すフローチャートの前半部分である。
【図5】ステップS26の詳細な処理手順を示すフローチャートの後半部分である。
【図6】描画対象となる多角形Pおよび多角形データDpolyの例を示す図である。
【図7】部分多角形PP1 、および最初の多角形データDpoly’を示す図である。
【図8】部分多角形PP1 〜PP3 および最後の多角形データDpoly’を示す図である。
【図9】透視投影変換を説明するための図である。
【図10】特別な場合における部分多角形PPの描画方法および結果を示す図である。
【図11】従来の描画装置CUrendの構成を示すブロック図である。
【図12】描画装置CUrendにおける相似変換を説明するための図である。
【図13】描画装置CUrendにおける凹凸判定を説明するための図である。
【図14】描画装置CUrendにおける第2の三角形分割の手順を示すフローチャートである。
【符号の説明】
Urend…描画装置
1…プロセッサ
2…プログラムメモリ
21…レンダリング用のプログラム
3…ワーキングエリア
Ustor…記憶装置
Udisp…表示装置

Claims (9)

  1. 多角形を描画するための装置であって、
    描画対象の多角形を特定する多角形データに基づいて、それぞれが当該多角形を分割した1つの部分多角形を特定する部分多角形データを複数個作成する多角形分割部と、
    描画処理を行って、前記多角形分割部により作成された各部分多角形データに基づいて、描画対象の多角形の画像を表す画像データを作成する部分多角形描画部とを備え、
    各前記部分多角形は、前記描画対象の多角形の1つの頂点を含む複数の三角形の集合であって、
    各前記部分多角形に属する各三角形は、同じ部分多角形に属する残りの三角形のいずれかと少なくとも1つの辺を共有し、
    前記多角形データには、前記描画対象の多角形が有するn個の各頂点座標P1 〜Pn が、当該多角形を一筆書き可能な方向である順方向に沿って並んでおり、
    前記多角形分割部は、
    前記多角形データの頂点座標P1 〜Pn の1つを、基準頂点Pb (b=1,2,…,n)として選択し、さらに、前記順方向に沿って当該基準頂点Pb の隣に位置する頂点Pc およびP(c+1) を選択し、ここで、当該頂点Pb 、Pc およびP(c+1) からなる△Pb Pc P(c+1) の内部には、前記描画対象の多角形に属しかつ未選択である他の頂点Pi (i=1,2,…nかつi≠b,i≠c,i≠c+1)はなく、しかも、当該頂点Pb 、Pc およびP(c+1) からなる∠Pb Pc P(c+1) は凸であり、
    その後、前記基準頂点Pb および前記頂点P(c+1) に加えて、前記順方向に沿って当該頂点P(c+1) の隣に位置する頂点P(c+2) を選択し、ここで、当該頂点Pb 、P(c+1) およびP(c+2) からなる△Pb P(c+1) P(c+2) の内部には、前記描画対象の多角形に属しかつ未選択である他の頂点Pj (j=1,2,…nかつj≠b,j≠c,j≠c+1,j≠c+2)はなく、しかも、当該頂点Pb 、P(c+1) およびP(c+2) からなる∠Pb P(c+1) (c+2) は凸であり、
    少なくとも、前記基準頂点Pb ならびに頂点Pc 、P(c+1) およびP(c+2) からなる部分多角形を特定する部分多角形データを作成する、描画装置。
  2. 前記多角形データは、前記描画対象の多角形を特定するための座標を含んでおり、
    前記多角形データに不要点除去処理を行って、不要な座標が除去された多角形データを作成する不要点除去部をさらに備え、
    前記多角形分割部は、不要点除去部により処理された多角形データに基づいて、前記部分多角形データを作成する、請求項1に記載の描画装置。
  3. 前記多角形データが凹多角形を特定しているか否かを判定する凹多角形判定部をさらに備え、
    前記多角形分割部は、前記凹多角形判定部により凹多角形を特定すると判定された多角形データに基づいて、前記部分多角形データを作成する、請求項1に記載の描画装置。
  4. 前記部分多角形描画部は、前記多角形分割部により作成された部分多角形データに基づいて、透視投影変換処理を行って、予め定められた視点から前記描画対象の多角形を見たときの画像を表す画像データを作成する、請求項1に記載の描画装置。
  5. 前記多角形分割部は、
    自身が選択した頂点P(c+2) が、前記△Pb P(c+1) P(c+2) の内部に前記他の頂点Pj がなく、かつ前記∠Pb P(c+1) (c+2) が凸であるという条件を満たす場合には、さらに、前記頂点P(c+2) を頂点P(c+1)に設定し、
    前記基準頂点Pb および、新たに設定された頂点P(c+1) に加えて、当該頂点P(c+1) の隣に位置する頂点P(c+2) を新たに選択するという動作を、前記条件を満たさなくなるまで続け、
    前記基準頂点Pb 、前記頂点Pc およびP(c+1) ならびに、少なくとも1つの頂点P(c+2) からなる部分多角形を特定する部分多角形データを作成する、請求項に記載の描画装置。
  6. 多角形を描画するための描画装置が実行する方法であって、
    描画対象の多角形を特定する多角形データに基づいて、それぞれが当該多角形を分割した1つの部分多角形を特定する部分多角形データを複数個作成する多角形分割ステップと、
    描画処理を行って、前記多角形分割ステップで作成された各部分多角形データに基づいて、描画対象の多角形の画像を表す画像データを作成する部分多角形描画ステップとを備え、
    各前記部分多角形は、前記描画対象の多角形の1つの頂点を含む複数の三角形の集合であって、
    各前記部分多角形に属する各三角形は、同じ部分多角形に属する残りの三角形のいずれかと少なくとも1つの辺を共有し、
    前記多角形データには、前記描画対象の多角形が有するn個の各頂点座標P1 〜Pn が、当該多角形を一筆書き可能な方向である順方向に沿って並んでおり、
    前記多角形分割ステップは、前記多角形データの頂点座標P1 〜Pn の1つを、基準頂点Pb (b=1,2,…,n)として選択し、さらに、前記順方向に沿って当該基準頂点Pb の隣に位置する頂点Pc およびP(c+1) を選択する第1の選択ステップを含み、
    ここで、前記頂点Pb 、Pc およびP(c+1) からなる△Pb Pc P(c+1) の内部には、前記描画対象の多角形に属しかつ未選択である他の頂点Pi (i=1,2,…nかつi≠b,i≠c,i≠c+1)はなく、さらに、当該頂点Pb 、Pc およびP(c+1) からなる∠Pb Pc P(c+1) は凸であり、
    前記多角形分割ステップは、前記第1の選択ステップの後、前記基準頂点Pb および前記頂点P(c+1) に加えて、前記順方向に沿って当該頂点P(c+1) の隣に位置する頂点P(c+2) を選択する第2の選択ステップをさらに含み、
    ここで、前記頂点Pb 、P(c+1) およびP(c+2) からなる△Pb P(c+1) P(c+2) の内部には、前記描画対象の多角形に属しかつ未選択である他の頂点Pj (j=1,2,…nかつj≠b,j≠c,j≠c+1,j≠c+2)はなく、しかも、当該頂点Pb 、P(c+1) およびP(c+2) からなる∠Pb P(c+1) (c+2) は凸であり、
    前記多角形分割ステップにおいては、前記第1の選択ステップで選択された前記頂点Pb 、Pc およびP(c+1) と、前記第2の選択ステップで選択された前記頂点P(c+2) とで少なくとも構成される部分多角形を特定する部分多角形データが作成される、描画方法。
  7. 前記多角形分割ステップはさらに、前記第2の選択ステップで選択された頂点P(c+2) が、前記△Pb P(c+1) P(c+2) の内部に前記他の頂点Pj がなく、かつ前記∠Pb P(c+1) (c+2) が凸であるという条件を満たす場合に、前記頂点P(c+2) を頂点P(c+1)に設定する設定ステップをさらに含み、
    前記第2の選択ステップにおいては、前記第1の選択ステップで選択された前記基準頂点Pb および、前記設定ステップにおいて設定された前記頂点P(c+1) に加えて、当該頂点P(c+1) の隣に位置する頂点P(c+2) を新たに選択するという動作が、前記条件を満たさなくなるまで続けられ、
    前記多角形分割ステップにおいては、前記第1のステップで選択された前記基準頂点Pb 、前記頂点Pc およびP(c+1) と、前記第2の選択ステップで選択された頂点P(c+2) からなる部分多角形を特定する部分多角形データが作成される、請求項に記載の描画方法。
  8. 多角形を描画するための描画装置が実行するプログラムを記録した記録媒体であって、
    描画対象の多角形を特定する多角形データに基づいて、それぞれが当該多角形を分割した1つの部分多角形を特定する部分多角形データを複数個作成する多角形分割ステップと、
    描画処理を行って、前記多角形分割ステップで作成された各部分多角形データに基づいて、描画対象の多角形の画像を表す画像データを作成する部分多角形描画ステップとを含み、
    各前記部分多角形は、前記描画対象の多角形の1つの頂点を含む複数の三角形の集合であって、
    各前記部分多角形に属する各三角形は、同じ部分多角形に属する残りの三角形のいずれかと少なくとも1つの辺を共有し、
    前記多角形データには、前記描画対象の多角形が有するn個の各頂点座標P1 〜Pn が、当該多角形を一筆書き可能な方向である順方向に沿って並んでおり、
    前記多角形分割ステップは、前記多角形データの頂点座標P1 〜Pn の1つを、基準頂点Pb (b=1,2,…,n)として選択し、さらに、前記順方向に沿って当該基準頂点Pb の隣に位置する頂点Pc およびP(c+1) を選択する第1の選択ステップを含み、
    ここで、前記頂点Pb 、Pc およびP(c+1) からなる△Pb Pc P(c+1) の内部には、前記描画対象の多角形に属しかつ未選択である他の頂点Pi (i=1,2,…nかつi≠b,i≠c,i≠c+1)はなく、しかも、当該頂点Pb 、Pc およびP(c+1) からなる∠Pb Pc P(c+1) は凸であり、
    前記多角形分割ステップは、前記第1の選択ステップの後、前記基準頂点Pb および前記頂点P(c+1) に加えて、前記順方向に沿って当該頂点P(c+1) の隣に位置する頂点P(c+2) を選択する第2の選択ステップをさらに含み、
    ここで、前記頂点Pb 、P(c+1) およびP(c+2) からなる△Pb P(c+1) P(c+2) の内部には、前記描画対象の多角形に属しかつ未選択である他の頂点Pj (j=1,2,…nかつj≠b,j≠c,j≠c+1,j≠c+2)はなく、しかも、当該頂点Pb 、P(c+1) およびP(c+2) からなる∠Pb P(c+1) (c+2) は凸であり、
    前記多角形分割ステップにおいては、前記第1の選択ステップで選択された前記頂点Pb 、Pc およびP(c+1) と、前記第2の選択ステップで選択された前記頂点P(c+2) とで少なくとも構成される部分多角形を特定する部分多角形データが作成される、プログラムを記録した記録媒体。
  9. 前記多角形分割ステップはさらに、前記第2の選択ステップで選択された頂点P(c+2) が、前記△Pb P(c+1) P(c+2) の内部に前記他の頂点Pj がなく、かつ前記∠Pb P(c+1) (c+2) が凸であるという条件を満たす場合に、前記頂点P(c+2) を頂点P(c+1)に設定する設定ステップをさらに含み、
    前記第2のステップにおいては、前記第1の選択ステップで選択された前記基準頂点Pb および、前記設定ステップにおいて設定された前記頂点P(c+1) に加えて、当該頂点P(c+1) の隣に位置する頂点P(c+2) を新たに選択するという動作が、前記条件を満たさなくなるまで続けられ、
    前記多角形分割ステップにおいては、前記第1のステップで選択された前記基準頂点Pb 、前記頂点Pc およびP(c+1) と、前記第2の選択ステップで選択された頂点P(c+2) からなる部分多角形を特定する部分多角形データが作成される、請求項に記載のプログラムを記録した記録媒体。
JP2000357931A 2000-11-24 2000-11-24 描画装置 Expired - Fee Related JP4541533B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000357931A JP4541533B2 (ja) 2000-11-24 2000-11-24 描画装置
US09/988,325 US6977652B2 (en) 2000-11-24 2001-11-19 Polygon rendering device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000357931A JP4541533B2 (ja) 2000-11-24 2000-11-24 描画装置

Publications (2)

Publication Number Publication Date
JP2002163665A JP2002163665A (ja) 2002-06-07
JP4541533B2 true JP4541533B2 (ja) 2010-09-08

Family

ID=18829920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000357931A Expired - Fee Related JP4541533B2 (ja) 2000-11-24 2000-11-24 描画装置

Country Status (2)

Country Link
US (1) US6977652B2 (ja)
JP (1) JP4541533B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7436414B2 (en) * 2004-11-12 2008-10-14 Valve Corporation Method for accelerated determination of occlusion between polygons
US8599195B2 (en) * 2007-03-15 2013-12-03 Basimah Khulusi Apparatus and method for modeling all matter by modeling, truncating, and creating N-dimensional polyhedra including those having holes, concave attributes, and no symmetry
JP4636146B2 (ja) * 2008-09-05 2011-02-23 ソニー株式会社 画像処理方法、画像処理装置、プログラム及び画像処理システム
CN102110306B (zh) * 2009-12-23 2016-09-21 富士通株式会社 用于对凹多边形进行三角化的方法和系统
US10089774B2 (en) * 2011-11-16 2018-10-02 Qualcomm Incorporated Tessellation in tile-based rendering
US8976188B1 (en) 2012-04-20 2015-03-10 Google Inc. Optimized data communication system and method for an image rendering system
US20150310647A1 (en) 2014-04-24 2015-10-29 Sas Institute Inc. Techniques for Visualization of Data
US9721363B2 (en) 2014-05-19 2017-08-01 Google Inc. Encoding polygon data for fast retrieval and rendering
US10055857B2 (en) * 2014-08-29 2018-08-21 Ati Technologies Ulc Extension of the MPEG/SC3DMC standard to polygon meshes
JP6769788B2 (ja) * 2016-09-07 2020-10-14 ボッシュ株式会社 移動体の周囲の障害物情報を生成するための処理装置及び処理方法
US10834413B2 (en) * 2018-08-24 2020-11-10 Disney Enterprises, Inc. Fast and accurate block matching for computer generated content
CN112837416A (zh) * 2019-11-22 2021-05-25 上海幻电信息科技有限公司 基于三角剖分的多边形渲染方法、装置及存储介质
CN115330974B (zh) * 2022-07-21 2024-04-26 北京汉仪创新科技股份有限公司 一种三维字体实时建模渲染方法、系统、设备和介质
CN116012491B (zh) * 2023-03-20 2023-09-19 电科疆泰(深圳)科技发展有限公司 多边形填充方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266846A (ja) * 1992-10-20 1994-09-22 Ricoh Co Ltd 画像処理装置
JPH0721397A (ja) * 1993-07-05 1995-01-24 Fanuc Ltd 多角形の塗りつぶし描画方法
JPH07105405A (ja) * 1993-09-30 1995-04-21 Fujitsu Ltd 多角形の描画方式,三角形の描画方式および四辺形メッシュの描画方式
JPH07325929A (ja) * 1994-05-31 1995-12-12 Nec Corp 図形近似方法およびその装置
JPH086485A (ja) * 1994-06-17 1996-01-12 Namco Ltd ポリゴンデータ変換装置及び3次元シミュレータ装置
JPH11296686A (ja) * 1998-04-09 1999-10-29 Sony Computer Entertainment Inc 画像処理装置および画像処理方法、プログラム提供媒体、並びにデータ提供媒体
JP2000251056A (ja) * 1999-03-01 2000-09-14 Matsushita Electric Ind Co Ltd 多角形幾何学的分割方法および装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5575125A (en) * 1987-04-09 1996-11-19 Lalvani; Haresh Periodic and non-periodic tilings and building blocks from prismatic nodes
JPH0760465B2 (ja) * 1989-10-23 1995-06-28 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 凹ポリゴン描出方法及びプロセツサ
JP2800404B2 (ja) * 1990-11-20 1998-09-21 ダイキン工業株式会社 多角形分割方法およびその装置
US5428717A (en) * 1991-12-30 1995-06-27 Xerox Corporation Methods for converting concave polyhedra to their convex hulls
US6078331A (en) * 1996-09-30 2000-06-20 Silicon Graphics, Inc. Method and system for efficiently drawing subdivision surfaces for 3D graphics
JP2941248B1 (ja) * 1998-03-09 1999-08-25 核燃料サイクル開発機構 オブジェクトをプリミティブに変換する装置
GB2343603B (en) * 1998-11-06 2003-04-02 Videologic Ltd Shading 3-dimensional computer generated images
JP2000242802A (ja) * 1999-02-22 2000-09-08 Fuji Xerox Co Ltd 図形処理装置
US6437780B1 (en) * 1999-03-17 2002-08-20 Nvidia Us Investment Company Method for determining tiles in a computer display that are covered by a graphics primitive

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266846A (ja) * 1992-10-20 1994-09-22 Ricoh Co Ltd 画像処理装置
JPH0721397A (ja) * 1993-07-05 1995-01-24 Fanuc Ltd 多角形の塗りつぶし描画方法
JPH07105405A (ja) * 1993-09-30 1995-04-21 Fujitsu Ltd 多角形の描画方式,三角形の描画方式および四辺形メッシュの描画方式
JPH07325929A (ja) * 1994-05-31 1995-12-12 Nec Corp 図形近似方法およびその装置
JPH086485A (ja) * 1994-06-17 1996-01-12 Namco Ltd ポリゴンデータ変換装置及び3次元シミュレータ装置
JPH11296686A (ja) * 1998-04-09 1999-10-29 Sony Computer Entertainment Inc 画像処理装置および画像処理方法、プログラム提供媒体、並びにデータ提供媒体
JP2000251056A (ja) * 1999-03-01 2000-09-14 Matsushita Electric Ind Co Ltd 多角形幾何学的分割方法および装置

Also Published As

Publication number Publication date
JP2002163665A (ja) 2002-06-07
US20020063708A1 (en) 2002-05-30
US6977652B2 (en) 2005-12-20

Similar Documents

Publication Publication Date Title
JP4541533B2 (ja) 描画装置
CN102306395B (zh) 一种三维模型数据分布式绘图方法及装置
EP1004988B1 (en) Method, apparatus and computer program product for generating perspective corrected data from warped information
RU2215326C2 (ru) Иерархическое основанное на изображениях представление неподвижного и анимированного трехмерного объекта, способ и устройство для использования этого представления для визуализации объекта
EP0531157B1 (en) Three dimensional graphics processing
US20040066384A1 (en) Image processing method and apparatus
KR19980071435A (ko) 그래픽 표면 모델 맵핑을 위한 방법 및 장치
KR100328659B1 (ko) 화상작성방법,화상작성장치및가정용게임기
CN110520903A (zh) 基于用户移动信息显示图像的方法和装置
EP0752685B1 (en) Method and apparatus for efficient rendering of three-dimensional scenes
CN113112581A (zh) 三维模型的纹理贴图生成方法、装置、设备及存储介质
US20110175924A1 (en) System and Method for Image-Based Rendering with Object Proxies
US6556198B1 (en) Polyhedron generating method and apparatus thereof, and storage medium for storing the method
Splietker et al. Directional TSDF: Modeling surface orientation for coherent meshes
JPH0863495A (ja) 幾何拘束条件表示装置
CN110458928A (zh) 基于unity3d的AR动画生成方法、装置、介质
CN116127802A (zh) 3d视景展示cae仿真结果的方法、装置及系统
CN115936986A (zh) 全景图像生成方法、装置、设备及存储介质
JP5883673B2 (ja) 3次元地図における地点指定システム
EP0670560B1 (en) A method for sorting polygon data, a video game machine employing the same and acomputer program performing the method
CN114299202A (zh) 虚拟场景制作的处理方法及装置、存储介质、终端
JP4606547B2 (ja) 複雑なモデルの表面要素を識別する方法及びシステム
CN111729322A (zh) 模型的描边处理方法、装置、计算机设备及可读存储介质
JP3931375B2 (ja) ポリゴンによる画像形成方法及び、この方法を用いる画像処理装置
JP3149386B2 (ja) パノラマ3次元シーンにホットリンクを生成および表示する方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100518

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100603

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100624

R150 Certificate of patent or registration of utility model

Ref document number: 4541533

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130702

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees