JP4664169B2 - 図形描画装置及び図形描画プログラム - Google Patents
図形描画装置及び図形描画プログラム Download PDFInfo
- Publication number
- JP4664169B2 JP4664169B2 JP2005277877A JP2005277877A JP4664169B2 JP 4664169 B2 JP4664169 B2 JP 4664169B2 JP 2005277877 A JP2005277877 A JP 2005277877A JP 2005277877 A JP2005277877 A JP 2005277877A JP 4664169 B2 JP4664169 B2 JP 4664169B2
- Authority
- JP
- Japan
- Prior art keywords
- polygon
- vertex
- gradient
- unit
- edge
- 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.)
- Active
Links
- 238000010422 painting Methods 0.000 claims description 19
- 238000000034 method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000003973 paint Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000007591 painting process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Image Generation (AREA)
Description
従って、上記の方法では、多角形の頂点座標が入力される順序によっては、図10(G)に示すように図形がねじれた形で描画されてしまう場合がある。例えば、(E)のように必ずV1⇒V2⇒V3⇒V4の順序で頂点座標を設定し、設定された順序で四角形の輪郭線を生成するようにしていた場合には、(F)のような四角形を描画したい場合でも頂点座標の入力順序が(F)のようになると(G)のようにねじれた形で描画されてしまう。このような描画結果を避けるためには、多角形形状の判定が必要となる。
また、特許文献2に開示される技術においては、多角形形状の判定に外積演算を利用しており、描画処理の度に多大な計算を必要とするという課題がある。このように、従来の多角形描画技術では、任意の順序で入力された頂点情報から多大な計算量を要することなく高速な描画を実行することが困難であった。
また、多角形のエッジと走査線との交点座標を保存するための記憶領域を必要とせず、単純な演算によって多角形を高速に描画できる図形描画装置およびこの図形描画機能をコンピュータに実現させるプログラムを得ることを目的とする。
多角形の頂点座標を含む多角形の情報を入力し、前記頂点の中でY座標の小さいものから順に番号付けを行う頂点ソート部と、
前記頂点ソート部により番号付けが行われ、入力された頂点のY座標が最小となる点とそれ以外の頂点とを結んだ(頂点数−1)個の線分に対して勾配の算出を行い、前記多角形の外周となるエッジの勾配を算出する勾配算出部と、
前記勾配算出部が算出した(頂点数−1)個の勾配の大小比較を行い、勾配が最大または最小となった2つのエッジの情報を元に多角形の形状を判定する多角形形状判定部と、
前記多角形形状判定部で判定された多角形の形状に基づいて、描画開始点から左右2つのエッジについて勾配を順次加算して走査線との交点の座標を算出するエッジ生成部と、
前記エッジ生成部が算出した走査線との交点間の塗潰し処理を行う塗潰し処理部とを備える。
図1は、この発明の実施の形態1による図形描画装置の構成を示すブロック図である。実施の形態1による図形描画装置7は、頂点ソート部1、勾配算出部2、多角形形状判定部3、エッジ生成部4及び塗潰し処理部5から構成され、図形描画装置7によって生成されたピクセルデータがフレームバッファ6に保持され、保持されたピクセルデータは適宜読み出されて表示される。
時計回りに見た頂点の順序がV1⇒V2⇒V3⇒V4となる場合(A)と、V1⇒V3⇒V4⇒V2となる場合(B)の2通りに分類することができる。
また、多角形の頂点から任意の2点を選択してできる線分の中で、多角形の輪郭線上にあるものをエッジと呼ぶことにする。例えば、図2(A)においてエッジに相当するのは、V1V2、V1V4、V2V3およびV3V4であり、図2(B)においてエッジに相当するのは、V1V2、V1V3、V2V4およびV3V4である。
図形描画装置7は、CPUから描画するn次多角形の情報としてn個の頂点の座標、描画色等の情報が設定され、起動命令を受けることにより動作を開始する。起動命令を受けると、頂点ソート部1が起動して頂点のY座標の小さい順にV1〜Vnまで番号付けを行う。
dx12=(x2−x1)/(y2−y1) ・・・(1)
dx13=(x3−x1)/(y3−y1) ・・・(2)
dx14=(x4−x1)/(y4−y1) ・・・(3)
x12(y)=X1+dx12×(y−Y1) ・・・(4)
x13(y)=X1+dx13×(y−Y1) ・・・(5)
図4は、実施の形態1の図形描画装置による多角形描画処理の流れを示すフローチャートであり、この図に沿って説明する。
先ず、頂点ソート部1は、上述したように、頂点のY座標の小さい順にV1〜Vnまで番号付けを行う(ステップST1)。次に、勾配算出部2は、頂点のY座標が最小の点V1とそれ以外のn−1個の頂点V2〜Vnとを結ぶ各線分の勾配の算出を行う。図2のように四角形を描画する場合には、エッジV1V2、V1V3およびV1V4の勾配を算出する。(ステップST2)。
なお、この勾配の値は絶対値ではなく、正負を勘案した値とする。
その後、塗潰し処理部5は、エッジ生成部4が算出した2つのエッジと走査線との交点同士を結ぶように順次ピクセルを生成して塗潰し処理を行う(ステップST5)。さらにY座標が最終値であるか否かの判定を行う(ステップST6)。Y座標が最終値でない場合には、Y座標のインクリメントを行った後(ステップST7)、(ステップST4)〜(ステップST6)の処理を繰り返す。Y座標が最終値である場合には、図2の領域(1)〜(3)のいずれの領域の最終値であるかによって処理を分岐する。
また、ここで領域(3)で使用するエッジV3V4の勾配の算出も同時に行っておく。この勾配は、(ステップST3)において選択されなかった勾配と置き換えて保存しておく。ここで、2つの勾配を並列して算出することにより、領域(3)に移行する際の除算によるオーバーヘッドを省略することが可能となる。その後、Y座標のインクリメントを行った後(ステップST7)、(ステップST4)〜(ステップST6)の処理を繰り返す。
Y座標が領域(3)の最終値(y4)である場合には、描画を終了する(ステップST12)。
以上の実施の形態1では、多角形を単色で塗潰すことを前提としたものであるが、次に多角形の各頂点色(例えばRGBの各成分)を入力し、多角形のエッジ上および内部の領域については線形補間により塗潰し色を算出することでグラデーション塗潰しを行うような場合に対応する実施の形態を示す。
図8は、このような場合の、図形描画装置の構成を示すブロック図である。実施の形態2による図形描画装置14は、頂点ソート部8、3並列の除算器を備えた勾配算出部9、多角形形状判定部10、エッジ生成部11及び塗潰し処理部12から構成され、図形描画装置14で生成され、フレームバッファ13に保持されたピクセルデータが適宜読み出されて表示される。
図形描画装置14は、CPUから描画するn次多角形の情報としてn個の頂点の座標、n個の頂点それぞれの描画色等の情報が設定され、起動命令を受けることにより動作を開始する。起動命令を受けると、頂点ソート部8が起動してCPUが設定した頂点の座標をY座標の小さい順にソートしてV1〜Vnまで番号付けを行う。
勾配算出部9は、頂点ソート部8で決定された番号の情報を用いて、頂点のY座標が最小の点V1と、多角形の他の頂点とを結んだ線分の勾配を算出する。多角形形状判定部10は、実施の形態1の場合と同様に勾配算出部9で求められた勾配の大小関係を判定し、勾配が最大及び最小となる2つのエッジを決定する。
dr12=(r2−r1)/(x2−x1) ・・・(6)
dg12=(g2−g1)/(x2−x1) ・・・(7)
db12=(b2−b1)/(x2−x1) ・・・(8)
g12=g1+dg12×(y−y1) ・・・(10)
b12=b1+db12×(y−y1) ・・・(11)
dg=(gr−gl)/(xr−xl) ・・・(13)
db=(br−bl)/(xr−xl) ・・・(14)
r(x)=rl+dr×(px−x1) ・・・(15)
g(x)=gl+dg×(px−x1) ・・・(16)
b(x)=bl+db×(px−x1) ・・・(17)
以上の実施の形態2では、多角形の各頂点色を入力し、グラデーション塗潰しを行うようにしたものであるが、多角形の各頂点に対応するテクスチャアドレスを指定し、多角形のエッジ上および内部の領域については線形補間によりテクスチャアドレスを算出することで、任意の多角形に対するテクスチャ貼り付けを行うことも可能である。この実施の形態3では、実施の形態2においてRGBの3要素の中から2つの要素をテクスチャアドレスの演算と共用することによって、全く同様の構成により実現することが可能である。また、グラデーション処理とテクスチャアドレスの計算を両方とも利用することにより、いわゆるテクスチャブレンドの効果も容易に実現できる。
以上の実施の形態では、塗潰し処理部5または塗潰し処理部13において走査線ごとに1ラインずつ塗潰し処理を行っていたものであるが、塗潰しは4×4、8×4などのタイル(ブロック)単位で行ってもよい。この実施の形態では、タイルのY軸方向のサイズ分だけ走査線両端の座標、描画色、描画色の勾配などを一時的に保存しておくための記憶領域が必要となる。
また、従来の2Dグラフィックスコアに比較してグラデーションで塗り潰し、テクスチャ貼り付けなど様々な追加機能が付加可能な2D/3Dグラフィックスコアが提供できる。
Claims (4)
- 多角形の頂点座標を含む多角形の情報を入力し、前記頂点の中でY座標の小さいものから順に番号付けを行う頂点ソート部と、
前記頂点ソート部により番号付けが行われ、入力された頂点のY座標が最小となる点とそれ以外の頂点とを結んだ(頂点数−1)個の線分に対して勾配の算出を行い、前記多角形の外周となるエッジの勾配を算出する勾配算出部と、
前記勾配算出部が算出した(頂点数−1)個の勾配の大小比較を行い、勾配が最大または最小となった2つのエッジの情報を元に多角形の形状を判定する多角形形状判定部と、
前記多角形形状判定部で判定された多角形の形状に基づいて、描画開始点から左右2つのエッジについて勾配を順次加算して走査線との交点の座標を算出するエッジ生成部と、
前記エッジ生成部が算出した走査線との交点間の塗潰し処理を行う塗潰し処理部とを備えた図形描画装置。 - 塗潰し処理部は、多角形の各頂点を通る水平線によって(頂点数−1)個の台形または三角形の領域に分割して、水平方向に連続して画素を生成することにより塗潰し処理を行うことを特徴とする請求項1記載の図形描画装置。
- 頂点ソート部に入力される多角形の情報は頂点座標と頂点座標における描画色を含み、
勾配算出部は、除算器を備え、除算器は多角形のエッジの勾配を算出すると共に、多角形情報の描画色を基に多角形内部の描画色を算出するための勾配計算も行うことを特徴とする請求項1または請求項2に記載の図形描画装置。 - 多角形を描画する図形描画プログラムであって、コンピュータを、
多角形の頂点座標を含む多角形の情報を入力し、前記頂点の中でY座標の小さいものから順に番号付けを行う頂点ソート部と、
前記頂点ソート部により番号付けが行われ、入力された頂点のY座標が最小となる点とそれ以外の頂点とを結んだ(頂点数−1)個の線分に対して勾配の算出を行い、前記多角形の外周となるエッジの勾配を算出する勾配算出部と、
前記勾配算出部が算出した(頂点数−1)個の勾配の大小比較を行い、勾配が最大または最小となった2つのエッジの情報を元に多角形の形状を判定する多角形形状判定部と、
前記多角形形状判定部で判定された多角形の形状に基づいて、描画開始点から左右2つのエッジについて勾配を順次加算して走査線との交点の座標を算出するエッジ生成部と、
前記エッジ生成部が算出した走査線との交点間の塗潰し処理を行う塗潰し処理部として機能させる図形描画プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005277877A JP4664169B2 (ja) | 2005-09-26 | 2005-09-26 | 図形描画装置及び図形描画プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005277877A JP4664169B2 (ja) | 2005-09-26 | 2005-09-26 | 図形描画装置及び図形描画プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007087283A JP2007087283A (ja) | 2007-04-05 |
JP4664169B2 true JP4664169B2 (ja) | 2011-04-06 |
Family
ID=37974181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005277877A Active JP4664169B2 (ja) | 2005-09-26 | 2005-09-26 | 図形描画装置及び図形描画プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4664169B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4845043B2 (ja) * | 2007-04-27 | 2011-12-28 | シャープ株式会社 | 描画情報処理装置、描画情報処理方法、描画情報処理プログラム、および描画情報処理プログラムを記録したコンピュータ読取り可能な記録媒体 |
JP4914290B2 (ja) * | 2007-05-10 | 2012-04-11 | ルネサスエレクトロニクス株式会社 | 塗潰し処理装置および図形表示装置 |
JP5393819B2 (ja) * | 2012-02-21 | 2014-01-22 | キヤノン株式会社 | 情報処理装置及び画像処理装置 |
JP2014182594A (ja) * | 2013-03-19 | 2014-09-29 | Mitsubishi Electric Corp | 並列描画装置 |
CN113553810A (zh) * | 2020-04-24 | 2021-10-26 | 广州金山移动科技有限公司 | 一种圆角绘制方法、装置、及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108824A (ja) * | 1991-10-18 | 1993-04-30 | Fujitsu Ltd | 多角形の輪郭抽出方法 |
JPH0659665A (ja) * | 1992-08-08 | 1994-03-04 | Ricoh Co Ltd | 画像処理装置 |
JPH10116348A (ja) * | 1996-10-11 | 1998-05-06 | Canon Inc | 描画装置および方法および記憶媒体 |
JP2000242802A (ja) * | 1999-02-22 | 2000-09-08 | Fuji Xerox Co Ltd | 図形処理装置 |
JP2001188912A (ja) * | 2000-01-05 | 2001-07-10 | Matsushita Electric Ind Co Ltd | 台形描画方法および台形描画装置 |
JP2003029959A (ja) * | 2001-07-10 | 2003-01-31 | Toshiba Corp | 3dグラフィックス処理装置 |
JP2004029864A (ja) * | 2002-06-03 | 2004-01-29 | Mitsubishi Electric Corp | 三角形ポリゴン描画装置および三角形ポリゴン描画方法 |
-
2005
- 2005-09-26 JP JP2005277877A patent/JP4664169B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108824A (ja) * | 1991-10-18 | 1993-04-30 | Fujitsu Ltd | 多角形の輪郭抽出方法 |
JPH0659665A (ja) * | 1992-08-08 | 1994-03-04 | Ricoh Co Ltd | 画像処理装置 |
JPH10116348A (ja) * | 1996-10-11 | 1998-05-06 | Canon Inc | 描画装置および方法および記憶媒体 |
JP2000242802A (ja) * | 1999-02-22 | 2000-09-08 | Fuji Xerox Co Ltd | 図形処理装置 |
JP2001188912A (ja) * | 2000-01-05 | 2001-07-10 | Matsushita Electric Ind Co Ltd | 台形描画方法および台形描画装置 |
JP2003029959A (ja) * | 2001-07-10 | 2003-01-31 | Toshiba Corp | 3dグラフィックス処理装置 |
JP2004029864A (ja) * | 2002-06-03 | 2004-01-29 | Mitsubishi Electric Corp | 三角形ポリゴン描画装置および三角形ポリゴン描画方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2007087283A (ja) | 2007-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101916341B1 (ko) | 스크린 위치에 따라 달라지는 분해능을 가진 다수의 렌더 타겟을 위한 텍스처 매핑을 위한 그라디언트 조정 | |
US7554546B1 (en) | Stippled lines using direct distance evaluation | |
EP2107528B1 (en) | Method of and arrangement for rendering a path | |
US20080273030A1 (en) | Drawing apparatus and drawing method | |
KR20160051154A (ko) | 렌더링 방법, 렌더링 장치 및 전자 장치 | |
JPS6380375A (ja) | テクスチヤマツピング装置 | |
JP4370438B2 (ja) | ベクター画像描画装置、ベクター画像描画方法およびプログラム | |
JPH0660173A (ja) | 画像を縮小する方法および装置 | |
US9269181B2 (en) | Texture mapping device | |
JP4664169B2 (ja) | 図形描画装置及び図形描画プログラム | |
US6473091B1 (en) | Image processing apparatus and method | |
JP6297169B2 (ja) | 描画装置、および描画方法 | |
JPH10334252A (ja) | 画像処理装置 | |
US10593111B2 (en) | Method and apparatus for performing high throughput tessellation | |
US6529196B1 (en) | Efficient stroking of vectors with arbitrary endpoints | |
JP3979162B2 (ja) | 画像処理装置およびその方法 | |
JP5159949B2 (ja) | ベクトル図形描画装置 | |
US7372466B2 (en) | Image processing apparatus and method of same | |
JP2003132347A (ja) | 画像処理装置 | |
JP3556517B2 (ja) | 3次元画像処理装置 | |
WO2010053102A1 (ja) | 図形描画装置、アンチエイリアス処理方法および記憶媒体 | |
US20040004620A1 (en) | Image processing apparatus and method of same | |
KR100742155B1 (ko) | 스캔라인 형성 방법 및 장치 | |
JPH0350686A (ja) | 図形処理方式 | |
JP3517982B2 (ja) | 図形描画装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080606 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101005 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101129 |
|
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: 20110104 |
|
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: 20110106 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4664169 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140114 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |