JP5423231B2 - グラフィックラスタライゼーションにおける三角形トラバース方法及び装置 - Google Patents
グラフィックラスタライゼーションにおける三角形トラバース方法及び装置 Download PDFInfo
- Publication number
- JP5423231B2 JP5423231B2 JP2009188003A JP2009188003A JP5423231B2 JP 5423231 B2 JP5423231 B2 JP 5423231B2 JP 2009188003 A JP2009188003 A JP 2009188003A JP 2009188003 A JP2009188003 A JP 2009188003A JP 5423231 B2 JP5423231 B2 JP 5423231B2
- Authority
- JP
- Japan
- Prior art keywords
- triangle
- traverse
- pixel
- traversing
- start pixel
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Description
if(xmin < clipxmin) xmin = clipxmin;
if(ymin < clipymin) ymin = clipymin;
if(xmax > clipxmax) xmax = clipxmax;
if(ymax > clipymax) ymax = clipymax;
if((x0 == fxmin && y0 == fymin) || (x1 == fxmin && y1 == fymin) || (x2 == fxmin && y2 == fymin)) startpos = topleft(ステップS501及びS502);
else if((x0 == fxmax && y0 == fymin) || (x1 == fxmax && y1 == fymin) || (x2 == fxmax && y2 == fymin)) startpos = topright (ステップS503及びS504);
else if((x0 == fxmin && y0 == fymax) || (x1 == fxmin && y1 == fymax) || (x2 == fxmin && y2 == fymax)) startpos = bottomleft (ステップS505及びS506);
else if((x0 == fxmax && y0 == fymax) || (x1 == fxmax && y1 == fymax) || (x2 == fxmax && y2 == fymax)) startpos = bottomright (ステップS507及びS508);
なお、上記のコードにおいて、変数startposはトラバース開始画素の位置を表す。また、topleft、topright、bottomleft、bottomrightは、それぞれ、バウンディングボックスの左上、右上、左下、右下のコーナーを表す。
(1) InLeftTriangle(x,y)
{ if((e0(x,y) < 0 && a0 >= 0) || (e1(x,y) < 0 && a1 >= 0) || (e2(x,y) < 0 && a2 >= 0))
return true; //(三角形の左側にある)
else return false; //(三角形の左側にない)
}
(2) InRightTriangle(x,y)
{ if((e0(x,y) < 0 && a0 <= 0) || (e1(x,y) < 0 && a1 <= 0) || (e2(x,y) < 0 && a2 <= 0))
return true; //(三角形の右側にある)
else return false; //(三角形の右側にない)
}
(3) InTopTriangle(x,y)
{ if((e0(x,y) < 0 && b0 <= 0) || (e1(x,y) < 0 && b1 <= 0) || (e2(x,y) < 0 && b2 <= 0))
return true; //(三角形の上方にある)
else return false; //(三角形の上方にない)
}
(4) InBottomTriangle(x,y)
{ if((e0(x,y) < 0 && b0 >= 0) || (e1(x,y) < 0 && b1 >= 0) || (e2(x,y) < 0 && b2 >= 0))
return true; //(三角形の下方にある)
else return false; //(三角形の下方にない)
}
I (startpos == topleft || startpos == bottomleft) && (direction == horizontal) && (InRightTriangle(x,y) == True);
II (startpos == topright || startpos == bottomright) && (direction == horizontal) && (InLeftTriangle(x,y) == True);
III (startpos == topleft || startpos == topright) && (direction == vertical) && (InBottomTriangle(x,y) == True);
IV (startpos == bottomleft || startpos == bottomright) && (direction == vertical) && (InTopTriangle(x,y) == True)
なお、変数startposは、トラバース開始画素の位置を表す。また、topleft、topright、bottomleft、bottomrightは、それぞれ、バウンディングボックスの左上、右上、左下、右下のコーナーを表す。また変数directionは、トラバース方向を表し、horizontal及びverticalは、それぞれ、水平及び垂直を表す。
(付記1)
グラフィックラスタライゼーションにおける三角形トラバース方法であって、
三角形をカバーする画素からなる最小矩形であるバウンディングボックスを生成し、
前記バウンディングボックスに基づいて前記三角形をトラバースするためのトラバース開始画素を選択し、
前記トラバース開始画素と前記三角形の位置関係に基づいてトラバース方向を選択し、
前記トラバース方向において前記トラバース開始画素から前記三角形をトラバースする、ことを含み、
前記三角形をトラバースすることは、前記トラバース開始画素及び前記トラバース方向に対する前記三角形のエッジ関数の傾きに沿って現在の走査開始画素から次の走査開始画素を計算することを含む、
三角形トラバース方法。
(付記2)
前記バウンディングボックスがクリップ操作の対象でない場合、前記トラバース開始画素は、前記バウンディングボックスの4個のコーナーの画素のうち、前記三角形の頂点が含まれるコーナーの画素の一つであり、
前記バウンディングボックスがクリップ操作の対象である場合、前記トラバース開始画素は、前記クリップ操作が行われる前において、前記三角形の頂点が含まれる前記バウンディングボックスのコーナーの一つに対応する、前記バウンディングボックスの4個のコーナーの画素のうちの一つのコーナーの画素である、付記1に記載の三角形トラバース方法。
(付記3)
前記トラバース方向を選択することは、水平方向または垂直方向のうち、前記トラバース開始画素から前記三角形の内部にある画素の方向を、前記トラバース方向とする、付記1に記載の三角形トラバース方法。
(付記4)
前記三角形をトラバースすることは、前記傾きを求めるために前記トラバース方向において現在の行または列における前記三角形の内部にある最初の画素を検出することを含む、付記1に記載の三角形トラバース方法。
(付記5)
前記三角形をトラバースすることは、現在の行において前記三角形の内部にある前記最初の画素と前に走査された行において前記三角形の内部にある前記最初の画素との距離、または、現在の列において前記三角形の内部にある前記最初の画素と前に走査された列において前記三角形の内部にある前記最初の画素との距離を用いて前記傾きを求めることにより、前記次の走査開始画素を導出する、付記4に記載の三角形トラバース方法。
(付記6)
前記三角形をトラバースすることは、現在の行または列の走査を終了するか否かを決定することをさらに含み、現在の行または列における現在の画素が前記三角形の外側にあり、かつ前記トラバース方向に沿って前の画素が前記三角形の内部にある場合に、現在の行または列の走査を終了する、付記1に記載の三角形トラバース方法。
(付記7)
前記三角形をトラバースすることは、前記トラバース方向において前記三角形の内部にある画素が存在しない場合に前記三角形のトラバースを終了することを含む、付記1に記載の三角形トラバース方法。
(付記8)
グラフィックラスタライゼーションにおける三角形トラバース装置であって、
三角形をカバーする画素からなる最小矩形であるバウンディングボックスを生成するバウンディングボックス生成ブロックと、
前記バウンディングボックスに基づいて前記三角形をトラバースするためのトラバース開始画素を選択するトラバース開始画素選択ブロックと、
前記トラバース開始画素と前記三角形の位置関係に基づいてトラバース方向を選択するトラバース方向選択ブロックと、
前記トラバース方向において前記トラバース開始画素から前記三角形をトラバースするトラバースブロックと、を有し、
前記トラバースブロックは、前記トラバース開始画素及び前記トラバース方向に対する前記三角形のエッジ関数の傾きに沿って現在の走査開始画素から次の走査開始画素を計算する手段を有する、
三角形トラバース装置。
(付記9)
前記バウンディングボックスがクリップ操作の対象でない場合、前記トラバース開始画素は、前記バウンディングボックスの4個のコーナーの画素のうち、前記三角形の頂点が含まれるコーナーの画素の一つであり、
前記バウンディングボックスがクリップ操作の対象である場合、前記トラバース開始画素は、前記クリップ操作が行われる前において、前記三角形の頂点が含まれる前記バウンディングボックスのコーナーの一つに対応する、前記バウンディングボックスの4個のコーナーの画素のうちの一つのコーナーの画素である、付記8に記載の三角形トラバース装置。
(付記10)
前記トラバース方向選択ブロックは、水平方向または垂直方向のうち、前記トラバース開始画素から前記三角形の内部にある画素の方向を、前記トラバース方向とする、付記8に記載の三角形トラバース装置。
(付記11)
前記トラバースブロックは、前記傾きを求めるために前記トラバース方向において現在の行または列における前記三角形の内部にある最初の画素を検出する手段を有する、付記8に記載の三角形トラバース装置。
(付記12)
前記トラバースブロックは、現在の行において前記三角形の内部にある前記最初の画素と前に走査された行において前記三角形の内部にある前記最初の画素との距離、または、現在の列において前記三角形の内部にある前記最初の画素と前に走査された列において前記三角形の内部にある前記最初の画素との距離を用いて前記傾きを求めることにより、前記次の走査開始画素を導出する、付記11に記載の三角形トラバース装置。
(付記13)
前記トラバースブロックは、現在の行または列の走査を終了するか否かを決定する手段を有し、現在の行または列における現在の画素が前記三角形の外側にあり、かつ前記トラバース方向に沿って前の画素が前記三角形の内部にある場合に、現在の行または列の走査を終了する、付記8に記載の三角形トラバース装置。
(付記14)
前記トラバースブロックは、前記トラバース方向において前記三角形の内部にある画素が存在しない場合に前記三角形のトラバースを終了する手段をさらに有する、付記8に記載の三角形トラバース装置。
102 変換ブロック
103 投影ブロック
104 セットアップブロック
105 トラバースブロック
106 フレームバッファ
107 ディスプレイ
301 エッジ関数計算ブロック
302 バウンディングボックス生成ブロック
303 トラバース開始画素及びトラバース方向選択ブロック
304 開始画素登録ブロック
305 走査ブロック
306 次開始画素計算ブロック
307 描画判定ブロック
308 パラメータ計算ブロック
Claims (7)
- グラフィックラスタライゼーションにおける三角形トラバース方法であって、
プロセッサが、三角形をカバーする画素からなる最小矩形であるバウンディングボックスを生成し、
前記プロセッサが、前記バウンディングボックスに基づいて前記三角形をトラバースするためのトラバース開始画素を選択し、
前記プロセッサが、前記トラバース開始画素と前記三角形の位置関係に基づいてトラバース方向を選択し、
前記プロセッサが、前記トラバース方向において前記トラバース開始画素から前記三角形をトラバースする、ことを含み、
前記三角形をトラバースすることは、前記トラバース開始画素及び前記トラバース方向に対する前記三角形のエッジ関数の傾きに沿って現在の走査開始画素から次の走査開始画素を計算することを含む、
三角形トラバース方法。 - 前記三角形をトラバースすることは、前記傾きを求めるために前記トラバース方向において現在の行または列における前記三角形の内部にある最初の画素を検出することを含む、請求項1に記載の三角形トラバース方法。
- 前記三角形をトラバースすることは、現在の行において前記三角形の内部にある前記最初の画素と前に走査された行において前記三角形の内部にある前記最初の画素との距離、または、現在の列において前記三角形の内部にある前記最初の画素と前に走査された列において前記三角形の内部にある前記最初の画素との距離を用いて前記傾きを求めることにより、前記次の走査開始画素を導出する、請求項2に記載の三角形トラバース方法。
- 前記三角形をトラバースすることは、現在の行または列の走査を終了するか否かを決定することをさらに含み、現在の行または列における現在の画素が前記三角形の外側にあり、かつ前記トラバース方向に沿って前の画素が前記三角形の内部にある場合に、現在の行または列の走査を終了する、請求項1〜3の何れか一項に記載の三角形トラバース方法。
- 前記トラバース方向を選択することは、水平方向または垂直方向のうち、前記トラバース開始画素から前記三角形の内部にある画素の方向を、前記トラバース方向とする、請求項1〜4の何れか一項に記載の三角形トラバース方法。
- 前記三角形をトラバースすることは、前記トラバース方向において前記三角形の内部にある画素が存在しない場合に前記三角形のトラバースを終了することを含む、請求項1〜5の何れか一項に記載の三角形トラバース方法。
- グラフィックラスタライゼーションにおける三角形トラバース装置であって、
三角形をカバーする画素からなる最小矩形であるバウンディングボックスを生成するバウンディングボックス生成ブロックと、
前記バウンディングボックスに基づいて前記三角形をトラバースするためのトラバース開始画素を選択するトラバース開始画素選択ブロックと、
前記トラバース開始画素と前記三角形の位置関係に基づいてトラバース方向を選択するトラバース方向選択ブロックと、
前記トラバース方向において前記トラバース開始画素から前記三角形をトラバースするトラバースブロックと、を有し、
前記トラバースブロックは、前記トラバース開始画素及び前記トラバース方向に対する前記三角形のエッジ関数の傾きに沿って現在の走査開始画素から次の走査開始画素を計算する手段を有する、
三角形トラバース装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810146771.6 | 2008-08-29 | ||
CN2008101467716A CN101661741B (zh) | 2008-08-29 | 2008-08-29 | 图形光栅扫描中的三角形遍历方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010055611A JP2010055611A (ja) | 2010-03-11 |
JP5423231B2 true JP5423231B2 (ja) | 2014-02-19 |
Family
ID=41789715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009188003A Expired - Fee Related JP5423231B2 (ja) | 2008-08-29 | 2009-08-14 | グラフィックラスタライゼーションにおける三角形トラバース方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20100066744A1 (ja) |
JP (1) | JP5423231B2 (ja) |
CN (1) | CN101661741B (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8422782B1 (en) * | 2010-09-30 | 2013-04-16 | A9.Com, Inc. | Contour detection and image classification |
US9633458B2 (en) * | 2012-01-23 | 2017-04-25 | Nvidia Corporation | Method and system for reducing a polygon bounding box |
WO2014185900A1 (en) * | 2013-05-15 | 2014-11-20 | Intel Corporation | Variable rasterization order for motion blur and depth of field |
US10217272B2 (en) * | 2014-11-06 | 2019-02-26 | Intel Corporation | Zero-coverage rasterization culling |
KR101671180B1 (ko) | 2014-12-30 | 2016-11-02 | 한국에너지기술연구원 | 중온 산소 선택성 흡착제 및 이의 제조방법 |
US9922449B2 (en) | 2015-06-01 | 2018-03-20 | Intel Corporation | Apparatus and method for dynamic polygon or primitive sorting for improved culling |
CN106371780B (zh) * | 2015-07-22 | 2019-08-13 | 龙芯中科技术有限公司 | 矢量图形处理方法和装置 |
US9959643B2 (en) | 2015-10-29 | 2018-05-01 | Intel Corporation | Variable rasterization order for motion blur and depth of field |
US20190035049A1 (en) * | 2017-07-31 | 2019-01-31 | Qualcomm Incorporated | Dithered variable rate shading |
CN109346028B (zh) * | 2018-11-14 | 2021-03-23 | 西安翔腾微电子科技有限公司 | 一种基于tlm的三角形光栅化扫描结构 |
CN109584334B (zh) * | 2018-11-14 | 2023-04-07 | 西安翔腾微电子科技有限公司 | 一种基于uml的三角形光栅化扫描结构及光栅化扫描方法 |
CN111337939A (zh) * | 2018-12-19 | 2020-06-26 | 上海蔚来汽车有限公司 | 一种矩形物体外边框的估计方法及装置 |
CN109741433B (zh) * | 2019-01-08 | 2023-05-05 | 西安邮电大学 | 一种基于Tile的三角形多向并行扫描方法及结构 |
CN116078703B (zh) * | 2023-04-10 | 2023-07-07 | 浙江工业大学 | 一种航空用导管弯曲精度自动补偿方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH064679A (ja) * | 1992-06-24 | 1994-01-14 | Toshiba Corp | イメージ処理装置 |
US6285376B1 (en) * | 1994-09-28 | 2001-09-04 | Samsung Electronics Co., Ltd. | Triangle traversing method and a rasterizer adopting the same |
US6646639B1 (en) * | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
JP2000298729A (ja) * | 1999-04-13 | 2000-10-24 | Matsushita Electric Ind Co Ltd | 二次元画像生成装置 |
US6504542B1 (en) * | 1999-12-06 | 2003-01-07 | Nvidia Corporation | Method, apparatus and article of manufacture for area rasterization using sense points |
US6636218B1 (en) * | 2000-06-30 | 2003-10-21 | Intel Corporation | Title-based digital differential analyzer rasterization |
US6714196B2 (en) * | 2000-08-18 | 2004-03-30 | Hewlett-Packard Development Company L.P | Method and apparatus for tiled polygon traversal |
US7081903B2 (en) * | 2001-12-12 | 2006-07-25 | Hewlett-Packard Development Company, L.P. | Efficient movement of fragment stamp |
CN1257436C (zh) * | 2002-12-16 | 2006-05-24 | 中国科学院电工研究所 | 图形发生器 |
US7301537B2 (en) * | 2002-12-20 | 2007-11-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Graphics processing apparatus, methods and computer program products using minimum-depth occlusion culling and zig-zag traversal |
US7800631B2 (en) * | 2003-03-18 | 2010-09-21 | Qualcomm Incorporated | Triangle rendering using direct evaluation |
JP4064339B2 (ja) * | 2003-12-19 | 2008-03-19 | 株式会社東芝 | 描画処理装置、描画処理方法および描画処理プログラム |
US7551174B2 (en) * | 2003-12-23 | 2009-06-23 | Via Technologies, Inc. | Method and apparatus for triangle rasterization with clipping and wire-frame mode support |
JP4199159B2 (ja) * | 2004-06-09 | 2008-12-17 | 株式会社東芝 | 描画処理装置、描画処理方法、及び描画処理プログラム |
JP4327105B2 (ja) * | 2005-01-25 | 2009-09-09 | 株式会社ソニー・コンピュータエンタテインメント | 描画方法、画像生成装置、および電子情報機器 |
JP4693660B2 (ja) * | 2006-03-10 | 2011-06-01 | 株式会社東芝 | 描画装置、描画方法及び描画プログラム |
-
2008
- 2008-08-29 CN CN2008101467716A patent/CN101661741B/zh not_active Expired - Fee Related
-
2009
- 2009-08-14 JP JP2009188003A patent/JP5423231B2/ja not_active Expired - Fee Related
- 2009-08-14 US US12/461,554 patent/US20100066744A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20100066744A1 (en) | 2010-03-18 |
CN101661741A (zh) | 2010-03-03 |
JP2010055611A (ja) | 2010-03-11 |
CN101661741B (zh) | 2012-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5423231B2 (ja) | グラフィックラスタライゼーションにおける三角形トラバース方法及び装置 | |
CN107256557B (zh) | 一种误差可控的细分曲面图像矢量化方法 | |
US7414636B2 (en) | Rendering apparatus, rendering processing method and computer program product | |
JP4160261B2 (ja) | 画素ごとのmipマッピングおよび三線フィルタリングの改良された方法および装置 | |
CN105830126A (zh) | 激光扫描数据的图像渲染 | |
US6421063B1 (en) | Pixel zoom system and method for a computer graphics system | |
CN100399358C (zh) | 图像处理装置及其方法 | |
KR100745768B1 (ko) | 전력 소비를 감소시키기 위한 lod 값 계산 방법과이것을 이용한 3차원 렌더링 시스템 | |
RU2469400C1 (ru) | Способ преобразования растрового изображения в метафайл | |
KR100453530B1 (ko) | 2차원 폴리곤데이터를 3차원 폴리곤데이터로 변환하여 묘화하는 3차원 그래픽 묘화장치 및 그 방법 | |
KR102018699B1 (ko) | 타일 비닝 장치 및 방법 | |
CN111311720B (zh) | 一种纹理图像的处理方法和装置 | |
WO2003102875A1 (fr) | Dispositif de trace d'un polygone triangulaire et procede de trace d'un polygone triangulaire | |
KR100453529B1 (ko) | 제트 좌표값에 의거하여 알파값을 제어하는 3차원그래픽스 묘화장치 및 그 방법 | |
Hormann et al. | A quadrilateral rendering primitive | |
JPH09259290A (ja) | 描画方法 | |
JP2003132353A (ja) | 中心線生成プログラム | |
JP5151946B2 (ja) | 描画装置 | |
US20220113261A1 (en) | Information processing apparatus, information processing method, and storage medium | |
JP3703073B2 (ja) | 図形表示装置及びその方法 | |
CN111223142A (zh) | 一种gpu点光栅化点大小奇偶配置的顶点坐标映射方法 | |
KR20050046775A (ko) | 풋프린트의 분석 및 수정 방법 | |
US7170528B1 (en) | Fast glyph rendering for vector based fonts | |
JP3872056B2 (ja) | 描画方法 | |
CN102542527B (zh) | 一种变换图像形状的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120405 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130716 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130730 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130927 |
|
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: 20131029 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131111 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |